Jump to content

Extension:Disambiguator

From mediawiki.org
This page is a translated version of the page Extension:Disambiguator and the translation is 100% complete.
MediaWiki扩展手册
Disambiguator
发行状态: 稳定版
实现 特殊页面
描述 允许用魔术字标明消歧义页
作者 Ryan Kaldari (Kaldari留言)
最新版本 持续更新
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki 1.28+
PHP 5.4+

  • $wgDisambiguatorIndicateLinks
许可证 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' );
    
  • 按需求配置。
  • Yes 完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。

配置

可以从LocalSettings.php文件中设置以下配置变量。

  • $wgDisambiguatorIndicateLinks - 是否为指向消歧义页面的链接添加mw-disambig CSS 类(默认为true
  • $wgDisambiguatorNotifications - 是否在wikitext编辑器中输入指向消歧义页面的链接时,提醒用户(默认为false

功能

Disambiguator 扩展提供了以下功能:

  • 通过__DISAMBIG__魔术字 对消歧义页面实现程序层面识别
  • 提供新的特殊页面,可列出所有消歧义页面以及链接至它们的页面
  • 提供等价于上述特殊页面的新API功能以及一个查询页面是否为消歧义页面的API功能
  • 修改Special:LonelyPages,使其忽略消歧义页面
  • 修改Special:Random,使其忽略消歧义页面(需要MediaWiki 1.26.0)
  • 如果启用了VisualEditor ,允许通过页面属性界面将一个页面标记为消歧义页
  • 如果启用了VisualEditor ,在链接检视器中显示一个页面是否为消歧义页
  • 如果启用了VisualEditor ,在链接对话框中显示一个页面是否为消歧义页
  • 如果进行了配置,为指向消歧义页的链接添加一个CSS类mw-disambig(参见上面的#配置
  • 使用WikiEditor 链接到消歧义页时警告用户,并允许他们修复链接。

用法

关于给终端用户的帮助,参见:Help:Extension:Disambiguator

在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_propnamepp_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

可能的未来计划