diff --git a/README b/README index 6dc0363..76afc00 100644 --- a/README +++ b/README @@ -1,4 +1,64 @@ -Highlight -========= +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. -Highlight is a generic syntax highlighter outputting HTML.