Extension:Disambiguator
发行状态: 稳定版 |
|
|---|---|
| 实现 | 特殊页面 |
| 描述 | 允许用魔术字标明消歧义页 |
| 作者 | Ryan Kaldari (Kaldari留言) |
| 最新版本 | 持续更新 |
| 兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
| MediaWiki | 1.28+ |
| PHP | 5.4+ |
|
|
|
| 许可证 | MIT License |
| 下載 | |
| 帮助 | Help:Extension:Disambiguator/zh |
| 前往translatewiki.net翻譯Disambiguator扩展 | |
| 問題 | 开启的任务 · 报告错误 |
Disambiguator(消歧义)扩展设计出来是为了在程序层面更简单地处理消歧义页。
它允许你使用__DISAMBIG__魔术字(或一个等价的别名)来标明所有的消歧义页,同时将它们标记在数据库中。
这允许其他扩展可选地将消歧义页作为一个单独的页类来处理,尽管它们仍然被认为是“普通”页面。
安裝
- 下载文件,并解压
Disambiguator文件夹到extensions/目录中。
开发者和代码贡献人员应改从Git安装此扩展,输入:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Disambiguator
- 請新增下列代码到您的LocalSettings.php文件的底部:
wfLoadExtension( 'Disambiguator' );
- 按需求配置。
完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。
配置
可以从LocalSettings.php文件中设置以下配置变量。
$wgDisambiguatorIndicateLinks- 是否为指向消歧义页面的链接添加mw-disambigCSS 类(默认为true)$wgDisambiguatorNotifications- 是否在wikitext编辑器中输入指向消歧义页面的链接时,提醒用户(默认为false)
功能
Disambiguator 扩展提供了以下功能:
- 通过
__DISAMBIG__魔术字对消歧义页面实现程序层面识别 - 提供新的特殊页面,可列出所有消歧义页面以及链接至它们的页面
- 提供等价于上述特殊页面的新API功能以及一个查询页面是否为消歧义页面的API功能
- 修改Special:LonelyPages,使其忽略消歧义页面
- 修改Special:Random,使其忽略消歧义页面(需要MediaWiki 1.26.0)
- 如果启用了VisualEditor,允许通过页面属性界面将一个页面标记为消歧义页
- 如果启用了VisualEditor,在链接检视器中显示一个页面是否为消歧义页
- 如果启用了VisualEditor,在链接对话框中显示一个页面是否为消歧义页
- 如果进行了配置,为指向消歧义页的链接添加一个CSS类
mw-disambig(参见上面的#配置) - 使用WikiEditor链接到消歧义页时警告用户,并允许他们修复链接。
用法
在wiki上
一旦安装了Disambiguator,使用它的最好方式就是向一个模板添加魔术字__DISAMBIG__,然后将模板嵌入到所有消歧义页。
一旦这个魔术字就位,你的所有消歧义页在数据库内都会被赋予'disambiguation'(消歧义)页面属性。 此属性记录于page_props表。
你还会有两个新的特殊页面:
- Special:DisambiguationPages - 它会列出你Wiki上所有的消歧义页。
- Special:DisambiguationPageLinks - 它会列出你Wiki上所有链往消歧义页的页面。 (这是对旧有已弃用的Special:Disambiguations page的替换。)
使用API
使用下面API来列出所有消歧义页:
api.php?action=query&list=querypage&qppage=DisambiguationPages
使用下面API来列出所有消歧义页面链接:
api.php?action=query&list=querypage&qppage=DisambiguationPageLinks
注意在以吝啬模式运行的wiki上(所有维基媒体基金会的wiki),DisambiguationPageLinks的特殊页面和API接口都有结果数量限制(一般为1000 - 5000)。
使用下面API来查看一个单独页面是不是消歧义页:
api.php?action=query&titles=Bug&prop=pageprops&ppprop=disambiguation
如果是一个消歧义页,其页面属性会包含“disambiguation”。 注意,消歧义页面属性如果存在,其值会被设为一个空字符串,所以小心不要把它当做布尔值来测试。
使用Lua
对于安装了Scribunto的wiki,Disambguator会向mw.title对象添加一个isDisambiguationPage属性。
使用SQL
若要查看一个页面是否为消歧义页,需检查page_props表中是否存在pp_propname = 'disambiguation'。
非消歧义页不具有pp_propname。
pp_value不重要。
SELECT page_title, pp_propname
FROM page
LEFT JOIN page_props ON pp_page = page_id AND pp_propname = 'disambiguation'
WHERE page_namespace = 0
AND page_title IN ('John', 'COVID-19') -- John is a disambiguation page on enwiki, COVID-19 is not
可能的未来计划
- 添加一个选项,在以下特殊页面隐藏消歧义页: Special:AllPages (task #9936), Special:PrefixIndex (task #11319), Special:WhatLinksHere (task #9935), Special:AncientPages (task #76287)
- 考虑为wikitext编辑器的链接对话框扩充功能,在搜索结果中检测消歧义页并拉取链接列表
- 此扩展的完整漏洞列表
| 此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
| 此扩展在以下wiki农场/托管网站和/或软件包中提供: |
- Stable extensions/zh
- Special page extensions/zh
- AncientPagesQuery extensions/zh
- ChangeTagsListActive extensions/zh
- EditPage::showEditForm:initial extensions/zh
- GetDoubleUnderscoreIDs extensions/zh
- GetLinkColours extensions/zh
- LinksUpdateComplete extensions/zh
- ListDefinedTags extensions/zh
- LonelyPagesQuery extensions/zh
- RandomPageQuery extensions/zh
- RecentChange save extensions/zh
- ShortPagesQuery extensions/zh
- WgQueryPages extensions/zh
- MIT licensed extensions/zh
- Extensions in Wikimedia version control/zh
- All extensions/zh
- Extensions used on Wikimedia/zh
- Extensions included in Canasta/zh
- Extensions included in Fandom/zh
- Extensions included in Miraheze/zh
- Extensions included in MyWikis/zh
- Extensions included in Telepedia/zh
- Extensions included in Weird Gloop/zh
- Extensions included in wiki.gg/zh
- Disambiguation extensions/zh
