Difference between revisions of "MediaWiki/Syntax highlighting"

From Freephile Wiki
Jump to navigation Jump to search
(added line numbers and supported language list)
m
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:25, 13 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]

  1. Download GeSHi source
  2. Download MW extension source
  3. Make sure MW extension includes geshi.php
  4. 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]

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:

  • actionscript
  • ada
  • apache
  • applescript
  • asm
  • asp
  • autoit
  • bash
  • blitzbasic
  • bnf
  • c
  • caddcl
  • cadlisp
  • cfdg
  • cfm
  • cpp-qt
  • cpp
  • csharp
  • css-gen.cfg
  • css
  • c_mac
  • d
  • delphi
  • diff
  • div
  • dos
  • eiffel
  • fortran
  • freebasic
  • gml
  • groovy
  • html4strict
  • idl
  • ini
  • inno
  • io
  • java
  • java5
  • javascript
  • latex
  • lisp
  • lua
  • matlab
  • mirc
  • mpasm
  • mysql
  • nsis
  • objc
  • ocaml-brief
  • ocaml
  • oobas
  • oracle8
  • pascal
  • perl
  • php-brief
  • php
  • plsql
  • python
  • qbasic
  • reg
  • robots
  • ruby
  • sas
  • scheme
  • sdlbasic
  • smalltalk
  • smarty
  • sql
  • tcl
  • text
  • thinbasic
  • tsql
  • vb
  • vbnet
  • vhdl
  • visualfoxpro
  • winbatch
  • xml
  • z80

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