Syntax Highlighting

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:

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.

Examples

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:

  1. var de = function() {
  2. return (typeof(window.de) == 'object') ? window.de : {};
  3. }();

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:

  1. var de = function() {
  2. return (typeof(window.de) == 'object') ? window.de : {};
  3. }();

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:

  1. var de = function() {
  2. return (typeof(window.de) == 'object') ? window.de : {};
  3. }();

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:

  1. void main () {
  2. printf ("Hello World!");
  3. exit(0);
  4. }

In some languages certain keywords link to appropriate online 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);
}