Extension:Disambiguator
Disambiguator Release status: stable |
|
---|---|
Implementation | Special page |
Description | Enables the designation of disambiguation pages with a magic word |
Author(s) | Ryan Kaldari (Kaldaritalk) |
Latest version | Continuous updates |
Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | 1.28+ |
PHP | 5.4+ |
License | MIT License |
Download | |
Help | Help:Extension:Disambiguator |
Expand | |
Expand | |
Quarterly downloads | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Public wikis using | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Translate the Disambiguator extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
The Disambiguator extension is designed to make disambiguation pages easier to work with programmatically.
It allows you to designate all disambiguation pages with the __DISAMBIG__
magic word (or an equivalent alias), which then marks them as such in the database.
This allows other extensions to optionally handle disambiguation pages as a separate class of page, although they are still considered "normal" pages.
Installation
- <translate> [[<tvar name=2>Special:ExtensionDistributor/Disambiguator</tvar>|Download]] and move the extracted <tvar name=name>
Disambiguator
</tvar> folder to your <tvar name=ext>extensions/
</tvar> directory.</translate>
<translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Disambiguator - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
wfLoadExtension( 'Disambiguator' );
- Configure as required.
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
Configuration
The following configuration variables can be set from your LocalSettings.php file.
- $wgDisambiguatorIndicateLinks - whether to add a 'mw-disambig' CSS class to links to disambiguation pages (default is true)
- $wgDisambiguatorNotifications - whether to warn the user when they type a link to a disambiguation page in wikitext editors (default is false)
Features
Disambiguator provides the following features:
- Programmatic identification of disambiguation pages via the __DISAMBIG__ magic word
- New special pages for listing all disambiguation pages and pages linking to disambiguation pages
- New API functions equivalent to the above special pages as well as an API function for querying whether or not a page is a disambiguation page
- Modifies Special:LonelyPages to ignore disambiguation pages
- Modifies Special:Random to ignore disambiguation pages (requires MediaWiki 1.26.0)
- If VisualEditor is enabled, allows marking a page as a disambiguation page via the page properties interface
- If VisualEditor is enabled, shows whether a page is a disambiguation page or not in the link inspector
- If VisualEditor is enabled, shows whether a page is a disambiguation page or not in the link dialog
- If configured, adds a 'mw-disambig' CSS class to links to disambiguation pages (See #Configuration above)
- Warns a WikiEditor user when linking to a disambiguation page, and allows them to fix the link.
Usage
On wiki
Once Disambiguator is installed, the best way to use it is to add the __DISAMBIG__
magic word to a template that is then included in all of your disambiguation pages.
Once the magic word is in place, your disambiguation pages will all have the 'disambiguation' page property assigned to them in the database. This property resides in the page_props table.
You will also have two new Special pages :
- Special:DisambiguationPages - which lists all the disambiguation pages on your wiki.
- Special:DisambiguationPageLinks - which lists all of the pages on your wiki that link to disambiguation pages. (This is a replacement for the old Special:Disambiguations page which is deprecated.)
With API
To list all the disambiguation pages:
api.php?action=query&list=querypage&qppage=DisambiguationPages
To list all the disambiguation page links:
api.php?action=query&list=querypage&qppage=DisambiguationPageLinks
Note that on wikis running in MiserMode (all WMF wikis), both the special page and API interface for DisambiguationPageLinks are limited to a certain number of results (typically 1000–5000).
To see if an individual page is a disambiguation page:
api.php?action=query&titles=Bug&prop=pageprops&ppprop=disambiguation
If it is a disambiguation page it will include 'disambiguation' in its pageprops. Note that the disambiguation pageprop, if present, will have its value set to an empty string, so be careful about testing it as a boolean.
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
- Complete list of bugs for this extension
File:Wikimedia-logo black.svg | <translate> This {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension|skin}} is being used on one or more [[<tvar name=2>m:Special:MyLanguage/Wikimedia projects</tvar>|Wikimedia projects]].</translate> <translate> This probably means that the {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension|skin}} is stable and works well enough to be used by such high-traffic websites.</translate> <translate> Look for this {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension's|skin's}} name in Wikimedia's <tvar name=2>CommonSettings.php</tvar> and <tvar name=3>InitialiseSettings.php</tvar> configuration files to see where it's installed.</translate> <translate> A full list of the {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extensions|skins}} installed on a particular wiki can be seen on the wiki's <tvar name=ver>Special:Version</tvar> page.</translate> |
File:OOjs UI icon information-progressive.svg |
- Pages with script errors
- Pages with broken file links
- Stable extensions
- Extensions without an image
- Special page extensions
- Extensions with release branches compatibility policy
- Extensions with manual MediaWiki version
- MIT licensed extensions
- Extensions in Wikimedia version control
- AncientPagesQuery extensions
- ChangeTagsListActive extensions
- GetDoubleUnderscoreIDs extensions
- GetLinkColours extensions
- LinksUpdateComplete extensions
- ListDefinedTags extensions
- LonelyPagesQuery extensions
- RandomPageQuery extensions
- RecentChange save extensions
- ShortPagesQuery extensions
- WgQueryPages extensions
- All extensions
- Extensions used on Wikimedia
- Disambiguation extensions