扩展MW:CategoryTree

来自Wikioe
跳到导航 跳到搜索


说明

CategoryTree扩展为MediaWiki的Category结构提供了动态的展示。不仅可以展示子类别,还可以展示类别下的wiki页面,以及父类别。
添加代码到LocalSettings.php,以加载CategoryTree到系统:

wfLoadExtension ( 'CategoryTree'  );

CategoryTree可以通过三种方式使用:

  1. 直接在Category页面上使用
  2. 作为自定义标签(或解析器函数)在wiki页面使用
  3. 作为特殊页面使用

设置[1]

<categorytree>标签

<categorytree>标签的用法为:

<categorytree mode = "pages">Tools</categorytree>

将该标签行放在wiki页面中,就会以树形结构显示出Tools类别下面的内容。
标签的用法类似类似HTML标签,可用的属性如下:

属性 说明 参数
mode 定义了哪些页面会被展示在属性结构中。

mode可能会因为使用namespace而被覆盖

  • categories:只展示子类别(配置常量为0
  • pages:展示子类别、页面等(除图像外的)内容,限制200页(配置常量为10
  • all:展示所有内容,包括子类别、页面、图像等(配置常量为20
  • parents:使CategoryTree逆向展示父类别的结构树(配置常量为100
depth 定义了初始时展示的结构树的深度,默认值为0表示只显示根节点。最大值取决于mode参数,以及配置文件的$wgCategoryTreeMaxDepth
hideroot hideroot=on时,隐藏根节点
hideprefix 确定是否隐藏树中条目的namespace前缀
  • always:总是隐藏命名前缀,在所有内容都来自同一命名空间时使用(配置常量为10
  • never:从不隐藏命名空间前缀,甚至不隐藏类别(配置常量为0
  • auto:当mode="categories",隐藏类别的命名空间(配置常量为30
  • categories(默认):隐藏类别的命名空间,而显示其他所有前缀(配置常量为20
showcount showcount=on时,显示子类别的条目数量
notranslations notranslations=on时,隐藏与该类别相关页面所对应的所有翻译页面
namespaces 树中应显示的命名空间列表。列表的项必须是命名空间的名称,以空格隔开,主空间用“-”或“0”表示。只有类别的命名空间在列表中时,才会显示子类别。见注意:关于“命名空间”属性
<categorytree>标签同样支持标准HTML的块元素的属性,如“class”、“style”、“id”等。

注意

关于“命名空间”属性: Category是一个名称空间。默认情况下,Category在所有mode下都会显示,但是指定namespaces参数会将其隐藏,就像列表中不存在的任何其他名称空间的父类别一样。如果要列出给定名称空间中的页面,包括子类别中的页面,只需将“类别”添加到名称空间列表中。

如:

  • 在Category:Manual中列出主名称空间页面:
<categorytree mode="pages" namespaces="Main">Manual</categorytree>
  • 在Category:Manual中列出主要的名称空间页面和子类别:
<categorytree mode="pages" namespaces="Main Category">Manual</categorytree>

在下面这些情况中,mode会被namespace属性覆盖:

  • 如果仅有Category命名空间,则等同于mode=categories;
  • 如果列表中存在File名称空间,则意味着mode=all;
  • 否则mode=pages将被使用。这意味着,如果未更改站点配置文件,则以下内容是等效的(前两个始终等效,第三个只有$wgCategoryTreeDefaultMode在默认情况下才是):
    • <categorytree mode="categories">手册</categorytree>
    • <categorytree namespaces ="Category">手册</categorytree>
    • <categorytree>手册</categorytree>

{{#categorytree}}解析器函数

可以使用解析器函数语法在页面上放置类别树。和<categorytree>标签作用一样,用法如{{#categorytree:Foo}}; 可以使用命名模板参数的语法来指定选项,例如{{#categorytree:Foo|hideroot|mode=pages}}

使用解析器函数语法的优势在于,它允许您在指定要显示的类别时使用魔术字,模板和模板参数。例如:

  • 使用魔法变量,以显示“此页面”类别树(可能是在类别描述页面很有用): {{#categorytree:{{PAGENAME}}}}
  • 使用模板指定类别:{{#categorytree:{{root category}}}},而root category的名称将由Template:Root_category的内容定义。
  • 在模板内部使用CategoryTree时,使用template参数指定类别:{{#categorytree:{{{1}}}}}在Template:Baz中,可以使用{{Baz | Foo}}进行调用。

Special:CategoryTree页面

特殊页面称为Special:CategoryTree,在此处输入类别的名称,可以浏览其内容。

参考