| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4,43 +4,44 @@ LinkTitles
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[MediaWiki extension](https://www.mediawiki.org/wiki/Extension:LinkTitles) that
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				automatically adds links to words that match titles of existing pages.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Minimum requirements: MediaWiki 1.25, PHP 5.3. Source code documentation can be
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Minimum requirement: MediaWiki 1.28. Source code documentation can be
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				found at the [Github project pages](https://bovender.github.io/LinkTitles).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Table of contents
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-----------------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1.  [Oveview](#overview)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Versions](#versions)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2.  [Installation](#installation)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3.  [Usage](#usage)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Editing a page](#editing-a-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Preventing automatic linking after minor edits](#preventing-automatic-linking-after-minor-edits)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Viewing a page](#viewing-a-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Including and excluding pages with Magic Words](#including-and-excluding-pages-with-magic-words)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Enable or disable automatic linking for sections](#enable-or-disable-automatic-linking-for-sections)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Namespace support](#namespace-support)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Batch processing](#batch-processing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Special:LinkTitles](#special-linktitles)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Maintenance script](#maintenance-script)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				4.  [Configuration](#configuration)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Linking when a page is edited and saved](#linking-when-a-page-is-edited-and-saved)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Linking when a page is rendered for display](#linking-when-a-page-is-rendered-for-display)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Enabling case-insensitive linking (smart mode)](#enabling-case-insensitive-linking-(smart-mode))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Dealing with custom namespaces](#dealing-with-custom-namespaces)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Linking or skipping headings](#linking-or-skipping-headings)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Prioritizing pages with short titles](#prioritizing-pages-with-short-titles)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Filtering pages by title length](#filtering-pages-by-title-length)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Excluding pages from being linked to](#excluding-pages-from-being-linked-to)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Dealing with templates](#dealing-with-templates)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Multiple links to the same page](#multiple-links-to-the-same-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Partial words](#partial-words)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Special page configuration](#special-page-configuration)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5.  [Development](#development)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Contributors](#contributors)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -   [Testing](#testing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				6.  [License](#license)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1. [Oveview](#overview)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Versions](#versions)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2. [Installation](#installation)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3. [Important note for MediaWiki versions 1.32 and newer](#important-note-for-mediawiki-versions-1.32-and-newer)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				4. [Usage](#usage)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Editing a page](#editing-a-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Preventing automatic linking after minor edits](#preventing-automatic-linking-after-minor-edits)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Viewing a page](#viewing-a-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Including and excluding pages with Magic Words](#including-and-excluding-pages-with-magic-words)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Enable or disable automatic linking for sections](#enable-or-disable-automatic-linking-for-sections)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Namespace support](#namespace-support)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Batch processing](#batch-processing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Special:LinkTitles](#special-linktitles)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Maintenance script](#maintenance-script)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5. [Configuration](#configuration)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Linking when a page is edited and saved](#linking-when-a-page-is-edited-and-saved)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Linking when a page is rendered for display](#linking-when-a-page-is-rendered-for-display)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Enabling case-insensitive linking (smart mode)](#enabling-case-insensitive-linking-(smart-mode))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Dealing with custom namespaces](#dealing-with-custom-namespaces)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Linking or skipping headings](#linking-or-skipping-headings)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Prioritizing pages with short titles](#prioritizing-pages-with-short-titles)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Filtering pages by title length](#filtering-pages-by-title-length)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Excluding pages from being linked to](#excluding-pages-from-being-linked-to)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Dealing with templates](#dealing-with-templates)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Multiple links to the same page](#multiple-links-to-the-same-page)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Partial words](#partial-words)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Special page configuration](#special-page-configuration)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				6. [Development](#development)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Contributors](#contributors)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   - [Testing](#testing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				7. [License](#license)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Overview
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -50,17 +51,17 @@ The **LinkTitles** extension automatically adds links to existing page titles
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				that occur on a given page. This will automatically cross-reference your wiki
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				for you. The extension can operate in three ways that can be used independently:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1.  Whenever a page is edited and saved, the extension will look if any existing
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1. Whenever a page is edited and saved, the extension will look if any existing
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				page titles occur in the text, and automatically add links (`[[...]]]`) to the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				corresponding pages.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2.  Links may also be added on the fly whenever a page is rendered for display.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2. Links may also be added on the fly whenever a page is rendered for display.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Most of the time, MediaWiki will fetch previously rendered pages from cache upon
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				a page request, but whenever a page is refreshed, the LinkTitles extension can
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				add its page links. These links are not hard-coded in the Wiki text. The
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				original content will not be modified.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3.  Batch mode enables Wiki administrators to process all pages in a Wiki at
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3. Batch mode enables Wiki administrators to process all pages in a Wiki at
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				once. Batch processing can either be started from a special page, or from the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				server's command line (see [below](#batch-processing)).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -75,19 +76,20 @@ are fixed.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Version | Date | Major changes ||
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-|-|-|-
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				6 | 12-2019 | Renamed deprecated MW constant for compatibility with MW version 1.34, minimum required version is 1.28. | [Details][v6.0.0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5 | 09-2017 | Rewrote the entire extension; vastly improved namespace support; some breaking changes | [Details][v5.0.0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				4 | 11-2016 | Changed format of the extension for MediaWiki version 1.25; added basic namespace support | [Details][v4.0.0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3 | 02-2015 | Added magic words; improved performance | [Details][3.0.0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2 | 11-2013 | Introduced smart mode | [Details][2.0.0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1 | 05-2012 | First stable release |
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[v6.0.0]: https://github.com/bovender/LinkTitles/releases/tag/v6.0.0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[v5.0.0]: https://github.com/bovender/LinkTitles/releases/tag/v5.0.0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[v4.0.0]: https://github.com/bovender/LinkTitles/releases/tag/v4.0.0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[3.0.0]: https://github.com/bovender/LinkTitles/compare/2.4.1...3.0.0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[2.0.0]: https://github.com/bovender/LinkTitles/compare/1.8.1...2.0.0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				For more details, click the 'Details' links, see the `NEWS` file in the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				For more details, click the 'Details' links, see the `NEWS.md` file in the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				repository for a user-friendly changelog, or study the commit messages.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -113,17 +115,43 @@ Do not forget to adjust the [configuration](#configuration) to your needs.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				If your MediaWiki version is really old (1.24 and older), you need to use
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				a [different mechanism](https://www.mediawiki.org/wiki/Manual:Extensions#Installing_an_extension).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Important note for MediaWiki versions 1.32 and newer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				----------------------------------------------------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				**Links can no longer be automatically added when a page is saved with
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				MediaWiki versions 1.32 and newer.** This is because MediaWiki changed the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				signature of an important callback function. See [GitHub issue #43][issue-43]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				and [T222413][] for more information. There's a slight chance that link-on-edit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				will work again in a future version of MediaWiki (that is, if/when pull request
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[467308][] is merged). Until that happens, admins are advised to use the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				link-on-render feature (which is now enabled by default).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				A workaround is to set up a cron job for the command-line tool, e.g.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # /etc/crontab
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Runs at 1 a.m. every morning.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # m h dom mon dow user      command
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    0   1 *   *   *   www-data  php -f /var/www/html/extensions/LinkTitles/linktitles-cli.php
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[issue-43]: https://github.com/bovender/LinkTitles/issues/43
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[T222413]: https://phabricator.wikimedia.org/T222413
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[467308]: https://gerrit.wikimedia.org/r/467308
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Usage
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-----
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				### Editing a page
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				By default, the LinkTitles extension will add links to existing pages whenever
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				you edit and save a page. Unless you changed the configuration variables, it will
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				link whole words only, prefer longer target page titles over shorter ones, skip
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				headings, and add multiple links if a page title appears more than once on the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				page. All of this is configurable; see the [Configuration](#configuration)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				section.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				*By default, the LinkTitles extension will **no longer** add links to existing
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				pages whenever you edit and save a page. This is because MediaWiki 1.32 changed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				an important callback function that the LinkTitles extension relied on (see above).*
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				When linking-on-edit is enabled (with MW versions prior to 1.33), the extension
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				will by default link whole words only, prefer longer target page titles over
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				shorter ones, skip headings, and add multiple links if a page title appears
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				more than once on the page. All of this is configurable; see the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[Configuration](#configuration) section.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				### Preventing automatic linking after minor edits
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -436,9 +464,9 @@ Development
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-----------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				If you wish to contribute, please issue pull requests against the `develop`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				branch, as I follow Vincent Driessen's advice on [A successful Git branching
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				model](http://nvie.com/git-model) (knowing that there are [alternative
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				workflows](http://scottchacon.com/2011/08/31/github-flow.html)).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				branch, as I roughly follow Vincent Driessen's advice on [A successful Git
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				branching model](http://nvie.com/git-model) (knowing that there are
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				[alternative workflows](http://scottchacon.com/2011/08/31/github-flow.html)).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The `master` branch contains stable releases only, so it is safe to pull the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				master branch if you want to install the extension for your own Wiki.
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -446,13 +474,13 @@ master branch if you want to install the extension for your own Wiki.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				### Contributors
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   Daniel Kraus (@bovender), main developer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   Ulrich Strauss (@c0nnex), initial support for namespaces
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   Brent Laabs (@labster), code review and bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   @tetsuya-zama, bug fix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   @yoshida3669, namespace-related bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   Caleb Mingle (@dentafrice), bug fix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-   @paladox, bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- Daniel Kraus (@bovender), main developer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- Ulrich Strauss (@c0nnex), initial support for namespaces
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- Brent Laabs (@labster), code review and bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- @tetsuya-zama, bug fix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- @yoshida3669, namespace-related bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- Caleb Mingle (@dentafrice), bug fix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- @paladox, bug fixes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				### Testing
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -469,61 +497,61 @@ The following assumes that you have an instance of MediaWiki running locally on
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				your development machine. This assumes that you are running Linux (I personally
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use Ubuntu).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1.  Pull the MediaWiki repository:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				1. Pull the MediaWiki repository:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        cd ~/Code
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        git clone --depth 1 https://phabricator.wikimedia.org/source/mediawiki.git
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       cd ~/Code
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       git clone --depth 1 https://phabricator.wikimedia.org/source/mediawiki.git
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2.  Install [composer](https://getcomposer.org) locally and fetch the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				dependencies (including development dependencies):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				2. Install [composer](https://getcomposer.org) locally and fetch the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   dependencies (including development dependencies):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  Follow the instructions on the [composer download page](https://getcomposer.org/download),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  but instead of running `php composer-setup.php`, run:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   Follow the instructions on the [composer download page](https://getcomposer.org/download),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   but instead of running `php composer-setup.php`, run:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        php composer-setup.php --install-dir=bin --filename=composer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        bin/composer install
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       php composer-setup.php --install-dir=bin --filename=composer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       bin/composer install
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3.  Install phpunit (it was already installed on my Ubuntu system when I began
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				testing LinkTitles, so I leave it up to you to figure out how to do it).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				3. Install phpunit (it was already installed on my Ubuntu system when I began
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   testing LinkTitles, so I leave it up to you to figure out how to do it).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				4.  Copy your `LocalSettings.php` over from your local MediaWiki installation
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				and remove (or comment out) any lines that reference extensions or skins that
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				you are not going to install to your test environment. For the purposes of
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				testing the LinkTitles extension, leave the following line in place:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				4. Copy your `LocalSettings.php` over from your local MediaWiki installation
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   and remove (or comment out) any lines that reference extensions or skins that
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   you are not going to install to your test environment. For the purposes of
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   testing the LinkTitles extension, leave the following line in place:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        wfLoadExtensions( 'LinkTitles' );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       wfLoadExtensions( 'LinkTitles' );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  And ensure the settings file contains the following:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   And ensure the settings file contains the following:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        $wgShowDBErrorBacktrace = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       $wgShowDBErrorBacktrace = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5.  Create a symbolic link to your copy of the LinkTitles repository:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				5. Create a symbolic link to your copy of the LinkTitles repository:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        cd ~/Code/mediawiki/extensions
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ln -s ~/Code/LinkTitles
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       cd ~/Code/mediawiki/extensions
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       ln -s ~/Code/LinkTitles
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				6.  Make sure your local MediaWiki instance is up to date. Otherwise phpunit may
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				fail and tell you about database problems.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				6. Make sure your local MediaWiki instance is up to date. Otherwise phpunit may
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   fail and tell you about database problems.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  This is because the local database is used as a template for the unit tests.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  For example, I initially had MW 1.26 installed on my laptop, but the cloned
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  repository was MW 1.29.1. It's probably also possible to clone the repository
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  with a specific version tag which matches your local installation.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   This is because the local database is used as a template for the unit tests.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   For example, I initially had MW 1.26 installed on my laptop, but the cloned
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   repository was MW 1.29.1. It's probably also possible to clone the repository
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   with a specific version tag which matches your local installation.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				7.  Run the tests:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				7. Run the tests:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        cd ~/Code/mediawiki/tests/phpunit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        php phpunit.php --group bovender
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       cd ~/Code/mediawiki/tests/phpunit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       php phpunit.php --group bovender
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  This will run all tests from the 'bovender' group, i.e. tests for my extensions.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  If you linked just the LinkTitles extension in step 5, only this extension
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  will be tested.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   This will run all tests from the 'bovender' group, i.e. tests for my extensions.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   If you linked just the LinkTitles extension in step 5, only this extension
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   will be tested.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				License
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Copyright 2012-2018 Daniel Kraus <mailto:bovender@bovender.de> (@bovender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Copyright 2012-2020 Daniel Kraus <mailto:bovender@bovender.de> (GitHub: @bovender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				This program is free software; you can redistribute it and/or modify
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				it under the terms of the GNU General Public License as published by
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |