Daizu::Plugin::SyntaxHighlight - a plugin for syntax-highlighting code samples in HTML pages
This plugin filters XHTML content expanding any daizu::syntax-highlight elements by passing their contents through the Text::VimColor module, which is required for it to work. The source of your articles can contain markup like this:
daizu::syntax-highlight
<daizu:syntax-highlight filetype="perl"> # A piece of Perl code which will be syntax highlighted. my $foo = 'bar'; </daizu:syntax-highlight>
The daizu prefix should be bound to the Daizu HTML extension namespace (which is done automatically for the content of XHTML articles). The output will be an HTML pre element, containing text and span elements with appropriate classes.
daizu
pre
span
Extra whitespace at the start or end of the content is trimmed off.
If you want to highlight a larger amount of code, put it in a separate file and use XInclude to insert it into the syntax-highlight element. For example:
syntax-highlight
<daizu:syntax-highlight filetype="sql"> <xi:include href="database-schema.sql" parse="text"/> </daizu:syntax-highlight>
Note that the xi:include element isn't indented, because that might leave an extra bit of indentation on the first line.
xi:include
You can also use a different element instead of pre. For example to highlight a Perl regular expression which appears in a paragraph, you can instead use a code element:
code
<daizu:syntax-highlight filetype="perl" element="code" >/^_index\./</daizu:syntax-highlight>
To turn on this plugin, include the following in your Daizu CMS configuration file:
<plugin class="Daizu::Plugin::SyntaxHighlight" />
All files which have a daizu:type property of 'article' will then be filtered by this module.
daizu:type
For the highlighting to be presented properly you will have to provide some rules in your CSS stylesheet. The following works well if your pre blocks will have a white background:
span.syn-comment { color: #0000FF } span.syn-constant { color: #FF00FF } span.syn-identifier { color: #008B8B } span.syn-statement { color: #A52A2A ; font-weight: bold } span.syn-preproc { color: #A020F0 } span.syn-type { color: #2E8B57 ; font-weight: bold } span.syn-special { color: #6A5ACD } span.syn-underlined { color: #000000 ; text-decoration: underline } span.syn-error { color: #FFFFFF ; background: #FF0000 none } span.syn-todo { color: #0000FF ; background: #FFFF00 none }
The Daizu CMS default stylesheet has these rules included already.
Called by Daizu CMS when the plugin is registered. It registers the do_syntax_highlighting() method as an HTML DOM filter.
The configuration is currently ignored.
Does the actual filtering in-place on $doc and returns it. Currently $cms is ignored.
$doc
$cms
This software is copyright 2006 Geoff Richards <geoff@laxan.com>. For licensing information see this page:
http://www.daizucms.org/license/
To install Daizu, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Daizu
CPAN shell
perl -MCPAN -e shell install Daizu
For more information on module installation, please visit the detailed CPAN module installation guide.