@@ -59,7 +59,6 @@ import Text.Pandoc.Definition
5959import Text.Pandoc.Logging
6060import Text.Pandoc.Options
6161import Text.Pandoc.Parsing hiding (F, enclosed)
62−import Text.Pandoc.Readers.HTML (htmlTag)
6362import Text.Pandoc.Shared (crFilter, underlineSpan)
6463
6564-- | Read Muse from an input string and return a Pandoc document.
@@ -180,12 +179,21 @@ someUntil p end = first <$> ((:) <$> p) <*> manyUntil p end
180179-- ** HTML parsers
181180
182181openTag :: PandocMonad m => String -> MuseParser m [(String, String)]
183−openTag tag = do
184− (TagOpen _ attr, _) <- htmlTag(~== TagOpen tag [])
185− return $ attr
182+openTag tag = try $ do
183+ char '<'
184+ string tag
185+ attrs <- manyTill attr (char '>')
186+ return attrs
187+ where
188+ attr = try $ do
189+ many1 spaceChar
190+ key <- many1 (noneOf "=\n")
191+ string "=\""
192+ value <- manyTill (noneOf "\"") (char '"')
193+ return (key, value)
186194
187195closeTag :: PandocMonad m => String -> MuseParser m ()
188−closeTag tag = void $ htmlTag (~== TagClose tag)
196+closeTag tag = try $ string "</" >> string tag >> void (char '>')
189197
190198-- | Parse HTML tag, returning its attributes and literal contents.
191199htmlElement :: PandocMonad m