This blog engine makes available plugin(s) for the syntax highlighting, but I can’t find one that match I want. Colorize at least Powerbuilder and Perl.
The first I found (syntaxHl) handled them on the server-side, but some Perl expression was badly broken. Then I see that search.cpan.org was using an sh system that allows to dynamically switch colorization style, on the client-side (javascript). Taking a look at that system (http://shjs.sourceforge.net/) and I was surprised of the simplicity of the language definition.
So I have decided to use it on my blog. Hopefully, Dotclear engine provides a plugin API, and this was one of the reasons I have choose it.
Take some days to build an alpha version, then I see that the Perl syntax that was broken with the previous plugin was still wrongly colorized!
Here is a screenshot :
You can see the 3thd regular expression is colorized to the end of the split args, I suspect that the $/ variable was interpolated into the regex in the case another / close the expression before the end of the line. I may take time to investigate
Today, it is colorized as : (fixeme)
while(<PROJECT>){
if($_=~/^appname "([^"]+)";$/gi){ $appName = $1; }
if($_=~/applib "([^"]+)";$/gi){ $appLib = $1; }
if($_=~/LibList "([^"]+)";$/gi){ @libList = split(/;/,$1); }
if($_ eq "/LibList ('[^']+)';$/gi"){ @libList = split(/;/,$1); }
if($_=~/LibList \/!([^!]+)!;$/gi){ @libList = split(/;/,$1); }
if($_=~/LibList \/"([^"]+)";$/gi){ @libList = split(/;/,$1); }
if(qr/this is \/ a test /g or qr/blabla/){ return "test - " x 10 };
if(m/this is \/ a test /g or m/blabla/){ return "test - " x 10 };
if(s/this is \/ a / replace test /g or s/bla/bla/){ return "test - " x 10 };
}
For those who are interested on that SH system with DotClear 2, you can find my alpha plugin attached to this post.