如何获取 MediaWiki 页面标题的一部分?

How can I grab part of MediaWiki page title?

在 MediaWiki 1.26.2 中,如何抓取页面标题的一部分以在 #ifexist 语句中使用它?

我需要 link 到 MediaWiki 中不同但相关的文章,提醒用户页面是否存在。为此,我做了以下事情:

我有一个名为 ARTICLE_NAME 的页面。与之关联的是一个名为 Notes:ARTICLE_NAME 的页面。 "Notes:" 不是命名空间,而是像 ARTICLE_NAME 一样的字符串。由于政策限制,我无法为 Notes 创建命名空间。

在ARTICLE_NAME页面,下面的代码去检查注释是否存在:

{{#ifexist: Notes:{{PAGENAME}} | {{alert_box}} | }

因此,如果 ARTICLE_NAME 有一个相关的 Notes:ARTICLE_NAME 页面,我会得到一个很好的自定义警告框,突出显示该事实并 link 指向它。

当我尝试逆运算时,我的问题就开始了。在 Notes:ARTICLE_NAME 页面中,如果有一个名为 ARTICLE_NAME 的页面,我需要注释来显示一个警告框。代码

{{#ifexist: {{PAGENAME}} | {{alert_box}} | }

不执行任何操作,因为 {{PAGENAME}} 按预期带来了 Notes:ARTICLE_NAME

我怎样才能得到 "Notes:" 之后的任何内容,使用它而不是 {{PAGENAME}} 来用 #ifexist 代码检查它?

它通过组合 #pos#ifeq 来工作。

示例:

{{#ifeq:{{#pos:text1|text2}}| |text1 does not contain text2|text1 contains text2}}

所以在四处寻找之后我找到了一个方法:从页面名称中删除 Notes: 然后将其放在 #ifexist.

{{#replace: {{PAGENAME}}|Notes:|}}

这样它就可以将 Notes: 替换为空。我做了一个名为 ARTICLE_TITLE 的魔法词,所以注释的代码是这样的:

{{#ifexist: :{{ARTICLE_TITLE}} | {{Alert_box}} | }}