{-# LANGUAGE OverloadedStrings #-}
module HTML (compileToHTML) where
import Data.Maybe (fromMaybe)
import qualified Data.Text as T
import IR
tshow :: (Show s) => s -> T.Text
tshow = T.pack . show
compileToHTML :: Document -> T.Text
compileToHTML (Doc elements) = T.concat $ map elementToHTML elements
elementToHTML :: Element -> T.Text
elementToHTML (Heading (H {level, text})) = T.concat ["
", code, ""] where language = fromMaybe "" m_language elementToHTML (BlockQuote (Q elems)) = T.concat ["", serializeInlineToHTML elems, ""] elementToHTML (List (L {list_type = Ordered, items})) = T.concat ["", generateLiElems items, "
"] elementToHTML (List (L {list_type = Unordered, items})) = T.concat ["
", serializeInlineToHTML snippets, "
"] elementToHTML HorizontalRule = "", code, "", serializeInlineToHTML remaining]
serializeInlineToHTML (Link {linkText, url, title} : remaining) = T.concat [" T.concat ["title=\"", t, "\""]) title, "\">", serializeInlineToHTML linkText, "", serializeInlineToHTML remaining]
serializeInlineToHTML (Image {altText, url, title} : remaining) = T.concat ["