packages feed

highlighter2-0.2.3: src/Main.hs

import Prelude hiding (head)

import Text.Highlighter
import Text.Highlighter.Formatters.Html

import System.Environment
import Text.Blaze.Html.Renderer.String
import Text.Blaze.Html5
import Text.Blaze.Html5.Attributes
import qualified Data.ByteString as BS

main :: IO ()
main = do
    as <- getArgs

    case as of
        [fn] -> do
            case lexerFromFilename fn of
                Just l -> do
                    s <- BS.readFile fn
                    case runLexer l s of
                        Right ts ->
                            putStrLn . renderHtml . mainPage . format True $ ts

                        Left e ->
                            error (show e)
                Nothing -> error "unknown file type"

        _ -> putStrLn "usage: hspygments FILENAME"

mainPage :: Html -> Html
mainPage h =
    docTypeHtml $ do
        head $
            link ! rel "stylesheet" ! href "highlight.css"

        body h