]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/syntax_highlighting.mdwn
update for rename of recentchanges.mdwn to json.tl.ph.mdwn
[git.ikiwiki.info.git] / doc / todo / syntax_highlighting.mdwn
index f269aeb7c572dabb6035c27fe3052c940deab2b2..dd7c8a117187394bc2a4fd99bf779c8754e75b28 100644 (file)
@@ -1,6 +1,11 @@
 There's been a lot of work on contrib syntax highlighting plugins. One should be
 picked and added to ikiwiki core.
 
+> I'm calling this [[done]] since I added the [[plugins/highlight]]
+> plugin. There are some unresolved issues touched on here,
+> but they either have the own other bug reports, or are documented
+> as semi-features in the docs to the plugin. --[[Joey]] 
+
 We want to support both converting whole source files into wiki
 pages, as well as doing syntax highlighting as a preprocessor directive 
 (which is either passed the text, or reads it from a file). But,
@@ -28,13 +33,19 @@ things easier for the user.
   also uses source-highlight, and operates on whole source files.
   Updated to work with the fix for [[bugs/multiple_pages_with_same_name]].  Untested with files with no extension, e.g. `Makefile`.
 * [[users/jasonblevins]]'s code plugin uses source-highlight, and supports both
-  while file and directive use.
+  whole file and directive use.
 
 * [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=HEAD) is a wrapper for the the perl module [[!cpan Syntax::Highlight::Engine::Simple]].  This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external).
 On the other hand, there are not many predefined languages yet.  Defining language syntaxes is about as much 
 work as source-highlight, but in perl.  I plan to package the base module for debian. Perhaps after the author 
 releases the 5 or 6 language definitions he has running on his web site, it might be suitable for inclusion in ikiwiki. [[DavidBremner]]
 
+* [[plugins/highlight]] uses [highlight](http://www.andre-simon.de) via
+  its swig bindings. It optionally supports whole files, but also
+  integrates with the format directive to allow formatting of *any* of
+  highlight's supported formats. (For whole files, it uses either
+  keepextension or noextension, as appropriate for the type of file.)
+
 ## General problems / requirements
 
 * Using non-perl syntax highlighting backends is slower. All things equal,
@@ -48,7 +59,13 @@ releases the 5 or 6 language definitions he has running on his web site, it migh
 
   By comparison, source-highlight can do about 5000 lines of C code per
   second... And launching the program 100 times on an empty file takes about
-  5 seconds.
+  5 seconds, which isn't bad. And, it has a C++ library, which it
+  seems likely perl bindings could be written for, to eliminate 
+  even that overhead.
+  > [highlight](http://www.andre-simon.de) has similar features to source-highlight, and swig bindings
+  > that should make it trivial in principle to call from perl.  I like highlight a bit better because 
+  > it has a pass-through feature that I find very useful.  My memory is unfortunately a bit fuzzy as to how
+  > well the swig bindings work. [[DavidBremner]]
 
 * Engines that already support a wide variety of file types are of
   course preferred. If the engine doesn't support a particular type
@@ -98,20 +115,4 @@ releases the 5 or 6 language definitions he has running on his web site, it migh
 
   Perhaps the thing to do here is to use the new `longname` parameter to
   the format hook, to give them all names that will group together at or
-  near the end of the list. Ie: "Syntax: perl", "Syntax: C", etc.
-
-## format directive and comments
-
-Hmm, the [[ikiwiki/directive/format]] directive would also allow comments
-inside source files to have mdwn embedded in them, without making the use
-of mdwn a special case, or needing to postprocess the syntax highlighter
-output to find comments.
-
-       /* \[[!format mdwn """
-
-       This is a comment in my C file. You can use mdwn in here.
-
-       """]] */
-
-Note that this assumes that directives are expanded in source files,
-which has its own set of problems.
+  near the end of the list. Ie: "Syntax: perl", "Source code: c", etc.