I've put together a set of scripts to dynamically apply Perl syntax highlighting to code examples on web pages.
It uses Perl::Tidy to perform the highlighting, and the OpenThought Ajax library to run the requests asynchronously so that initial page load times will not be affected by the extra processing.
Files and examples are available from http://perl.jonallen.info/projects/syntaxhighlighting.
Re:Performance/Behavior vs. PPI::HTML ?
Alias on 2007-04-18T00:18:01
PPI::HTML is the most accurate of all of the syntax highlighters, by a significant margin, especially when you hit things like heredocs and complex regular expressions and so on.
The only problem is that, yes, PPI and therefore PPI::HTML are resource pigs. Parsing Perl is Hard:)
Personally, I use PPI::HTML when I can afford the CPU or I'm caching a lot, and the rest of the time I don't bother at all.Re:Performance/Behavior vs. PPI::HTML ?
renodino on 2007-04-18T15:50:31
Thnx. I kinda figured as much, but thought I'd double check. Since my effort is for a debugger, I need as precise a parse as possible, so I'll stick w/ PPI::HTML (I already have a caching mechanism in place).Re:Performance/Behavior vs. PPI::HTML ?
dami on 2007-04-19T08:01:14
> The only problem is that, yes, PPI and therefore PPI::HTML are resource pigs. Parsing Perl is Hard:) Well, perltidy is also quite big
... almost 1MB of source code! If you have an ActiveState distrib, there is also the ActiveState::ScinePlex module which is quite good. I played with both ScinePlex and PPI while designing Pod::POM::Web, and found that the results are quite similar
Re:Performance/Behavior vs. PPI::HTML ?
Alias on 2007-09-03T01:59:40
> Well, perltidy is also quite big... almost 1MB of source code!
That's mostly because it runs exceptionally evilly, from what I could tell reading it, it doesn't parse perl so much as nudge whitespace around.
And I believe it's actually a good deal faster.
And finally, PerlTidy doesn't actually do any syntax highlighting from what I understand, it just does the whitespace-shifting work, he'd have to be highlighting using something else.
Re:Performance/Behavior vs. PPI::HTML ?
Aristotle on 2007-09-03T07:11:36
PerlTidy doesn’t actually do any syntax highlighting
Yes it does. In HTML mode it will spit out coloured code.