git.iko.soy/typeable/pandoc
on master help sign in
Fixed preamble parsing in LaTeX reader.
3ac6f72John MacFarlane
src/Text/Pandoc/Readers/LaTeX.hs+8−2
@@ -120,7 +120,8 @@ anyEnvironment = try $ do
120-- | Process LaTeX preamble, extracting metadata.
120-- | Process LaTeX preamble, extracting metadata.
121processLaTeXPreamble :: GenParser Char ParserState ()
121processLaTeXPreamble :: GenParser Char ParserState ()
122processLaTeXPreamble =
122processLaTeXPreamble =
123− skipMany $ notFollowedBy' anyEnvironment >> block
123+ skipMany $ choice [ bibliographic, unknownCommand,
124+ commentBlock, skipToken ]
124
125
125-- | Parse LaTeX and return 'Pandoc'.
126-- | Parse LaTeX and return 'Pandoc'.
126parseLaTeX :: GenParser Char ParserState Pandoc
127parseLaTeX :: GenParser Char ParserState Pandoc
@@ -156,7 +157,9 @@ block = choice [ hrule
156 , itemBlock
157 , itemBlock
157 , unknownEnvironment
158 , unknownEnvironment
158 , ignore
159 , ignore
159− , unknownCommand ] <?> "block"
160+ , unknownCommand
161+ , skipToken
162+ ] <?> "block"
160
163
161--
164--
162-- header blocks
165-- header blocks
@@ -435,6 +438,9 @@ unknownCommand = try $ do
435commandsToIgnore :: [String]
438commandsToIgnore :: [String]
436commandsToIgnore = ["special","pdfannot","pdfstringdef","bibliography"]
439commandsToIgnore = ["special","pdfannot","pdfstringdef","bibliography"]
437
440
441+skipToken :: GenParser Char ParserState Block
442+skipToken = satisfy (/='\\') >> spaces >> return Null
443+
438commentBlock :: GenParser Char st Block
444commentBlock :: GenParser Char st Block
439commentBlock = comment >> return Null
445commentBlock = comment >> return Null
440
446