Color Code Plugin#
By RoyPhillipsOverview#
This plugin implements the WikiPlugin interface, providing an execute implemenation that renders the body text as colorized source code, according to either a named syntax parameter, and/or parameter values provided at the plugin's point of invocation. Example:[{ColorCodePlugin syntax='sql' select count(*) from dual }]
The above example will attempt to load a resource named 'sql' from the webapps classpath, for example, a properties file, and use the properties in it to format the text. These properties define how (color, bold, italic) each element, such as keywords will be rendered, as well as listing the keywords and optionally, 'special' patterns in the text (see XML example below). Using the settings distributed, the example renders:
![]() |
Alternatively, the configuration can be specified as immediate parameters to the Plugin, as in this cheap-and-cheerful XML example:
[{ColorCodePlugin colorcode.keywords='version,encoding,!doctype,public,xml' colorcode.special.tag.pattern='<[/]?[a-z_-]+>' tokenizer.wordChar: '.,-,/,!,<,>' tokenizer.ordinaryChar: '<,>' (...xml document here...) }]
![]() |
The Specials
![]() |
As well as the predefined categories of token, keyword, normal, string, number, symbol, the properties file may define any number of 'special' token classes. In the example above, the property colorcode.special.tag.pattern defined the pattern by which the special token class tag could be recognized. Otherwise 'normal' tokens that match this regular expression will be rendered according to the default special font properties, unless explictly specified by a matching colorcode.special.tag.font.color etc. definition.
See vm.properties for an example of definining more than one class of special token. Notice that the StreamTokenizer has to be programmed to accept any non-alphabetic characters that form part of a special token, by including them in the tokenizer.ordinaryChar and tokenizer.wordChar properties.
Madness#
(sorry, that should have read Installing)- Download the distribution jar
into the local JSPWiki/WEB-INF/lib directory.
- Either invoke with full package name, or add to JSPWiki/WEB-INF/jspwiki.properties plugin search path:
- jspwiki.plugin.searchPath = ...,lu.intrasoft.jspwiki.plugin, ...
Building#
- Unpack the source jar
into some convenient directory
- Edit the build.properties file to set the local webserver path
- E.g., webserver.dir=C:/Program Files/Apache Software Foundation/Tomcat 5.5
- Run the ant task deploy
Implementation#
ColorCodePlugin.java | Simple WikiPlugin implemenation |
ColorCodeHTML.java | Non-plugin specific code to render text as HTML (the guts of this thing) |
SyntaxTokenizer.java | A StreamTokenizer subclass that configures it's options from provided properties |
Back
do NOT forget to include the blank line between the syntax and your code! (wont work without)
are there any pre-defined .properties for other languages?
--Max, 03-Oct-2006
Currently, the pre-defined .properties include:
SQL![]() | SQL syntax highlighting (Oracle flavor) |
C/C++![]() | C & C++ -- full C++ '98 keyword set |
Java![]() | Works, but nowhere near as nice as Java2HtmlPlugin |
Velocity![]() | Velocity template file highlighing |
The XML example above could easily be converted to a properties file, as well. It's easy enough to create one for a different syntax - I have used inline definitions for emails, bash scripts, etc., that don't occur often enough for a formal properties file.
--Roy, 03-Oct-2006
Add new attachment
List of attachments
Kind | Attachment Name | Size | Version | Date Modified | Author | Change note |
---|---|---|---|---|---|---|
properties |
c.properties | 2.2 kB | 2 | 04-Oct-2006 16:25 | Sothach | |
bmp |
checker.bmp | 5.8 kB | 1 | 05-Oct-2006 10:30 | Sothach | |
jar |
colorcode-plugin-src.jar | 14.2 kB | 5 | 05-Oct-2006 13:08 | Sothach | |
jar |
colorcode-plugin.jar | 13.2 kB | 4 | 16-Jan-2007 10:51 | Sothach | |
bmp |
colorcode_eg.bmp | 30.1 kB | 1 | 29-Sep-2006 15:06 | Sothach | |
bmp |
colorcode_eg2.bmp | 398.8 kB | 1 | 29-Sep-2006 15:15 | Sothach | |
properties |
java.properties | 1.9 kB | 2 | 04-Oct-2006 16:25 | Sothach | |
dtd |
project1.dtd | 0.7 kB | 1 | 09-Oct-2011 16:43 | 71.178.151.165 | |
xml |
project1.xml | 5.4 kB | 1 | 09-Oct-2011 16:43 | 71.178.151.165 | |
properties |
sql.properties | 2.2 kB | 2 | 04-Oct-2006 16:25 | Sothach | |
properties |
vm.properties | 1.9 kB | 2 | 04-Oct-2006 16:25 | Sothach |