-- | This is a library with colourises Haskell code.
-- It currently has three output formats:
--
-- * ANSI terminal codes
--
-- * LaTeX macros
--
-- * HTML with font tags
--
-- * HTML with CSS.
--
module Language.Haskell.HsColour (Output(..), ColourPrefs(..),
hscolour) where
import Language.Haskell.HsColour.Colourise (ColourPrefs(..))
import qualified Language.Haskell.HsColour.TTY as TTY
import qualified Language.Haskell.HsColour.HTML as HTML
import qualified Language.Haskell.HsColour.CSS as CSS
import qualified Language.Haskell.HsColour.LaTeX as LaTeX
-- | The supported output formats.
data Output = TTY -- ^ ANSI terminal codes
| LaTeX -- ^ TeX macros
| HTML -- ^ HTML with font tags
| CSS -- ^ HTML with CSS.
-- | Colourise Haskell source code with the give output format.
hscolour :: Output -- ^ Output format.
-> ColourPrefs -- ^ Colour preferences for formats that support it.
-> Bool -- ^ Whether to include anchors.
-> String -- ^ Haskell source code.
-> String -- ^ Coloured Haskell source code.
hscolour TTY pref _ = TTY.hscolour pref
hscolour LaTeX pref _ = LaTeX.hscolour pref
hscolour HTML pref anchor = HTML.hscolour pref anchor
hscolour CSS _ anchor = CSS.hscolour anchor