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 :
Syntax Highlighting: internal error
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
EOF
done
%end%
which outputs:
Syntax Highlighting: internal error
SyntaxHighlightingPlugin 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 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
)
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
Syntax Highlighting: internal error
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.
%begin sh%
UnmatchedWikiword?
MatchedWikiWord?
%end%
gives
Syntax Highlighting: internal error
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
Related Topics: TWikiPreferences,
TWikiPlugins,
EmptyPlugin
--
NicolasTisserand? - 12 Jul 2002