From 1c71bd1ff549737663ddf84e33276ddf8e926b39 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 23 Aug 2019 09:16:31 -0700 Subject: [PATCH] Ensure proper nesting when we have long ordered list markers. Closes #5705. --- src/Text/Pandoc/Writers/Markdown.hs | 7 +++++-- test/command/5705.md | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 test/command/5705.md diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 23d0341da..7f30edf1f 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -768,15 +768,18 @@ orderedListItemToMarkdown :: PandocMonad m orderedListItemToMarkdown opts marker bs = do let exts = writerExtensions opts contents <- blockListToMarkdown opts $ taskListItemToAscii exts bs - let sps = case length marker - writerTabStop opts of + let sps = case writerTabStop opts - length marker of n | n > 0 -> text $ replicate n ' ' _ -> text " " + let ind = if isEnabled Ext_four_space_rule opts + then writerTabStop opts + else max (writerTabStop opts) (length marker + 1) let start = text marker <> sps -- remove trailing blank line if item ends with a tight list let contents' = if itemEndsWithTightList bs then chomp contents <> cr else contents - return $ hang (writerTabStop opts) start $ contents' <> cr + return $ hang ind start $ contents' <> cr -- | Convert definition list item (label, list of blocks) to markdown. definitionListItemToMarkdown :: PandocMonad m diff --git a/test/command/5705.md b/test/command/5705.md new file mode 100644 index 000000000..589910669 --- /dev/null +++ b/test/command/5705.md @@ -0,0 +1,11 @@ +``` +% pandoc -f native -t markdown +[OrderedList (8,UpperRoman,Period) + [[Plain [Str "Blah"] + ,BulletList + [[Plain [Str "Blah"]]]]]] +^D +VIII. Blah + - Blah +``` +