Jump to content

Extension:Disambiguator

From mediawiki.org
This page is a translated version of the page Extension:Disambiguator and the translation is 83% complete.
MediaWiki扩展手册
Disambiguator
发行状态: 稳定版
实现 特殊页面
描述 使用魔术字启用消除歧义页
作者 Ryan Kaldari (Kaldari留言)
最新版本 持续更新
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki 1.28+
PHP 5.4+
许可协议 MIT授權條款
下載
帮助 Help:Extension:Disambiguator/zh

  • $wgDisambiguatorIndicateLinks
前往translatewiki.net翻譯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 编辑器中输入指向消歧义页面的链接时,提醒用户(默认为否)

功能

Disambiguator 扩展提供了以下功能:

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


用法

关于end-user help,参见:Help:Extension:Disambiguator

在wiki上

一旦本扩展被安装,使用它的最好方式是向一个模板你添加魔术字__DISAMBIG__,然后将模板嵌入到所有消歧义页。

一旦这个魔术字就位,你的消歧义页在数据库内都会被赋予“消歧义”页面属性。 This property resides in the page_props table.

你还会有两个新的特殊页面

  • 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

注意在以MiserMode模式运行的wiki上(所有维基媒体基金会的wiki),DisambiguationPageLinks的特殊页面和API接口都有结果数量限制(一般为1000 - 5000)。

使用下面API来查看一个单独页面是不是消歧义页:

api.php?action=query&titles=Bug&prop=pageprops&ppprop=disambiguation

如果是一个消歧义页,其页面属性会包含“disambiguation”。 注意,消歧义页面属性如果存在,其值会被设为一个空字符串,所以小心不要把它当做布尔值来测试。

With Lua

For wikis with Scribunto installed, Disambiguator adds a isDisambiguationPage property to mw.title objects.

使用SQL

To see if an individual page is a disambiguation page, check the page_props table for the presence of a pp_propname = 'disambiguation'. Pages that are not disambiguation pages will not have this pp_propname. The pp_value isn't important.

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


Possible future plans

  • Add an option to hide disambiguation pages from:

Special:AllPages (task #9936), Special:PrefixIndex (task #11319), Special:WhatLinksHere (task #9935), Special:AncientPages (task #76287)

  • Consider extending link dialog in wikitext editor with ability to detect disambigs in search results and pull a list of links