HsColour: A Haskell source-code colouriser. ------------------------------------------- Copyright: 2003-2008, Malcolm Wallace, University of York Licence: GPL Building: hmake HsColour or ghc --make HsColour Usage: HsColour [-Ofile] [ -tty | -html | -css | -latex | -mirc ] [ -lit | -anchor | -partial ] [ -nolit | -noanchor| -nopartial ] [file.hs] The program can colourise a Haskell source file for either terminal output (option -tty), or HTML 3.2 output with font tags (option -html), or HTML 4.01 output with CSS (option -css), or LaTeX output (option -latex), or IRC chat client (option -mirc). The default is for terminal output, which uses standard ANSI screen codes for the colours. If no file argument is given, it reads standard input. Output is written to the file specified by the -O option, or by default, stdout. HsColour can add named anchors in HTML or CSS (option -anchor) to top-level definitions in the source file (functions, datatypes, classes). This enables you to make links to a specific location in the generated file with the standard "file.html#anchor" notation. If you want to embed several individually colourised fragments into a larger document, then use the -partial option , to omit the HTML DOCTYPE header, CSS stylesheet link, or LaTeX prologue. Alternatively, if you have a literate input source (e.g. .lhs file), then the -lit option passes the literate parts untouched, and colourises only the code fragments (indicated by Bird-tracks - a > symbol in the left-most column), as if each was called individually with -partial. You can configure the colours for different lexical entities by editing a configuration file called .hscolour in the current directory. (An example is included in the distribution.) The file format is as a simple Haskell value of type ColourPrefs, constructed using named fields, as follows: data ColourPrefs = ColourPrefs { keyword, keyglyph, layout, comment , conid, varid, conop, varop , string, char, number, cpp , selection, variantselection :: [Highlight] } data Colour = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White data Highlight = Normal | Bold | Dim | Underscore | Blink | ReverseVideo | Concealed | Foreground Colour | Background Colour For CSS output, it is sufficient to edit the hscolour.css file, also in the distribution.