added line numbers and supported language list |
m Text replacement - "<(\/?)source" to "<$1syntaxhighlight" |
||
(2 intermediate revisions by one other user not shown) | |||
Line 11: | Line 11: | ||
== Usage == | == Usage == | ||
Just use the '''<nowiki>< | Just use the '''<nowiki><syntaxhighlight></nowiki>''' tag with the ''lang'' parameter to define the programming language. Other optional parameters are avaliable too. See the example below. | ||
== Parameters == | == Parameters == | ||
Line 30: | Line 30: | ||
== Example == | == Example == | ||
< | <syntaxhighlight lang="php" line> | ||
<?php | <?php | ||
if( !defined( 'MEDIAWIKI' ) ) | if( !defined( 'MEDIAWIKI' ) ) | ||
Line 50: | Line 50: | ||
?> | ?> | ||
</ | </syntaxhighlight> | ||
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 | ||
[[Category:Development]] | [[Category:Development]] | ||
[[Category:Wiki]] | [[Category:Wiki]] |
Latest revision as of 13:26, 24 February 2025
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
- Download GeSHi source
- Download MW extension source
- Make sure MW extension includes geshi.php
- Add include to LocalSettings
Usage
Just use the <syntaxhighlight> tag with the lang parameter to define the programming language. Other optional parameters are avaliable too. See the example below.
Parameters
- 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
<?php
if( !defined( 'MEDIAWIKI' ) )
die();
$wgExtensionFunctions[] = 'syntaxHighlightSetup';
$wgExtensionCredits['parserhook']['SyntaxHighlight_GeSHi'] = array(
'name' => 'SyntaxHighlight',
'author' => 'Brion Vibber',
'description' => 'Provides syntax highlighting using [http://qbnz.com/highlighter/ GeSHi Higlighter]',
'url' => 'http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi',
);
$wgHooks['LoadAllMessages'][] = 'syntaxHighlightLoadMessages';
function syntaxHighlightSetup() {
global $wgParser;
$wgParser->setHook( 'source', 'syntaxHighlightHook' );
}
?>
Supported Languages
These are the languages known by GeSHi that can be used in the lang parameter:
|
|
|
|
See documentation for the latest list of additions
Documentation
See http://qbnz.com/highlighter/geshi-doc.html for the extensive documentation. GeSHi is used in a number of other software projects like