2009-06-26 47 views
11

我不太确定MediaWiki中是否有这种可能。Transclude MediaWiki中的类别

我有几个类别,每个类别包含几页。如果打开类别页面,则会看到通常由以下三部分组成的类别的内容:

  1. 用户定义的文本(可使用编辑链接进行编辑)。
  2. 附加到此类别的所有子类别。
  3. 附加到此类别的所有页面。

我的目标是创建一个页面,其中至少包含几个类别的第3部分。一个页面,显示附加到我选择的多个类别的所有页面名称,按其类别分组。

我的第一个方法是使用的MediaWiki标准transclude语法:

 
    Category A contains these pages: 
    {{:Category:A}} 
    Category B contains these pages: 
    {{:Category:B}} 
    Category C contains these pages: 
    {{:Category:C}} 
    ... 

不幸的是,一个类别的这只transcluded部分#1:用户定义的文本。页面名称列表丢失。

我的第二个想法是看看解析器的功能。也许有一些功能可以通过一个类别的页面进行枚举。但我没有找到任何。

也许有一个链接到MediaWiki扩展有...

有没有意识到这一个聪明的办法?

回答

3

如果你想在搜索结果的显示更多的控制,你可能想给Semantic Mediawiki一试。

语法看起来是这样的:即使你不使用语义特性

Pages in Category A: 

{{#ask:[[Category:A]] 
|format=ul 
}} 

,您可以使用查询机制来显示基于类别的网页上。

0

MediaWiki的扩展动态页面列表http://www.mediawiki.org/wiki/Extension:DynamicPageList_(third-party))做到这一点很容易,生产的物品的项目符号列表中的类别:

Pages in Category A: 
<dpl> 
category=A 
</dpl> 

没有像语义链接到MediaWiki一个重量级的解决方案。只需安装即可。

DPL对于更强大的动态列表具有丰富的语法。例如,要生成3列的编号列表:

<dpl> 
category=A 
mode=ordered 
columns=3 
</dpl>