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.
This commit is contained in:
John MacFarlane 2014-07-27 00:15:18 -07:00
parent b104db4fb4
commit 18d72a0768

View file

@ -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