Mediawiki:我需要整个wiki的目录

时间:2015-03-13 02:19:44

标签: mediawiki tableofcontents

我使用MediaWiki管理自己公司的内部维基。我喜欢MediaWiki,因为很多人已经习惯使用维基百科了。此外,配置是一种乐趣,我没有遇到很多问题,而不是熟悉PHP。 (所以我不一定要寻找其他解决方案,比如DokuWiki ...)

我的要求是,首页是所有页面的列表,按类别按字母顺序细分 - 非常类似于整个维基的目录。它看起来像这样(在“主页”上):

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

每个页面都会获得分配给它的类别。我知道特殊:类别页面,但只显示类别,并且必须向下钻取(按照链接)以查看该类别中的页面 - 因此,我看不到多个页面/多个类别。

我见过Extension:Hierarchy,但这不符合我的需要,因为必须编辑“目录”而不是通过在每个页面上声明“父”或“类别”来自动生成。

MediaWiki是否已有此功能? (据我所知,随着wiki的增长,这个目录页面也会增长,但这没关系。)

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

  1. MySQL是否查找所有页面及其类别
  2. 对它们进行排序
  3. 使用MediaWiki API在主页面上生成此目录
  4. 我可以定期运行这个过程。我正在迎接挑战,因为我是一名程序员,这是一项有趣的练习,但如果我不需要重新发明轮子呢?

1 个答案:

答案 0 :(得分:1)

CategoryTree是一个选项。现在,这里的挑战是MediaWiki类别不是分层的。换句话说,您可以使用类别循环(A> B&gt; C&gt; A)。此外,一篇文章可以显示在任意数量的类别中,文章可以没有类别。必须手动完成的是将&lt; categorytree&gt; 类别名称&lt; / categorytree&gt;对于家庭中的每个类别&#34;目录&#34;页。虽然新类别可能不会出现很多,但这不会是一个可怕的问题。但是,解决这个问题的一个解决方案是将所有(顶级)类别放入Category:Categories,然后通过扩展名显示该类别(请参阅深度和hideroot参数)。

难以使用,但wikistats从XML转储生成HTML表示,请参阅例如MediaWiki.org categories

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