我在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();
但它似乎不起作用。
我该如何实现?
谢谢!
答案 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 }}
。无论是否在子页面上使用模板,这都将起作用。