%META:TOPICINFO{author="RizwanKassim" date="1105766322" format="1.0" version="1.2"}% %META:TOPICPARENT{name="TWikiPreferences"}% ---++ Syntax Highlighting TWiki Plugin The Syntax Highlighting Twiki Plugin is used to emphasize the rendering of your twiki text according to several languages. It currently uses =enscript= to render its output. It supports the following languages : * ada * asm * awk * bash * c * changelog * c++ * csh * delphi * diff * diffs * diffu * elisp * fortran * fortran_pp * haskell * html * idl * inf * java * javascript * ksh * m4 * mail * makefile * maple * matlab * modula_2 * nested * nroff * objc * outline * pascal * perl * postscript * python * rfc * scheme * sh * skill * sql * states * synopsys * tcl * tcsh * tex * vba * verilog * vhdl * vrml * wmlscript * zsh ---+++ Syntax Rules To enable syntax highlighting on some text, just type : %begin [numbered] language% some text belonging to the language %end% where language is one of the list above, and numbered an optional keyword triggering the line numbering feature. Notice that the =%begin language%= and =%end%= must be left alone on one single line. ----+++ Example The following text : %begin c++% #include int main() { std::cout << "Hello, world." << std::endl; } %end% gives : %begin c++% #include int main() { std::cout << "Hello, world." << std::endl; } %end% _If you do not see a nice colorized piece of code above this, you should check if the plugin is well installed._ You can also output numbered lines starting at 10 with this text: %begin numbered:10 sh% #!/bin/sh languages=`enscript --help-highlight | grep 'Name:' | cut -d ' ' -f 2` for l in $languages; do cat << EOF * $l EOF done %end% which outputs: %begin numbered:10 sh% #!/bin/sh languages=`enscript --help-highlight | grep 'Name:' | cut -d ' ' -f 2` for l in $languages; do cat << EOF * $l EOF done %end% ---+++ %TOPIC% Settings Plugin settings are stored as preferences variables. To reference a plugin setting write ==%<plugin>_<setting>%==, i.e. ==%DEFAULTPLUGIN_SHORTDESCRIPTION%== * One line description, is shown in the %TWIKIWEB%.TextFormattingRules topic: * Set SHORTDESCRIPTION = This Plugin is used to emphasize the rendering of your twiki text according to several languages. * Debug plugin: (See output in =data/debug.txt=) * Set DEBUG = 1 ---+++ Plugin Installation Instructions * Make sure you have GNU enscript 1.6.3 or above installed. * Unzip the =SyntaxHighlighting.zip= package in your TWiki installation directory. * If the installation is correct, you should see some highlighted text in this page. * If you want support for additional languages (for customized or future enscript versions), you must edit the plugin file and add your languages to the languages array. _(Make sure that your =enscript= version supports the languages you add.)_ ---+++ Known Bugs ---++++ Enscript oddities %begin numbered sh% # youpi %end% gives %begin numbered sh% # youpi %end% Because =enscript= strangely adds an extra line (for closing its emphasizing markers) between the matched <pre> </pre> to its html output. Working around such a weird behavior is ... not planned. ---++++ WikiWords on last line %begin sh% UnmatchedWikiword :) MatchedWikiWord :( %end% gives %begin sh% UnmatchedWikiword :) MatchedWikiWord :( %end% Adding a newline at the end of input stops TWiki in his greedy matching, but this workaround is not an acceptable solution. Feel free to find another one .... ---+++ Plugin Info | Plugin Author: | Main.NicolasTisserand, Main.NicolasBurrus, Perceval Anichini| | Plugin Version: | 12 Jul 2002 | | Change History: | 12 Jul 2002: Initial version | | CPAN Dependencies: | none | | Other Dependencies: | GNU enscript 1.6.3 | | Perl Version: | 5.0 | | Plugin Home: | http://www.lrde.epita.fr/cgi-bin/twiki/view/TWiki/SyntaxHighlightingPlugin | | Feedback: | Main.NicolasTisserand | __Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins, EmptyPlugin -- Main.NicolasTisserand - 12 Jul 2002