aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Haddock/Parser.hs2
-rw-r--r--test/Haddock/ParserSpec.hs17
2 files changed, 10 insertions, 9 deletions
diff --git a/src/Haddock/Parser.hs b/src/Haddock/Parser.hs
index a6ad817c..095f385e 100644
--- a/src/Haddock/Parser.hs
+++ b/src/Haddock/Parser.hs
@@ -306,8 +306,6 @@ birdtracks = DocCodeBlock . DocString . intercalate "\n" . stripSpace <$> many1
where
line = skipHorizontalSpace *> ">" *> takeLine
--- | Strip leading spaces, but ignore blank lines. If any of the lines don't
--- start with a ' ', however, we don't touch the block.
stripSpace :: [String] -> [String]
stripSpace = fromMaybe <*> mapM strip
where
diff --git a/test/Haddock/ParserSpec.hs b/test/Haddock/ParserSpec.hs
index ac57b644..db843ccf 100644
--- a/test/Haddock/ParserSpec.hs
+++ b/test/Haddock/ParserSpec.hs
@@ -360,23 +360,26 @@ spec = before initStaticOpts $ do
]
`shouldParseTo` DocCodeBlock "foo\nbar\nbaz"
- it "ignores single leading spaces" $ do
+ it "strips one leading space from each line of the block" $ do
unlines [
"> foo"
- , "> bar"
+ , "> bar"
, "> baz"
- ] `shouldParseTo` DocCodeBlock "foo\nbar\nbaz"
+ ] `shouldParseTo` DocCodeBlock "foo\n bar\nbaz"
+ it "ignores empty lines when stripping spaces" $ do
unlines [
"> foo"
, ">"
, "> bar"
] `shouldParseTo` DocCodeBlock "foo\n\nbar"
- unlines [
- ">foo"
- , "> bar"
- ] `shouldParseTo` DocCodeBlock "foo\n bar"
+ context "when any non-empty line does not start with a space" $ do
+ it "does not strip any spaces" $ do
+ unlines [
+ ">foo"
+ , "> bar"
+ ] `shouldParseTo` DocCodeBlock "foo\n bar"
it "ignores nested markup" $ do
unlines [