社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
帮助:解析函数/basepagename
BASEPAGENAME是一个魔术字。帮助:解析函数页列出了所有解析函数和魔术字的说明。
BASEPAGENAME
获取上级页面名,不含命名空间。MediaWiki原生支持。
仅对启用子页面特性的命名空间生效(主、用户、项目、Mediawiki、模板、帮助、模块空间均支持。注意,文件、分类、Widget等空间不支持)。
语法
{{BASEPAGENAME}}
针对当前页面{{BASEPAGENAME: 页面名}}
可指定页面
示例
{{BASEPAGENAME}}
→ 解析函数{{BASEPAGENAME:帮助:解析函数/basepagename}}
→解析函数
{{BASEPAGENAME:模板:大模板/中模板/小模板}}
→大模板/中模板
{{BASEPAGENAME:分类:超大分类/大分类/中分类}}
→超大分类/大分类/中分类
(分类空间不支持子页面特性,因此这一页面是独立页面,不被视为“超大分类”的子页面)
可用命名空间
命名空间 | 可用 | 命名空间 | 可用 |
---|---|---|---|
主 | ✓ | 讨论 | ✓ |
用户 | ✓ | 用户讨论 | ✓ |
Project | ✓ | Project talk | ✓ |
文件 | ✕ | 文件讨论 | ✓ |
MediaWiki | ✓ | MediaWiki讨论 | ✓ |
模板 | ✓ | 模板讨论 | ✓ |
帮助 | ✓ | 帮助讨论 | ✓ |
命名空间 | 可用 | 命名空间 | 可用 |
---|---|---|---|
分类 | ✕ | 分类讨论 | ✓ |
属性 | ✕ | 属性讨论 | ✕ |
表单 | ✕ | 表单讨论 | ✕ |
概念 | ✕ | 概念讨论 | ✕ |
Widget | ✕ | Widget talk | ✓ |
模块 | ✓ | 模块讨论 | ✓ |
底层代码
- 代码逻辑:
- Mediawiki的魔术字变量由 expand 函数实现。对于BASEPAGENAME,直接将标题的getBaseText()方法结果作为返回值。
- getBaseText()方法中,首先获取不带命名空间的页面名,存入 $text。
- 判断当前页面所在命名空间是否启用了子页面,如果没有启用子页面,就直接返回 $text,因为此时任何页面都不被视为子页面。
- 如果启用了子页面,就寻找标题中最后一个“/”符号位置,返回标题中此位置前的部分。比如对“Foo/Bar/Baz”,返回“Foo/Bar”
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。