summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-01-24 14:16:56 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-01-24 14:16:56 +0300
commit6337539e32cb1728e4cd9e6b1cce7313aaf04f03 (patch)
treedc3ddb46a8208f7cdbcd60a47460f1baddc4f412
parent763126dae07e29435dc8b3cc1f7f20cfff823fe0 (diff)
Muse reader: fix matching of closing inline tags
-rw-r--r--src/Text/Pandoc/Readers/Muse.hs5
-rw-r--r--test/Tests/Readers/Muse.hs3
2 files changed, 6 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs
index a9c0162d2..b64d877b3 100644
--- a/src/Text/Pandoc/Readers/Muse.hs
+++ b/src/Text/Pandoc/Readers/Muse.hs
@@ -658,8 +658,9 @@ inlineTag :: PandocMonad m
=> (Inlines -> Inlines)
-> String
-> MuseParser m (F Inlines)
-inlineTag f s = try $ do
- res <- parseHtmlContent s inline
+inlineTag f tag = try $ do
+ htmlTag (~== TagOpen tag [])
+ res <- manyTill inline (void $ htmlTag (~== TagClose tag))
return $ f <$> mconcat res
strongTag :: PandocMonad m => MuseParser m (F Inlines)
diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs
index 36b08c3a2..0ceed0322 100644
--- a/test/Tests/Readers/Muse.hs
+++ b/test/Tests/Readers/Muse.hs
@@ -171,6 +171,9 @@ tests =
, "Verbatim tag after text" =: "Foo <verbatim>bar</verbatim>" =?> para "Foo bar"
+ -- <em> tag should match with the last </em> tag, not verbatim one
+ , "Nested \"</em>\" inside em tag" =: "<em>foo<verbatim></em></verbatim>bar</em>" =?> para (emph ("foo</em>bar"))
+
, testGroup "Links"
[ "Link without description" =:
"[[https://amusewiki.org/]]" =?>