Wikidiff2

Wikidiff2 is the PHP 5 module providing the external diff engine for MediaWiki. It is partly based on the original wikidiff, partly on DifferenceEngine.php. It performs word-level (space-delimited) diffs on general text, and character-level diffs on text composed of characters from the Japanese and Thai alphabets and the unified han; it includes support for Thai segmentation for word-level diffs in that language. Japanese, Chinese and Thai do not use spaces to separate words. The input is assumed to be UTF-8 encoded. Invalid UTF-8 may cause undesirable operation, such as truncation of the output, so the input should be validated by the application. The input text should have unix-style line endings.

The output is an HTML fragment -- a number of HTML table rows with the rest of the document structure omitted. The characters "<", ">" and "&" will be HTML-escaped in the output.

UNIX
First, get and compile libthai (it should be on your OS or distro's packages).

Then, get and compile wikidiff2. You need phpize (shipped with PHP).

$ git clone https://git.wikimedia.org/git/mediawiki/php/wikidiff2.git $ cd wikidiff2 $ phpize $ ./configure $ make $ sudo make install

Add the following line to your LocalSettings.php file:

Make sure that your php option is set. This is usually set in your php.ini file.

Debian GNU/Linux or its derivative
apt-get install php-wikidiff2

Add the following line to your LocalSettings.php file:

In your php.ini file (/etc/php5/apache2/php.ini or /etc/php5/conf.d/wikidiff2.ini - any name you like), add:


 * Known problems

If you have  in php.ini, you may see the following text at the top of every page when this extension is installed:

'Wikidiff2', 'version' => '', 'author' => 'Tim Starling', 'description' => 'external diff engine for MediaWiki', 'url' => 'https://www.mediawiki.org/wiki/Extension:Wikidiff2' ); $wgExternalDiffEngine = 'wikidiff2';

This happens due to short php open tags ( instead of  ).

Solutions:
 * Change the  php.ini directive to.
 * Manually edit the PHP files of this extension, changing  to.

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=716995