module MyDoc2HTML(html,htmlblock) where import MyDoc import Text.PrettyPrint hiding (Style) htmlblock = html { ppFinalize = id } html = Style { ppHeading = heading , ppDecStr = txt , ppCode = code , ppList = list , ppItem = item , ppParagraph = par , ppText = id , ppFinalize = fin } tag t = char '<' <> text t <> char '>' endtag t = text "</" <> text t <> char '>' tagB t d = tag t $$ d $$ endtag t tagL t d = tag t <> d <> endtag t heading (n,t) = tagL ('H' : show (n + 1)) (text t) txt (x,t) = f (text t) where f = case x of Plain -> id Emph -> tagL "I" Code -> tagL "TT" Math -> tagL "I" list = tagB "UL" . vcat code = tagB "PRE" . vcat . map text item = tagL "LI" par = tagB "P" fin = tagB "HTML" . tagB "BODY"