Extension:Disambiguator

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 handle disambiguation pages as a separate class of page.

Installation

 * 1) Download the latest snapshot and extract it to your extensions directory.
 * 2) Add  to LocalSettings.php.
 * 3) The extension should now be active.

Usage
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.)

API usage
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 dismabiguation 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.

Possible future plans

 * Add an option to color code links to disambiguation pages
 * Remove disambiguation pages from Special:Random and Special:LonelyPages
 * Consider extending link dialog in editor with ability to detect disambigs in search results and pull a list of links