Though the
<verbatim> tags allow for code rendering, this is not enough on many cases in which we want to document, for example, a twiki page.
Also it would be nice to render code, while making comments inside the code pop-out without having to refactor it with a bunch of <verbatim>s and twiki syntax.
So why not a simple addition to the <verbatim> keyword, or even a new keyword that would allow for somewhat arbitrary code syntax, with some basic highlighting.
For example (re-using the <code> tag).
<code comments={";",bold;" //",twiki} end="####">
;this is a comment
here is some code(and, it, is, a, function) // _Don't use or it would erase your HD_
####
Would be rendered as:
;this is a comment
here is some code(and, it, is, a, function) //
Don't use or it would erase your HD
I guess it would make programmers that want to use twiki, much more willing to put some stuff in....
I see it as just a bit of perl code ;^), but it would be nice to have a standard syntax inside the core TWiki.
--
EdgarBrown - 15 Jun 2001
There are a lot of source code pretty-printing tools around - typically they render to
PostScript, bolding keywords and so on, and are highly configurable, but I'm sure that some of them render to
HTML. Why not write a plugin that renders certain text using a pretty-printer? Similar in concept to the
LaTeX plugin attached to
TWikiPluginAPI, but not requiring any code reformatting.
--
RichardDonkin - 16 Jun 2001
Any good idea for a good open-source code rendering engine?, I have checked a few but haven't found any reasonable one.
--
EdgarBrown - 26 Aug 2001
GNU
indent is probably quite good, but I haven't used it for a long time, and it may not suport all the languages you want. This is probably best done as a plugin - most likely you'd have to render each language separately, or do a plug-in parser for each language, but I'm sure
CPAN has tools to help with this. Response time might be an issue, of course, but maybe that's not a problem if the snippets are quite short.
Also, <code> is an
HTML tag, not a TWiki one, so it would be best to choose a new tag altogether to avoid conflicts IMO. It would also be good to fix
VerbatimExpandsVariables, which actually corrupts the display of code, even without pretty printing...
--
RichardDonkin - 27 Aug 2001
I'm doing my best to provide a solution for the
VerbatimExpandsVariables...
--
HansDonner - 27 Aug 2001
GNU
indent is strictly a C indenting program, that's why I'm asking, all the ones I found are either language-specific (i.e. C,
HTML, Perl, or Java), or embeded in the source code of other programs (i.e. vim). I would not like to have a lengthy configuration file, let alone a different chunk of perl code for each language, but it seems the way that all sugestions are headed.
The
CPAN modules are no different.
--
EdgarBrown - 27 Aug 2001
As long as we give the code renderers a common interface, it is fine that the implementations are different. Different languages necessarily need to be parsed differently; though the closer that two languages are in structure the more likely they are to be able to share a parser.
It might be worth looking for an editor written in perl; if one exists and it has language syntax highlighting it is likely that that module could be "lifted" and made into a TWiki plug-in.
--
MartinCleaver - 27 Aug 2001