git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: simplify emphasis parsing
commitd3ba2fc3d8721c3f5892c86a3a2f2a0a1e42e231 authorAlexander Krotov <ilabdsf@gmail.com> dateTue 16 Oct 2018, 15:50 (8 years ago) parentb831bd9
1 file changed+7−17
src/Text/Pandoc/Readers/Muse.hs+7−17
src/Text/Pandoc/Readers/Muse.hs+7−17
@@ -59,7 +59,7 @@ import Text.Pandoc.Definition
5959import Text.Pandoc.Error (PandocError (PandocParsecError))
6060import Text.Pandoc.Logging
6161import Text.Pandoc.Options
62−import Text.Pandoc.Parsing hiding (F, enclosed)
62+import Text.Pandoc.Parsing hiding (F)
6363import Text.Pandoc.Shared (crFilter, underlineSpan)
6464
6565-- | Read Muse from an input string and return a Pandoc document.
@@ -782,24 +782,14 @@ whitespace = try $ pure B.space <$ skipMany1 spaceChar
782782br :: PandocMonad m => MuseParser m (F Inlines)
783783br = try $ pure B.linebreak <$ string "<br>"
784784
785−emphasisBetween :: (PandocMonad m, Show a) => MuseParser m a -> MuseParser m (F Inlines)
786−emphasisBetween c = try $ enclosedInlines c c
787−
788−-- | Parses material enclosed between start and end parsers.
789−enclosed :: (Show end, Stream s m Char) => ParserT s st m t -- ^ start parser
790− -> ParserT s st m end -- ^ end parser
791− -> ParserT s st m a -- ^ content parser (to be used repeatedly)
792− -> ParserT s st m [a]
793−enclosed start end parser = try $
794− start *> notFollowedBy spaceChar *> many1Till parser end
795−
796−enclosedInlines :: (PandocMonad m, Show a, Show b)
785+emphasisBetween :: (PandocMonad m, Show a)
797786 => MuseParser m a
798− -> MuseParser m b
799787 -> MuseParser m (F Inlines)
800−enclosedInlines start end = try $ trimInlinesF . mconcat
801− <$> enclosed (atStart start) end inline
802− <* notFollowedBy (satisfy isAlphaNum)
788+emphasisBetween p = try $ trimInlinesF . mconcat
789+ <$ atStart p
790+ <* notFollowedBy spaceChar
791+ <*> many1Till inline p
792+ <* notFollowedBy alphaNum
803793
804794-- | Parse an inline tag, such as @\<em>@ and @\<strong>@.
805795inlineTag :: PandocMonad m