module Network.Salvia.Advanced.HsColour ( hHighlightHaskell , hHsColour , hHsColourCustomStyle , defaultStyleSheet ) where import Language.Haskell.HsColour.CSS import Network.Salvia.Handlers.ExtensionDispatcher import Network.Salvia.Handlers.File import Network.Protocol.Http (setContentType, utf8) import Network.Salvia.Httpd hHighlightHaskell :: Handler () -> Handler () -> Handler () hHighlightHaskell highlighter = hExtensionRouter [ (Just "hs", highlighter) , (Just "lhs", highlighter) , (Just "ag", highlighter) ] hHsColour :: Handler () hHsColour = hHsColourCustomStyle (Left defaultStyleSheet) -- Left means direct inclusion of stylesheet, right means link to external -- stylesheet. hHsColourCustomStyle :: Either String String -> Handler () hHsColourCustomStyle style = do sendStr (either id makeStyleLink style) hFileFilter (hscolour False True "") modResponse $ setContentType ("text/html") (Just utf8) makeStyleLink :: String -> String makeStyleLink css = "" defaultStyleSheet :: String defaultStyleSheet = filter (/=' ') $ concat [ "" , "" ]