diff options
Diffstat (limited to 'haddock-api/src/Haddock/Backends')
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Hoogle.hs | 3 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/LaTeX.hs | 5 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs | 19 | 
3 files changed, 24 insertions, 3 deletions
diff --git a/haddock-api/src/Haddock/Backends/Hoogle.hs b/haddock-api/src/Haddock/Backends/Hoogle.hs index f1d8ddb2..fc71d4b5 100644 --- a/haddock-api/src/Haddock/Backends/Hoogle.hs +++ b/haddock-api/src/Haddock/Backends/Hoogle.hs @@ -328,7 +328,8 @@ markupTag dflags = Markup {    markupAName                = const $ str "",    markupProperty             = box TagPre . str,    markupExample              = box TagPre . str . unlines . map exampleToString, -  markupHeader               = \(Header l h) -> box (TagInline $ "h" ++ show l) h +  markupHeader               = \(Header l h) -> box (TagInline $ "h" ++ show l) h, +  markupTable                = \(Table _ _) -> str "TODO: table"    } diff --git a/haddock-api/src/Haddock/Backends/LaTeX.hs b/haddock-api/src/Haddock/Backends/LaTeX.hs index d79e0e6c..3ac3b405 100644 --- a/haddock-api/src/Haddock/Backends/LaTeX.hs +++ b/haddock-api/src/Haddock/Backends/LaTeX.hs @@ -1140,7 +1140,8 @@ parLatexMarkup ppId = Markup {    markupAName                = \_ _ -> empty,    markupProperty             = \p _ -> quote $ verb $ text p,    markupExample              = \e _ -> quote $ verb $ text $ unlines $ map exampleToString e, -  markupHeader               = \(Header l h) p -> header l (h p) +  markupHeader               = \(Header l h) p -> header l (h p), +  markupTable                = \(Table h b) p -> table h b p    }    where      header 1 d = text "\\section*" <> braces d @@ -1149,6 +1150,8 @@ parLatexMarkup ppId = Markup {        | l > 0 && l <= 6 = text "\\subsubsection*" <> braces d      header l _ = error $ "impossible header level in LaTeX generation: " ++ show l +    table _ _ _ = text "{TODO: Table}" +      fixString Plain s = latexFilter s      fixString Verb  s = s      fixString Mono  s = latexMonoFilter s diff --git a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs index e63667b0..2990e1e4 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs @@ -73,7 +73,8 @@ parHtmlMarkup qual insertAnchors ppId = Markup {    markupMathDisplay          = \mathjax -> toHtml ("\\[" ++ mathjax ++ "\\]"),    markupProperty             = pre . toHtml,    markupExample              = examplesToHtml, -  markupHeader               = \(Header l t) -> makeHeader l t +  markupHeader               = \(Header l t) -> makeHeader l t, +  markupTable                = \(Table h r) -> makeTable h r    }    where      makeHeader :: Int -> Html -> Html @@ -85,6 +86,22 @@ parHtmlMarkup qual insertAnchors ppId = Markup {      makeHeader 6 mkup = h6 mkup      makeHeader l _ = error $ "Somehow got a header level `" ++ show l ++ "' in DocMarkup!" +    makeTable :: [TableRow Html] -> [TableRow Html] -> Html +    makeTable hs bs = table (concatHtml (hs' ++ bs')) +      where +        hs' | null hs   = [] +            | otherwise = [thead (concatHtml (map (makeTableRow th) hs))] + +        bs' = [tbody (concatHtml (map (makeTableRow td) bs))] + +    makeTableRow :: (Html -> Html) -> TableRow Html -> Html +    makeTableRow thr (TableRow cs) = tr (concatHtml (map (makeTableCell thr) cs)) + +    makeTableCell :: (Html -> Html) -> TableCell Html -> Html +    makeTableCell thr (TableCell i j c) = thr c ! (i' ++ j') +      where +        i' = if i == 1 then [] else [ colspan i ] +        j' = if j == 1 then [] else [ rowspan j ]      examplesToHtml l = pre (concatHtml $ map exampleToHtml l) ! [theclass "screen"]  | 
