From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual
Crystal Clear action run.png

Release status: stable

Implementation Tag
Description Syntax highlight text snippets, whole pages or whole files.
Author(s) Jean-Lou Dupont
Latest version 1.0.0
MediaWiki 1.10, 1.11
License No license specified
Download SVN
See SVN ($Id: geshi.doc.wikitext 491 2007-10-10 15:34:11Z jeanlou.dupont $)

Translate the Geshi extension if it is available at translatewiki.net

Check usage and version matrix; code metrics

See also: Extension:SyntaxHighlight GeSHi.

Purpose[edit | edit source]

Syntax highlight text snippets, whole pages or whole files. The extension also provides a new 'hook' for other extensions to leverage as well as providing syntax highlighting for text blocks, whole pages or whole files. Line numbers can optionally be included or omitted.

Usage[edit | edit source]

  • LINES parameter
    • 0 -> no line numbers
    • 1 -> include line numbers
  • LANG parameter: language
  • SOURCE parameter
    • source=page where page is a valid page
    • source=file where file is a valid file of the Mediawiki installation accessible through the root of the installation.

Example 1[edit | edit source]

<geshi lang=LANG lines=LINES source=SOURCE> code OR page title OR filename </geshi>

Example 2[edit | edit source]

<php lines=LINES source=SOURCE> php code OR page title OR filename </php>

This usage is especially useful to integrate with other extensions (such as Form Processor).

Extensibility[edit | edit source]

This extension provides a new hook SyntaxHighlight that can be leveraged by other extensions.

public function handler( &$text, $lang, $lines, &$result )

History[edit | edit source]

  • Added 'source' tag for aligning with some similar extensions.
  • Added 'js' tag for highlighting 'Javascript'
  • Added 'css' tag for highlighting 'CSS'
  • Added parser function '{{#source ...}}'

1.0.0[edit | edit source]

  • Moved to PEAR distribution channel

Dependencies[edit | edit source]

Note: Geshi may not work with the newest version of StubManager (1.3.2); try StubManager 1.0.0

Installation[edit | edit source]

See the Mediawiki Extension table entry "download" above.[1]

LocalSettings.php[edit | edit source]

Extension:ExtensionManager: See footnote[2]

require_once "$IP/extensions/geshi/geshi.php";
  • Since this Extensions is depending on StubManager, add the line after the StubManager include, or else your Wiki won't work.

PEAR[edit | edit source]

PEAR is a repository of PHP software code.

pear channel-discover mediawiki.googlecode.com/svn
  • Install extension through PEAR:
pear install mediawiki/geshi
  • Add the following to LocalSettings.php[2][3]:
require 'MediaWiki/geshi/geshi.php';
  • Note that the required version of PEAR must be respected. Currently, the minimum version of PEAR usable with this channel is v1.6.2. Perform the following command to upgrade to the latest version of PEAR:
pear upgrade pear

Upgrades through PEAR[edit | edit source]

Sometimes, it is necessary to clear PEAR's cache in order to perform upgrades.

pear clear-cache

or use the force method:

pear upgrade --force mediawiki/geshi

PEAR Web Frontend[edit | edit source]

For easier remote package management, PEAR Frontend WEB can be installed. Installation notes can be found here. An example of the WEB frontend is available here.

RSS feed[edit | edit source]

To keep up-to-date with this channel, use the following RSS feed__Rss2.jpg.

Notes[edit | edit source]

Other Extensions From the same author[edit | edit source]

Consult User Jldupont's page.

  1. The most recent release is always available through the extension's PEAR and SVN repositories. This page is not necessarily up-to-date.
  2. 2.0 2.1 2.2 Extension:ExtensionManager does not require any modification to LocalSettings.php because ExtensionManager includes the extension.
    Note that if PHP code caching is in place (e.g. APC, eAccelerator), then to successfully complete the installation a cache flush might be needed.
  3. Modifications to LocalSettings.php is only necessary if not using Extension:ExtensionManager

External Links[edit | edit source]