DokuWiki syntax highlighting
DokuWiki includes out-of-the-box functionality for syntax highlighting using a built-in GeSHi plugin.
The DokuWiki engine uses a single, shared stylesheet for all GeSHi languages. This reduces the amount of data that needs to be transferred from the server, but prevents language-specific highlighting. This can be uncomfortable if you're used to a specific highlighting syle (e.g. SSMS's highlighting conventions for TSQL).
The single stylesheet is enforced in the p_xhtml_cached_geshi() function in core DokuWiki code, using the line:
$geshi->enable_classes();
To disable this behaviour (i.e. to enable language-specific highlighting!), just comment it out:
// $geshi->enable_classes();
Because you're modifying core engine code, you need to reinstate this change any time you upgrade your install.
Where to find it
The line of code appears in different places for different wiki versions:
| Version | File | Line number |
|---|---|---|
| Igor | inc/parserutils.php | 794 |
| Greebo | inc/parserutils.php | 766 |
| Detritus Elenor of Tsort Frusterick Manners | inc/parserutils.php | 764 |
| Hrun | inc/parserutils.php | 720 |
| Binky | inc/parserutils.php | 705 |
| Weatherwax | inc/parserutils.php | 785 |
| 2005-02-18 | inc/parser.php |