git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: do not allow closing tags with EOF (#3863)
c7d4fd8Alexander
src/Text/Pandoc/Readers/Muse.hs+2−3
@@ -113,11 +113,10 @@ nested p = do
113htmlElement :: PandocMonad m => String -> MuseParser m (Attr, String)
113htmlElement :: PandocMonad m => String -> MuseParser m (Attr, String)
114htmlElement tag = try $ do
114htmlElement tag = try $ do
115 (TagOpen _ attr, _) <- htmlTag (~== TagOpen tag [])
115 (TagOpen _ attr, _) <- htmlTag (~== TagOpen tag [])
116− content <- manyTill anyChar (endtag <|> endofinput)
116+ content <- manyTill anyChar endtag
117 return (htmlAttrToPandoc attr, content)
117 return (htmlAttrToPandoc attr, content)
118 where
118 where
119− endtag = void $ htmlTag (~== TagClose tag)
119+ endtag = void $ htmlTag (~== TagClose tag)
120− endofinput = lookAhead $ try $ skipMany blankline >> skipSpaces >> eof
121
120
122htmlAttrToPandoc :: [Attribute String] -> Attr
121htmlAttrToPandoc :: [Attribute String] -> Attr
123htmlAttrToPandoc attrs = (ident, classes, keyvals)
122htmlAttrToPandoc attrs = (ident, classes, keyvals)
test/Tests/Readers/Muse.hs+6
@@ -54,6 +54,12 @@ tests =
54
54
55 , "Strikeout tag" =: "<del>Strikeout</del>" =?> para (strikeout "Strikeout")
55 , "Strikeout tag" =: "<del>Strikeout</del>" =?> para (strikeout "Strikeout")
56
56
57+ , "Opening inline tags" =: "foo <em> bar <strong>baz" =?> para "foo <em> bar <strong>baz"
58+
59+ , "Closing inline tags" =: "foo </em> bar </strong>baz" =?> para "foo </em> bar </strong>baz"
60+
61+ , "Tag soup" =: "foo <em> bar </strong>baz" =?> para "foo <em> bar </strong>baz"
62+
57 , "Linebreak" =: "Line <br> break" =?> para ("Line" <> linebreak <> "break")
63 , "Linebreak" =: "Line <br> break" =?> para ("Line" <> linebreak <> "break")
58
64
59 , "Code" =: "=foo(bar)=" =?> para (code "foo(bar)")
65 , "Code" =: "=foo(bar)=" =?> para (code "foo(bar)")