Difference between revisions of "MediaWiki/Syntax highlighting"
m (MediaWiki/Syntax highlighting moved to MediaWiki/Syntax highlighting: not to be confused with the general article on Syntax Highlighting) |
(added line numbers and supported language list) |
||
(One intermediate revision by the same user not shown) | |||
Line 145: | Line 145: | ||
== Documentation == | == Documentation == | ||
See http://qbnz.com/highlighter/geshi-doc.html for the extensive documentation. GeSHi is used in a number of other software projects like | See http://qbnz.com/highlighter/geshi-doc.html for the extensive documentation. GeSHi is used in a number of other software projects like | ||
+ | * Dokuwiki - An advanced wiki engine | ||
+ | * gtk.php.net - Their manual uses GeSHi for syntax highlighting | ||
+ | * WordPress - A powerful blogging system* | ||
+ | * PHP-Fusion - A constantly evovling CMS | ||
+ | * SQL Manager - A Postgres DBAL | ||
+ | * Mambo - A popular open source CMS | ||
+ | * MediaWiki - A leader in Wikis* | ||
+ | * TikiWiki - A megapowerful Wiki/CMS | ||
+ | * TikiPro - Another powerful Wiki based on Tikiwiki | ||
+ | * RWeb - A site-building tool | ||
+ | If you want to use it in OASIS projects besides this wiki, then start with the documentation. | ||
+ | |||
[[Category:Development]] | [[Category:Development]] | ||
[[Category:Wiki]] | [[Category:Wiki]] |
Revision as of 21:27, 3 June 2007
Writing good code follows good coding standards. On top of coding standards, syntax highlighting reveals the code making it easier to read (and learn).
There is a Generic Syntax Highlighter or GeSHi for short which is available as a Debian package (sudo apt-get install php-geshi). However, if using Brion Vibber's extension (which is better than this alternate GeSHi Code Tag extension because Brion's just registers one new tag: 'source' and uses the extension parameter passing available since MW 1.5) you will need to get the more recent source code download of GeSHi.
Installation[edit | edit source]
- Download GeSHi source
- Download MW extension source
- Make sure MW extension includes geshi.php
- Add include to LocalSettings
Usage[edit | edit source]
Just use the <source> tag with the lang parameter to define the programming language. Other optional parameters are avaliable too. See the example below.
Parameters[edit | edit source]
- lang: Defines the language
- line: Corresponds to enable_line_numbers method on GeSHi
- start: Corresponds to start_line_numbers_at method on GeSHi
- enclose: Corresponds to set_header_type method on GeSHi
- strict: Corresponds to enable_strict_mode method on GeSHi
The effect and usage of these parameters can be consulted in GeSHi's documentation.
Since r22246, you can override the colors using [[MediaWiki:GeSHi.css]].
Example[edit | edit source]
1 <?php
2 if( !defined( 'MEDIAWIKI' ) )
3 die();
4
5 $wgExtensionFunctions[] = 'syntaxHighlightSetup';
6 $wgExtensionCredits['parserhook']['SyntaxHighlight_GeSHi'] = array(
7 'name' => 'SyntaxHighlight',
8 'author' => 'Brion Vibber',
9 'description' => 'Provides syntax highlighting using [http://qbnz.com/highlighter/ GeSHi Higlighter]',
10 'url' => 'http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi',
11 );
12 $wgHooks['LoadAllMessages'][] = 'syntaxHighlightLoadMessages';
13
14 function syntaxHighlightSetup() {
15 global $wgParser;
16 $wgParser->setHook( 'source', 'syntaxHighlightHook' );
17 }
18
19 ?>
Supported Languages[edit | edit source]
These are the languages known by GeSHi that can be used in the lang parameter:
|
|
|
|
See documentation for the latest list of additions
Documentation[edit | edit source]
See http://qbnz.com/highlighter/geshi-doc.html for the extensive documentation. GeSHi is used in a number of other software projects like
- Dokuwiki - An advanced wiki engine
- gtk.php.net - Their manual uses GeSHi for syntax highlighting
- WordPress - A powerful blogging system*
- PHP-Fusion - A constantly evovling CMS
- SQL Manager - A Postgres DBAL
- Mambo - A popular open source CMS
- MediaWiki - A leader in Wikis*
- TikiWiki - A megapowerful Wiki/CMS
- TikiPro - Another powerful Wiki based on Tikiwiki
- RWeb - A site-building tool
If you want to use it in OASIS projects besides this wiki, then start with the documentation.