diff options
Diffstat (limited to 'src/Text')
-rw-r--r-- | src/Text/Pandoc/Readers/RST.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index cc8293132..5f6850148 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -206,16 +206,21 @@ lineBlockLine = try $ do char '|' char ' ' <|> lookAhead (char '\n') white <- many spaceChar - line <- many $ (notFollowedBy newline >> inline) <|> (try $ endline >>~ char ' ') + line <- many1 $ (notFollowedBy newline >> inline) <|> (try $ endline >>~ char ' ') optional endline return $ if null white then mconcat line - else B.str white <> mconcat line + else B.str (spToNbsp white) <> mconcat line + +spToNbsp :: String -> String +spToNbsp (' ':xs) = '\160' : spToNbsp xs +spToNbsp (x:xs) = x : spToNbsp xs +spToNbsp [] = "" lineBlock :: RSTParser Blocks lineBlock = try $ do lines' <- many1 lineBlockLine - blanklines + skipMany1 $ blankline <|> try (char '|' >> blankline) return $ B.para (mconcat $ intersperse B.linebreak lines') -- |