Saturday, September 13, 2008

Syntax highlight

Add syntax highlighting functionality.
I think I'll write many code snippets, so it's necessary to add programming languages syntax highlight into my MediaWiki engine.

I tried to find the same plug-in (extension) like is used in Wikipedia project. It seems these guys use something like SyntaxHighlight_GeSHi, because they format code snippets with <source> tag.

SyntaxHighlight_GeSHi
http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi ./SyntaxHighlight_GeSHi

GeSHi itself
http://qbnz.com/highlighter/
http://sourceforge.net/project/showfiles.php?group_id=114997&package_id=124605&release_id=618638

To add frame around source code (like around <pre> tag) change main.css into skin folder:
/* avb: add div.source-XXX for SyntaxHighlight_GeSHi */
pre, div.source-abap, div.source-actionscript, div.source-ada, div.source-apache, div.source-applescript, div.source-asm, div.source-asp, div.source-autoit, div.source-bash, div.source-basic4gl, div.source-blitzbasic, div.source-bnf, div.source-c, div.source-c_mac, div.source-caddcl, div.source-cadlisp, div.source-cfdg, div.source-cfm, div.source-cpp-qt, div.source-cpp, div.source-csharp, div.source-css, div.source-d, div.source-delphi, div.source-diff, div.source-div, div.source-dos, div.source-dot, div.source-eiffel, div.source-fortran, div.source-freebasic, div.source-genero, div.source-gml, div.source-groovy, div.source-haskell, div.source-html4strict, div.source-idl, div.source-ini, div.source-inno, div.source-io, div.source-java, div.source-java5, div.source-javascript, div.source-latex, div.source-Code, div.source-lisp, div.source-lua, div.source-m68k, div.source-matlab, div.source-mirc, div.source-mpasm, div.source-mysql, div.source-nsis, div.source-objc, div.source-ocaml-brief, div.source-ocaml, div.source-oobas, div.source-oracle8, div.source-pascal, div.source-per, div.source-perl, div.source-php-brief, div.source-php, div.source-plsql, div.source-python, div.source-qbasic, div.source-rails, div.source-reg, div.source-robots, div.source-ruby, div.source-sas, div.source-scheme, div.source-sdlbasic, div.source-smalltalk, div.source-smarty, div.source-sql, div.source-tcl, div.source-text, div.source-thinbasic, div.source-tsql, div.source-vb, div.source-vbnet, div.source-vhdl, div.source-visualfoxpro, div.source-winbatch, div.source-xml, div.source-xpp, div.source-z80 {
padding: 1em;
border: 1px dashed #2f6fab;
color: black;
background-color: #f9f9f9;
line-height: 1.1em;
}

It was "pre { ... }" only.

No comments: