【问题标题】:Mediawiki: I need a Table Of Contents for the entire wikiMediawiki:我需要整个 wiki 的目录
【发布时间】:2015-05-15 10:32:31
【问题描述】:

我使用 MediaWiki 管理我自己公司的内部 wiki。我喜欢 MediaWiki,因为很多人在使用过 Wikipedia 之后就已经熟悉它了。此外,配置起来很愉快,而且我没有遇到很多问题,对 PHP 不太熟悉。 (所以我不一定要寻找其他解决方案,比如 DokuWiki...)

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

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 页面,但它只显示类别,并且必须向下钻取(点击链接)才能查看该类别中的页面 - 因此,我看不到多个页面/多个类别。

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

MediaWiki 是否已经存在此功能? (我知道随着 wiki 的增长,此目录页面也会增长,但没关系。)


或者,我知道 MediaWiki API。我可以创建一个服务器端进程:
  1. 是否对所有页面及其类别进行 MySQL 查找
  2. 对它们进行排序
  3. 使用 MediaWiki API 在主页上生成此目录

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

【问题讨论】:

  • 这里的挑战是 MediaWiki 类别不是分层的。换句话说,您可以有类别循环(A>B>C>A)。此外,一篇文章可以出现在任意数量的类别中,并且文章可以没有类别。话虽如此,您可能想看看mediawiki.org/wiki/Extension:CategoryTree
  • @leo 这个扩展实际上满足了我的大部分需求,并且是一个很大的帮助。唯一需要手动完成的事情是我将<categorytree>_Category Name_</categorytree> 用于我的主页“目录”页面上的每个类别。鉴于新类别不太可能大量出现,这不会是一个可怕的问题。也许我可以自己扩展这个插件来自动生成所有顶级类别的页面。这种自动的努力将完全满足我的要求。
  • 您可以将所有(顶级)类别放入Category:Categories,然后通过扩展显示该类别(参见depthhideroot 参数)。

标签: mediawiki tableofcontents


【解决方案1】:

CategoryTree 是一个选项。现在,这里的一个挑战是 MediaWiki 类别不是分层的。换句话说,您可以有类别循环(A>B>C>A)。此外,一篇文章可以出现在任意数量的类别中,并且文章可以没有类别。唯一需要手动完成的事情是将 Category Name 放在主页“目录”页面上。鉴于新类别不太可能大量出现,这不会是一个可怕的问题。但是,解决这种不便的一种方法是将所有(顶级)类别放入 Category:Categories 中,然后通过扩展显示该类别(请参阅 depth 和 hideroot 参数)。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 2021-02-28
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多