git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Avoid parsing raw tex unless \ + letter seen.

This seems to help with the performance problem, #4216.

commita274e15f0d236140fec7e4554117fcb55a219566 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 30 Dec 2017, 23:33 (9 years ago) parentd6d4388
1 file changed+2−1
src/Text/Pandoc/Readers/Markdown.hs+2−1
src/Text/Pandoc/Readers/Markdown.hs+2−1
@@ -1120,6 +1120,7 @@ rawVerbatimBlock = htmlInBalanced isVerbTag
11201120rawTeXBlock :: PandocMonad m => MarkdownParser m (F Blocks)
11211121rawTeXBlock = do
11221122 guardEnabled Ext_raw_tex
1123+ lookAhead $ try $ char '\\' >> letter
11231124 result <- (B.rawBlock "context" . trim . concat <$>
11241125 many1 ((++) <$> (rawConTeXtEnvironment <|> conTeXtCommand)
11251126 <*> (blanklines <|> many spaceChar)))
@@ -1906,7 +1907,7 @@ inlineNote = try $ do
19061907rawLaTeXInline' :: PandocMonad m => MarkdownParser m (F Inlines)
19071908rawLaTeXInline' = try $ do
19081909 guardEnabled Ext_raw_tex
1909− lookAhead (char '\\')
1910+ lookAhead $ try $ char '\\' >> letter
19101911 notFollowedBy' rawConTeXtEnvironment
19111912 s <- rawLaTeXInline
19121913 return $ return $ B.rawInline "tex" s -- "tex" because it might be context