Mediawiki:我需要整个 wiki 的 Table 目录

Mediawiki: I need a Table Of Contents for the entire wiki

我使用 MediaWiki 管理我自己公司的内部 wiki。我喜欢 MediaWiki,因为很多人已经使用维基百科熟悉它。此外,配置很愉快,我没有 运行 遇到很多问题,对 PHP 不是很熟悉。 (所以我不一定要寻找其他解决方案,例如 DokuWiki...)

我的要求是起始页面是所有页面的列表,按类别按字母顺序细分 - 很像整个 wiki 的 Table 目录。它看起来像这样(在 "Main Page" 上):

Category 1
    Page A
    Page B
    Page C
Category 2
    Page E
    Page N
    Page X
    Page Z
Category 3
    Page Q
    Page V

每个页面都有分配给它的类别。我知道 Special:Categories 页面,但它只显示类别,并且必须向下钻取(按照 link)才能看到该类别中的页面 - 因此,我看不到多个 pages/multiple 类别。

我看过 Extension:Hierarchy,但这不符合我的需要,因为必须编辑 "Table of Contents" 而不是通过声明 "parent" 或 [=38= 来自动生成] 在每个页面上。

MediaWiki 是否已经存在这方面的功能? (我知道随着 wiki 的发展,这个 Table 的目录页面也会发展,但这没关系。)


或者,我知道 MediaWiki API。我可以创建一个服务器端进程:

  1. MySQL 查找所有页面及其类别
  2. 对它们进行排序
  3. 使用 MediaWiki API 在主页上生成此 Table 目录

而且我可以定期 运行 这个过程。我准备迎接挑战,因为我是一名程序员,这是一个有趣的练习,但如果不需要,为什么要重新发明轮子?

CategoryTree 是一个选项。现在,这里的一个挑战是 MediaWiki 类别不是分层的。换句话说,您可以有类别循环 (A>B>C>A)。此外,一篇文章可以出现在任意数量的类别中,文章可以没有类别。唯一必须手动完成的是在主页 "Table of Contents" 页面上为每个类别放置 类别名称。假定新类别不太可能大量涌现,这不会是一个可怕的问题。但是,解决这种不便的一种解决方案是将所有(顶级)类别放入 Category:Categories,然后通过扩展显示该类别(参见深度和 hideroot 参数)。

很难用,但是wikistats produces an HTML representation from an XML dump, see e.g. MediaWiki.org categories

CatGraph 是另一个分析工具,看起来更复杂(但我没有尝试为我的 wiki 设置它,不像 wikistats)。