git.iko.soy/typeable/pandoc
on master help sign in
Markdown parser performance improvement.
3ffd724John MacFarlane
src/Text/Pandoc/Readers/Markdown.hs+3
@@ -320,6 +320,9 @@ atxClosing = try $ skipMany (char '#') >> blanklines
320
320
321setextHeader :: GenParser Char ParserState Block
321setextHeader :: GenParser Char ParserState Block
322setextHeader = try $ do
322setextHeader = try $ do
323+ -- This lookahead prevents us from wasting time parsing Inlines
324+ -- unless necessary -- it gives a significant performance boost.
325+ lookAhead $ anyLine >> many1 (oneOf setextHChars) >> blankline
323 text <- many1Till inline newline
326 text <- many1Till inline newline
324 underlineChar <- oneOf setextHChars
327 underlineChar <- oneOf setextHChars
325 many (char underlineChar)
328 many (char underlineChar)