git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: get rid of HTML parser dependency
commit1b8c22de1df43a88c13f6d0d0c7c08f9bf84c7a5 authorAlexander Krotov <ilabdsf@gmail.com> dateWed 19 Sep 2018, 15:02 (8 years ago) parent6be2e43
1 file changed+13−5
src/Text/Pandoc/Readers/Muse.hs+13−5
src/Text/Pandoc/Readers/Muse.hs+13−5
@@ -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