使用页面变量作为模板变量



我目前在内部媒体维基上运行一个简单的信息框模板。我想将页面类别传递给模板,以便我可以使用类别树生成列表。

是否可以让模板拾取 类别 = foo

从我已经有的页面 [[Category:Foo]]

写在他们身上?

即我在页面顶部的模板文本将有一个类似

{{Infobox website | Category = *something* }}

从我所有页面上已有的[[Category:Foo]]中获取它?

没有内置的魔术词来获取类别,但您可以轻松地为此创建一个解析器函数,并使用输出与例如 Arrays 扩展来找出页面是否属于某个类别。但是,这似乎需要做很多工作来节省很少的工作(偶尔输入一些额外的字母)。

如果你想创建一个解析器函数来获取电流,就像这样简单:

function getCategories( &$parser, $title) {
    // Will return a comma separated list of categories.
    $categories = $title->getParentCategories();
    return implode(",", $categories);
}

如果您知道要为每个页面检查什么分类,您还可以使用 Extension:PageInCat。

编辑:我现在看到您的问题被标记为Semantic MediaWiki。这让它变得简单:

{{#if:
  {{#ask:[[Category:Foo]] {{FULLPAGENAME}}|default=|}}
  |''This page is in Category:Foo!''
  |''This page is not in Category:Foo. Let's add it.''
}}

相关内容

  • 没有找到相关文章

最新更新