aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/AsciiDoc.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Writers/AsciiDoc.hs')
-rw-r--r--src/Text/Pandoc/Writers/AsciiDoc.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/AsciiDoc.hs b/src/Text/Pandoc/Writers/AsciiDoc.hs
index e17dad47f..3287779c7 100644
--- a/src/Text/Pandoc/Writers/AsciiDoc.hs
+++ b/src/Text/Pandoc/Writers/AsciiDoc.hs
@@ -90,7 +90,7 @@ pandocToAsciiDoc opts (Pandoc meta blocks) = do
(fmap render' . blockListToAsciiDoc opts)
(fmap render' . inlineListToAsciiDoc opts)
meta
- body <- blockListToAsciiDoc opts blocks
+ body <- vcat <$> mapM (elementToAsciiDoc 1 opts) (hierarchicalize blocks)
let main = render colwidth body
let context = defField "body" main
$ defField "toc"
@@ -101,6 +101,14 @@ pandocToAsciiDoc opts (Pandoc meta blocks) = do
Nothing -> return main
Just tpl -> renderTemplate' tpl context
+elementToAsciiDoc :: PandocMonad m
+ => Int -> WriterOptions -> Element -> ADW m Doc
+elementToAsciiDoc _ opts (Blk b) = blockToAsciiDoc opts b
+elementToAsciiDoc nestlevel opts (Sec _lvl _num attr label children) = do
+ hdr <- blockToAsciiDoc opts (Header nestlevel attr label)
+ rest <- vcat <$> mapM (elementToAsciiDoc (nestlevel + 1) opts) children
+ return $ hdr $$ rest
+
-- | Escape special characters for AsciiDoc.
escapeString :: String -> String
escapeString = escapeStringUsing escs