aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/Readers/Muse.hs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs
index 7f0bd374f..024ede456 100644
--- a/src/Text/Pandoc/Readers/Muse.hs
+++ b/src/Text/Pandoc/Readers/Muse.hs
@@ -59,7 +59,6 @@ import Text.Pandoc.Definition
import Text.Pandoc.Logging
import Text.Pandoc.Options
import Text.Pandoc.Parsing hiding (F, enclosed)
-import Text.Pandoc.Readers.HTML (htmlTag)
import Text.Pandoc.Shared (crFilter, underlineSpan)
-- | Read Muse from an input string and return a Pandoc document.
@@ -180,12 +179,21 @@ someUntil p end = first <$> ((:) <$> p) <*> manyUntil p end
-- ** HTML parsers
openTag :: PandocMonad m => String -> MuseParser m [(String, String)]
-openTag tag = do
- (TagOpen _ attr, _) <- htmlTag(~== TagOpen tag [])
- return $ attr
+openTag tag = try $ do
+ char '<'
+ string tag
+ attrs <- manyTill attr (char '>')
+ return attrs
+ where
+ attr = try $ do
+ many1 spaceChar
+ key <- many1 (noneOf "=\n")
+ string "=\""
+ value <- manyTill (noneOf "\"") (char '"')
+ return (key, value)
closeTag :: PandocMonad m => String -> MuseParser m ()
-closeTag tag = void $ htmlTag (~== TagClose tag)
+closeTag tag = try $ string "</" >> string tag >> void (char '>')
-- | Parse HTML tag, returning its attributes and literal contents.
htmlElement :: PandocMonad m