PHP Example
<?php
if (!defined('MEDIAWIKI'))
exit(1);
$wgExtensionFunctions[] = "wfSyntaxHighlighterExtension";
$wgExtensionCredits['other'][] = array(
'name' => 'SyntaxHighlighter',
'author' => array('Alex Gorbatchev'),
'version' => '1.0',
'url' => 'http://http://www.zjjv.com///projects/syntaxhighlighter',
'description' => 'Provides tight integration with SyntaxHighlighter.'
);
// Path to the SyntaxHighlighter scripts
$wgSyntaxHighlighterScriptPath = "{$wgScriptPath}/extensions/SyntaxHighlighter/scripts";
// Path to the SyntaxHighlighter styles
$wgSyntaxHighlighterStylesPath = "{$wgScriptPath}/extensions/SyntaxHighlighter/styles";
// Theme CSS file
$wgSyntaxHighlighterTheme = "shThemeDefault.css";
// Brushes to include on the page
$wgSyntaxHighlighterBrushes = array(
'shBrushBash.js',
'shBrushCpp.js',
'shBrushCSharp.js',
'shBrushCss.js',
'shBrushDelphi.js',
'shBrushDiff.js',
'shBrushGroovy.js',
'shBrushJava.js',
'shBrushJScript.js',
'shBrushPhp.js',
'shBrushPlain.js',
'shBrushPython.js',
'shBrushRuby.js',
'shBrushScala.js',
'shBrushSql.js',
'shBrushVb.js',
'shBrushXml.js'
);
$dir = dirname(__FILE__) . '/';
function wfSyntaxHighlighterExtension()
{
global $wgOut, $wgScriptPath, $wgParser,
$wgSyntaxHighlighterBrushes, $wgSyntaxHighlighterScriptPath,
$wgSyntaxHighlighterStylesPath, $wgSyntaxHighlighterTheme;
// Make shCore.js the very first script to be included (before all the brushes)
array_unshift($wgSyntaxHighlighterBrushes, 'shCore.js');
$home = $wgSyntaxHighlighterScriptPath;
// Add all scripts to the header
foreach ($wgSyntaxHighlighterBrushes as $script)
$wgOut->addScript("<script type=\"text/javascript\" src=\"{$wgSyntaxHighlighterScriptPath}/$script\"></script>\n");
// Add CSS links
foreach (array('shCore.css', $wgSyntaxHighlighterTheme) as $css)
$wgOut->addHeadItem($css, "<link type=\"text/css\" rel=\"stylesheet\" href=\"{$wgSyntaxHighlighterStylesPath}/$css\"/>\n");
// Add initialization code
$wgOut->addScript(
"<script type=\"text/javascript\">".
"var syntaxHighlighterConfig = { clipboardSwf: '{$wgSyntaxHighlighterScriptPath}/clipboard.swf' };".
"SyntaxHighlighter.highlight();".
"</script>\n"
);
// Finally, set up a MediaWiki hook to the <sh /> tag
$wgParser->setHook("sh", "wfSyntaxHighlighterExtensionRender");
return true;
}
function wfSyntaxHighlighterExtensionRender($input, $argv, $parser)
{
$args = "";
while (list($key, $val) = each($argv))
$args .= "$key: $val;";
$input = htmlspecialchars($input);
return "<pre class=\"$args\">\n$input\n</pre>";
}
Bash/shellbash, shellshBrushBash.js
ColdFusioncf, coldfusionshBrushColdFusion.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
Erlangerl, erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
js, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js