The first I found (syntaxHl) handled them on server side, but some perl expression was badly broken. Then I see that was using an sh system that allow to dynamically switch colorization style, on the client side (javascript). Taking a look at that system ( and I was surprised of the simplicity of the language definition.

So I have decided to use it on my blog. Hopefully dotclear engine provide 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 :

SHJS broken on perl regexp

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)

  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.