diff options
Diffstat (limited to 'src/Text/Pandoc/Writers/AsciiDoc.hs')
-rw-r--r-- | src/Text/Pandoc/Writers/AsciiDoc.hs | 10 |
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 |