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

Posted

技术标签:

【中文标题】仅从 MediaWiki 中的子页面 url 获取页面名称【英文标题】:Get only the page name from a subpage url in MediaWiki 【发布时间】: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:。无论如何谢谢:) 【参考方案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 。无论模板是否在子页面上使用,这都会起作用。

【讨论】:

以上是关于仅从 MediaWiki 中的子页面 url 获取页面名称的主要内容,如果未能解决你的问题,请参考以下文章

通过 API 从 mediawiki 页面获取文本内容

清除 mediawiki 中的所有页面

如何仅从 URL 中获取搜索词,忽略多个分隔符

如何删除 MediaWiki 中的页脚?

更改/重命名我的 URL 中的子页面

如何为每个帖子自动制作带有新 URL 的子页面 [NodeJS]