git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: parse Text instead of String

Benchmark shows 7% improvement

commit8f841297df2aa4dcb1789843e562d4404baf1bf0 authorAlexander Krotov <ilabdsf@gmail.com> dateWed 19 Sep 2018, 16:34 (8 years ago) parent841784f
1 file changed+5−3
src/Text/Pandoc/Readers/Muse.hs+5−3
src/Text/Pandoc/Readers/Muse.hs+5−3
@@ -56,10 +56,11 @@ import Text.Pandoc.Builder (Blocks, Inlines)
5656import qualified Text.Pandoc.Builder as B
5757import Text.Pandoc.Class (PandocMonad (..))
5858import Text.Pandoc.Definition
59+import Text.Pandoc.Error (PandocError (PandocParsecError))
5960import Text.Pandoc.Logging
6061import Text.Pandoc.Options
6162import Text.Pandoc.Parsing hiding (F, enclosed)
62−import Text.Pandoc.Shared (crFilter, underlineSpan)
63+import Text.Pandoc.Shared (crFilter, underlineSpan, mapLeft)
6364
6465-- | Read Muse from an input string and return a Pandoc document.
6566readMuse :: PandocMonad m
@@ -67,7 +68,8 @@ readMuse :: PandocMonad m
6768 -> Text
6869 -> m Pandoc
6970readMuse opts s = do
70− res <- readWithM parseMuse def{ museOptions = opts } (unpack (crFilter s))
71+ let input = crFilter s
72+ res <- mapLeft (PandocParsecError $ unpack input) `liftM` runParserT parseMuse def{ museOptions = opts } "source" input
7173 case res of
7274 Left e -> throwError e
7375 Right d -> return d
@@ -97,7 +99,7 @@ instance Default MuseState where
9799 , museInPara = False
98100 }
99101
100−type MuseParser = ParserT String MuseState
102+type MuseParser = ParserT Text MuseState
101103
102104instance HasReaderOptions MuseState where
103105 extractReaderOptions = museOptions