From a07d955d6f96e78ade3e09c150ce580fb6e6f3a7 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Thu, 16 Sep 2021 20:42:18 -0700 Subject: [PATCH] Fix code blocks using `--preserve-tabs`. Previously they did not behave as the equivalent input with spaces would. Closes #7573. --- src/Text/Pandoc/Readers/Markdown.hs | 8 +++++++- test/command/7573.md | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/command/7573.md diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 45594e0fa..917eef287 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1124,7 +1124,13 @@ rawHtmlBlocks = do let selfClosing = "/>" `T.isSuffixOf` raw -- we don't want '<td> text' to be a code block: skipMany spaceChar - indentlevel <- (blankline >> length <$> many (char ' ')) <|> return 0 + tabStop <- getOption readerTabStop + indentlevel <- option 0 $ + do blankline + foldr (+) 0 <$> + many ( (1 <$ char ' ') + <|> + (tabStop <$ char '\t') ) -- try to find closing tag -- we set stateInHtmlBlock so that closing tags that can be either block or -- inline will not be parsed as inline tags diff --git a/test/command/7573.md b/test/command/7573.md new file mode 100644 index 000000000..d6529cde6 --- /dev/null +++ b/test/command/7573.md @@ -0,0 +1,11 @@ +``` +% pandoc --preserve-tabs +<ol> + <li>one +</ol> +^D +<ol> +<li> +one +</ol> +```