|  |  |  | highlight | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Highlight is a generic syntax highlighter. highlight currently | 
					
						
							|  |  |  | supports outputting to HTML. highlight is written in CHICKEN Scheme | 
					
						
							|  |  |  | and supports all the languages the 'colorize' egg supports. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Installation | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | > wget  http://code.thintz.com/highlight/snapshot/highlight-master.tar.gz | 
					
						
							|  |  |  | > tar xf highlight-master.tar.gz | 
					
						
							|  |  |  | > cd highlight-master | 
					
						
							|  |  |  | > sudo chicken-install | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Example | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | > cat pigs-fly.scm | 
					
						
							|  |  |  | (display "Do pigs fly? ") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | (if (equal? (read-line) "yes") | 
					
						
							|  |  |  |     (display "Pigs fly!") | 
					
						
							|  |  |  |     (display "Sorry, pigs aren't flying today.")) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | > highlight pigs-fly.scm < pigs-fly.scm | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |  ... | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <span class="code-highlight"> | 
					
						
							|  |  |  |   <span class="paren1"> | 
					
						
							|  |  |  |     ( | 
					
						
							|  |  |  |     <span class="default">display | 
					
						
							|  |  |  |       <span class="string">"Do pigs fly? "</span> | 
					
						
							|  |  |  |     </span> | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |   </span> | 
					
						
							|  |  |  |   ... | 
					
						
							|  |  |  | </span> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Usage | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | highlight takes one argument, the filename. highlight then reads from | 
					
						
							|  |  |  | standard input until end-of-file and writes to standard output. | 
					
						
							|  |  |  | highlight attempts to guess at the language to use for the | 
					
						
							|  |  |  | highlighting but if it fails writes plain HTML without any | 
					
						
							|  |  |  | highlighting. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Guessing the Language | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | highlight attempts to guess what language to use for the syntax | 
					
						
							|  |  |  | highlighting based on a number of criteria. highlight first checks for | 
					
						
							|  |  |  | an emacs file local variable that specifies the major mode to use and | 
					
						
							|  |  |  | if it finds one maps that to the language to use for highlighting. | 
					
						
							|  |  |  | Note that it currently only checks the first line of the input. It | 
					
						
							|  |  |  | supports both the single variable form and extended form. So both '-*- | 
					
						
							|  |  |  | scheme -*-' and '-*- mode: scheme -*-' work. If it can't find an emacs | 
					
						
							|  |  |  | file local variable for the major mode it instead guesses based on the | 
					
						
							|  |  |  | file extension of the filename provided as its first argument. If it | 
					
						
							|  |  |  | still can't figure out what language it uses it will not syntax | 
					
						
							|  |  |  | highlight and instead output plain HTML. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Supported Languages | 
					
						
							|  |  |  | ============================ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The supported languages depends solely on the languages the 'colorize' | 
					
						
							|  |  |  | egg supports. That list can be found here | 
					
						
							|  |  |  | <http://wiki.call-cc.org/eggref/4/colorize> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | As of the latest update of the highlight library these languages are | 
					
						
							|  |  |  | supported: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   * Basic Lisp | 
					
						
							|  |  |  |   * Scheme | 
					
						
							|  |  |  |   * Emacs Lisp | 
					
						
							|  |  |  |   * Lisp | 
					
						
							|  |  |  |   * C | 
					
						
							|  |  |  |   * C++ | 
					
						
							|  |  |  |   * Java | 
					
						
							|  |  |  |   * C | 
					
						
							|  |  |  |   * Erlang | 
					
						
							|  |  |  |   * Python | 
					
						
							|  |  |  |   * Ruby | 
					
						
							|  |  |  |   * Haskell | 
					
						
							|  |  |  |   * Unified Context Diff | 
					
						
							|  |  |  |   * Cascading Style Sheets (CSS) | 
					
						
							|  |  |  |   * Extensible Markup Language (XML) | 
					
						
							|  |  |  |   * (Extensible) HyperText Markup Language ((X)HTML) |