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 ( display "Do pigs fly? " ) ... 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 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) Contributing, Bug Reports, Feature Requests, General Questions ============================ For any of the above send an email to Thomas Hintz at . License ============================ highlight is released under the unlicense license. See the LICENSE file for the complete license and for more info. In summary, you can do whatever you want with highlight including re-licensing.