Wikidiff2

Wikidiff2 is a PHP and HHVM module that provides 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://gerrit.wikimedia.org/r/p/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
In older versions of the Debian package, 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