aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2011-01-30 08:21:48 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2011-01-30 08:21:48 -0800
commit71ca44db6e8893b0394e6cd38c637deee0524371 (patch)
tree3eeeb1b17fd690558611dd522556d539885ab059
parent2a9f55cd785301e37f45f9c8e0666b1159e4c109 (diff)
downloadpandoc-71ca44db6e8893b0394e6cd38c637deee0524371.tar.gz
LaTeX reader: Fixed bug with whitespace at beginning of file.
Previously a file beginning " hi" would cause a parse error. Also cleaned up comment parsing.
-rw-r--r--src/Tests/Readers/LaTeX.hs9
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs4
2 files changed, 11 insertions, 2 deletions
diff --git a/src/Tests/Readers/LaTeX.hs b/src/Tests/Readers/LaTeX.hs
index 7ea4c73ee..6d28441f8 100644
--- a/src/Tests/Readers/LaTeX.hs
+++ b/src/Tests/Readers/LaTeX.hs
@@ -41,6 +41,15 @@ tests = [ testGroup "basic"
header 1 ("text" +++ space +++ link "/url" "" "link")
]
+ , testGroup "space and comments"
+ [ "blank lines + space at beginning" =:
+ "\n \n hi" =?> para "hi"
+ , "blank lines + space + comments" =:
+ "% my comment\n\n \n % another\n\nhi" =?> para "hi"
+ , "comment in paragraph" =:
+ "hi % this is a comment\nthere\n" =?> para "hi there"
+ ]
+
, testGroup "citations"
[ natbibCitations
, biblatexCitations
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 83b74a489..dca745b56 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -136,8 +136,8 @@ processLaTeXPreamble = do
-- | Parse LaTeX and return 'Pandoc'.
parseLaTeX :: GenParser Char ParserState Pandoc
parseLaTeX = do
- skipMany $ spaces >> comment
spaces
+ skipMany $ comment >> spaces
blocks <- try (processLaTeXPreamble >> environment "document")
<|> (many block >>~ (spaces >> eof))
state <- getState
@@ -528,7 +528,7 @@ skipChar = do
return Null
commentBlock :: GenParser Char st Block
-commentBlock = comment >> return Null
+commentBlock = many1 (comment >> spaces) >> return Null
--
-- inline