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)