From 7d2106e18f26a680d157ef943da2602e7199afa1 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Wed, 29 Jan 2014 20:37:10 +0000 Subject: Fix @ code blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In cases where we had some horizontal space before the closing ‘@’, the parser would not accept the block as a code block and we'd get ugly output. --- src/Haddock/Parser.hs | 1 + test/Haddock/ParserSpec.hs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/Haddock/Parser.hs b/src/Haddock/Parser.hs index 6370eecb..e9bed2a5 100644 --- a/src/Haddock/Parser.hs +++ b/src/Haddock/Parser.hs @@ -365,6 +365,7 @@ codeblock d = where p isNewline c | isNewline && c == '@' = Nothing + | isNewline && isSpace c = Just isNewline | otherwise = Just $ c == '\n' hyperlink :: Parser (Doc a) diff --git a/test/Haddock/ParserSpec.hs b/test/Haddock/ParserSpec.hs index 9bca745f..455a67f1 100644 --- a/test/Haddock/ParserSpec.hs +++ b/test/Haddock/ParserSpec.hs @@ -410,6 +410,14 @@ spec = before initStaticOpts $ do , "@" ] `shouldParseTo` DocCodeBlock "foo\n@\nbar\n" + it "accepts horizontal space before the @" $ do + unlines [ " @" + , " foo" + , "" + , " bar" + , " @" + ] `shouldParseTo` DocCodeBlock " foo\n\n bar\n " + it "accepts unicode" $ do "@foo 灼眼のシャナ bar@" `shouldParseTo` DocCodeBlock "foo 灼眼のシャナ bar" -- cgit v1.2.3