diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2014-07-27 00:15:18 -0700 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2014-07-27 00:15:18 -0700 |
commit | 18d72a07682519d8b7b3cacfc7d98e3d27afd03a (patch) | |
tree | ed91ae0ab2b9ca134037313b13d015ac29ec6ba4 /src/Text/Pandoc/Writers | |
parent | b104db4fb4b738fd135e5e782424c25342b30d22 (diff) | |
download | pandoc-18d72a07682519d8b7b3cacfc7d98e3d27afd03a.tar.gz |
Markdown writer: Update definition lists.
They now behave like the new reader does. The old behavior
can be activated with the `compact_definition_lists` extension.
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 37f148c0a..a055af4aa 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -610,8 +610,19 @@ definitionListItemToMarkdown opts (label, defs) = do let sps = case writerTabStop opts - 3 of n | n > 0 -> text $ replicate n ' ' _ -> text " " - let contents = vcat $ map (\d -> hang tabStop (leader <> sps) $ vcat d <> cr) defs' - return $ nowrap labelText <> cr <> contents <> cr + if isEnabled Ext_compact_definition_lists opts + then do + let contents = vcat $ map (\d -> hang tabStop (leader <> sps) + $ vcat d <> cr) defs' + return $ nowrap labelText <> cr <> contents <> cr + else do + let contents = vcat $ map (\d -> hang tabStop (leader <> sps) + $ vcat d <> cr) defs' + let isTight = case defs of + ((Plain _ : _): _) -> True + _ -> False + return $ blankline <> nowrap labelText <> + (if isTight then cr else blankline) <> contents <> blankline else do return $ nowrap labelText <> text " " <> cr <> vsep (map vsep defs') <> blankline |