diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-10-31 21:13:15 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-10-31 21:14:38 -0700 |
commit | fb6e5812bce4c71d6ac9a8946f0d69d4c08820de (patch) | |
tree | 563a5df00eba487b47f63b1c17fd9c4e0ce93a72 | |
parent | fd7e3cb18f55e05795180b782a1b61dc602b6ac4 (diff) | |
download | pandoc-fb6e5812bce4c71d6ac9a8946f0d69d4c08820de.tar.gz |
Fixed regression in parsing of HTML comments in markdown...
and other non-HTML formats (`Text.Pandoc.Readers.HTML.htmlTag`).
The parser stopped at the first `>` character, even if it wasn't
the end of the comment.
Closes #4019.
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 5 | ||||
-rw-r--r-- | test/command/4019.md | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 8d37deb26..915fa852f 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -1172,8 +1172,9 @@ htmlTag f = try $ do case next of TagComment s | "<!--" `isPrefixOf` inp -> do - char '<' - manyTill anyChar endAngle + string "<!--" + count (length s) anyChar + string "-->" stripComments <- getOption readerStripComments if stripComments then return (next, "") diff --git a/test/command/4019.md b/test/command/4019.md new file mode 100644 index 000000000..ab13f0233 --- /dev/null +++ b/test/command/4019.md @@ -0,0 +1,8 @@ +``` +pandoc --wrap=preserve +This <!-- x > 0 --> works! +This <!-- x > 0 --> fails? +^D +<p>This <!-- x > 0 --> works! +This <!-- x > 0 --> fails?</p> +``` |