@@ -34,7 +34,8 @@ htmlMarkup modResolv = Markup {
34
34
markupMathDisplay = \ mathjax -> toHtml (" \\ [" ++ mathjax ++ " \\ ]" ),
35
35
markupProperty = pre . toHtml,
36
36
markupExample = examplesToHtml,
37
- markupHeader = \ (Header l t) -> makeHeader l t
37
+ markupHeader = \ (Header l t) -> makeHeader l t,
38
+ markupTable = \ (Table h r) -> makeTable h r
38
39
}
39
40
where
40
41
makeHeader :: Int -> Html -> Html
@@ -59,6 +60,24 @@ htmlMarkup modResolv = Markup {
59
60
let lnk = anchor ! [href modUrl] << s
60
61
pure (thespan ! [theclass " module" ] << lnk)
61
62
63
+ makeTable :: [TableRow Html ] -> [TableRow Html ] -> Html
64
+ makeTable hs bs = table (concatHtml (hs' ++ bs'))
65
+ where
66
+ hs' | null hs = []
67
+ | otherwise = [thead (concatHtml (map (makeTableRow th) hs))]
68
+
69
+ bs' = [tbody (concatHtml (map (makeTableRow td) bs))]
70
+
71
+ makeTableRow :: (Html -> Html ) -> TableRow Html -> Html
72
+ makeTableRow thr (TableRow cs) = tr (concatHtml (map (makeTableCell thr) cs))
73
+
74
+ makeTableCell :: (Html -> Html ) -> TableCell Html -> Html
75
+ makeTableCell thr (TableCell i j c) = thr c ! (i' ++ j')
76
+ where
77
+ i' = if i == 1 then [] else [ colspan i ]
78
+ j' = if j == 1 then [] else [ rowspan j ]
79
+
80
+
62
81
namedAnchor :: String -> Html -> Html
63
82
namedAnchor n = anchor ! [name (escapeStr n)]
64
83
0 commit comments