【问题标题】:Get only the page name from a subpage url in MediaWiki仅从 MediaWiki 中的子页面 url 获取页面名称
【发布时间】:2019-03-06 22:34:38
【问题描述】:

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

模板:图标

{{Icon|Icon.png|mypage/Mysubpage}} 将返回一个指向子页面的链接,同时只显示“Mysubpage”而不是完整的链接“mypage/mysubpage”

普通模板如下所示:

[[File:{{{1}}}|{{{size|64px}}}|link={{{2}}}|{{{2}}}]]<br>{{#ifeq:{{#pos:{{lc:{{{2|}}}}}|http}}|0|[{{{2}}}]|[[{{{2}}}]]}}

但现在我正在添加子页面,图标会在它们旁边显示完整的链接路径。

我尝试将 {{{2}}} 替换为:

{{#invoke:String|sub|{{{2}}}| {{#invoke:String|find|{{{2}}}|/|1}}+1 |{{#invoke:String|len|{{{2}}} }} }}

但它似乎不起作用。

我怎样才能做到这一点?

谢谢!

【问题讨论】:

  • 呵呵刚刚在文档中发现{{#titleparts:}}。无论如何谢谢:)

标签: mediawiki mediawiki-templates


【解决方案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 }}。无论模板是否在子页面上使用,这都会起作用。

【讨论】:

    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多