git.iko.soy/typeable/pandoc
on master help sign in
RST reader: handle blank lines correctly in line blocks (#3881)

Previously pandoc would sometimes combine two line blocks separated by blanks, and ignore trailing blank lines within the line block. Test is checked to be consisted with http://rst.ninjs.org/

commit05bb8ef4aa6faa6a4da3c54a0483d42b846733ca authorAlexander <ilabdsf@gmail.com> dateMon 28 Aug 2017, 17:48 (9 years ago) parent8fcf664
2 files changed+14−1
src/Text/Pandoc/Parsing.hs+1−1 test/Tests/Readers/RST.hs+13
src/Text/Pandoc/Parsing.hs+1−1
@@ -838,7 +838,7 @@ blankLineBlockLine = try (char '|' >> blankline)
838838lineBlockLines :: Monad m => ParserT [Char] st m [String]
839839lineBlockLines = try $ do
840840 lines' <- many1 (lineBlockLine <|> ((:[]) <$> blankLineBlockLine))
841− skipMany1 $ blankline <|> blankLineBlockLine
841+ skipMany $ blankline
842842 return lines'
843843
844844-- | Parse a table using 'headerParser', 'rowParser',
test/Tests/Readers/RST.hs+13
@@ -136,6 +136,19 @@ tests = [ "line block with blank line" =:
136136 para "but must stop here")
137137 , "line block with 3 lines" =: "| a\n| b\n| c"
138138 =?> lineBlock ["a", "b", "c"]
139+ , "line blocks with blank lines" =: T.unlines
140+ [ "|"
141+ , ""
142+ , "|"
143+ , "| a"
144+ , "| b"
145+ , "|"
146+ , ""
147+ , "|"
148+ ] =?>
149+ lineBlock [""] <>
150+ lineBlock ["", "a", "b", ""] <>
151+ lineBlock [""]
139152 , "quoted literal block using >" =: "::\n\n> quoted\n> block\n\nOrdinary paragraph"
140153 =?> codeBlock "> quoted\n> block" <> para "Ordinary paragraph"
141154 , "quoted literal block using | (not a line block)" =: "::\n\n| quoted\n| block\n\nOrdinary paragraph"