hakyll-std/TableOfContents: build ordered list in markupHeaders directly
This commit is contained in:
parent
00d1944a27
commit
91fab7dd48
@ -61,20 +61,20 @@ markupLink (headerId, _, headerProperties) headerText
|
|||||||
markupHeader :: Tree Block -> H.Html
|
markupHeader :: Tree Block -> H.Html
|
||||||
markupHeader n@(Node (Header _ hAttr hText) headers)
|
markupHeader n@(Node (Header _ hAttr hText) headers)
|
||||||
| headers == [] = H.li $ link
|
| headers == [] = H.li $ link
|
||||||
| otherwise = H.li $ link <> (H.ol $ markupHeaders headers)
|
| otherwise = H.li $ link <> markupHeaders headers
|
||||||
where link = fromRight mempty . runPure . writeHtml5 def $ Pandoc nullMeta [Plain [markupLink hAttr hText]]
|
where link = fromRight mempty . runPure . writeHtml5 def $ Pandoc nullMeta [Plain [markupLink hAttr hText]]
|
||||||
markupHeader n = error $ "'markupHeader' should only be passed a 'Node $ Header'\n"
|
markupHeader n = error $ "'markupHeader' should only be passed a 'Node $ Header'\n"
|
||||||
++ " saw: " ++ show n
|
++ " saw: " ++ show n
|
||||||
|
|
||||||
markupHeaders :: Forest Block -> H.Html
|
markupHeaders :: Forest Block -> H.Html
|
||||||
markupHeaders = mconcat . map markupHeader
|
markupHeaders = H.ol . mconcat . map markupHeader
|
||||||
|
|
||||||
createTable :: TOCAlignment -> Forest Block -> Block
|
createTable :: TOCAlignment -> Forest Block -> Block
|
||||||
createTable _ [] = Null
|
createTable _ [] = Null
|
||||||
createTable alignment headers
|
createTable alignment headers
|
||||||
= render $ (H.nav ! (A.id "toc" <> alignmentAttr)) $ do
|
= render $ (H.nav ! (A.id "toc" <> alignmentAttr)) $ do
|
||||||
H.p "Contents"
|
H.p "Contents"
|
||||||
H.ol $ markupHeaders headers
|
markupHeaders headers
|
||||||
where render = (RawBlock "html") . renderHtml
|
where render = (RawBlock "html") . renderHtml
|
||||||
alignmentAttr = case alignment of
|
alignmentAttr = case alignment of
|
||||||
TOCRight -> A.class_ "right-toc"
|
TOCRight -> A.class_ "right-toc"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user