仅从MediaWiki的子页面URL中获取页面名称

时间:2018-10-01 19:17:28

标签: mediawiki mediawiki-templates

我在MediaWiki中安装了Lua支持和Module:String模块,并且试图在模板中仅获取链接的后半部分。

模板:图标

{{Icon|Icon.png|mypage/Mysubpage}}将返回到子页面的链接,而仅显示“ Mysubpage”,而不显示完整的链接“ mypage / mysubpage”

普通模板如下:

[[File:{{{#invoke:String|sub|{{{2}}}| {{#invoke:String|find|{{{2}}}|/|1}}+1 |{{#invoke:String|len|{{{2}}} }} }}
}|{{{size|64px}}}|link={{{2}}}|{{{2}}}]]<br>{{#ifeq:{{#pos:{{lc:{{{2|}}}}}|http}}|0|[{{{2}}}]|[[{{{2}}}]]}}

但是现在我要添加子页面,这些图标将在其旁边显示完整的链接路径。

我尝试将{

 [  XXX  XXX  XXX  XXX  XXX  XXX  ]
}替换为:

 QBoxLayout * hbl = new QBoxLayout(Qt::LeftToRight, parentWidget);
 hbl->addStretch();
 hbl->addWidget(new QPushButton);
 hbl->addStretch();
 hbl->addWidget(new QPushButton);
 hbl->addStretch();
 hbl->addWidget(new QPushButton);
 [...]
 hbl->addStretch();

但它似乎不起作用。

我该如何实现?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您安装了ParserFunctions扩展名,那么{{#titleparts}}魔术字可能会有所帮助。

docs说:

  

此功能基于斜杠将页面标题分成多个段,然后将其中一些段作为输出返回。

{{#titleparts: pagename | number of segments to return | first segment to return }}
     

如果未指定要返回的段数参数,则默认为“ 0”,它将返回从第一个段返回的所有段(包括在内)。

     

...

     

两个值都接受负值...返回的第一个段的负值转换为“从该段开始,从右边开始计数”:

     

{{#titleparts: Talk:Foo/bar/baz/quok | | -1 }}quok返回最后一段。

由于仅在查找最后一个细分,因此您需要{{#titleparts: {{{2}}} | | -1 }}。无论是否在子页面上使用模板,这都将起作用。