DokuWiki includes support for code syntax highlighting as described at the syntax page.
Starting with DokuWiki release “Greebo” some additional GeShi options for syntax highlighting are supported:
enable_line_numbers="true"
start_line_numbers_at="42"
highlight_lines_extra="2,5"
enable_keyword_links="false"
All options are set by adding some key-value pairs to the standard code
-tag syntax.
<code languagecode [key="value", ...]>
The following examples explain their usage.
The following code enables line numbers:
<code JavaScript [enable_line_numbers="true"]> var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }(); </code>
This is the result:
var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }();
The next example additionally highlights one line:
<code JavaScript [enable_line_numbers="true",highlight_lines_extra="2"]> var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }(); </code>
This is the result:
var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }();
You can also highlight multiple lines:
<code JavaScript [enable_line_numbers="true",highlight_lines_extra="2,3"]> var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }(); </code>
This is the result:
var de = function() { return (typeof(window.de) == 'object') ? window.de : {}; }();
Line numbers can start at any given value:
<code C [enable_line_numbers="true", start_line_numbers_at="42"]> void main () { printf ("Hello World!"); exit 0; } </code>
This is the result:
void main () { }
Some languages has keywords that link to appropriate documentation. This can be disabled:
<code C [enable_keyword_links="false"]> void main () { printf ("Hello World!"); exit 0; } </code>
This is the result:
void main () { printf ("Hello World!"); exit 0; }