aboutsummaryrefslogtreecommitdiff
path: root/haddock-library
diff options
context:
space:
mode:
authorMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-07-28 13:25:43 +0200
committerMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-07-28 13:25:43 +0200
commitd6aec63c009c4e57181900eb03847d7dc0fc3c7c (patch)
treeddee70d875782103c8ce4717008d0c790b5a60ec /haddock-library
parentb99b57c0df072d12b67816b45eca2a03cb1da96d (diff)
Catch mid-line URLs. Fixes #314.
Diffstat (limited to 'haddock-library')
-rw-r--r--haddock-library/src/Documentation/Haddock/Parser.hs4
-rw-r--r--haddock-library/test/Documentation/Haddock/ParserSpec.hs4
2 files changed, 6 insertions, 2 deletions
diff --git a/haddock-library/src/Documentation/Haddock/Parser.hs b/haddock-library/src/Documentation/Haddock/Parser.hs
index 805b33f8..68d9ecec 100644
--- a/haddock-library/src/Documentation/Haddock/Parser.hs
+++ b/haddock-library/src/Documentation/Haddock/Parser.hs
@@ -105,7 +105,7 @@ parseStringBS = parse p
where
p :: Parser (DocH mod Identifier)
p = mconcat <$> many (monospace <|> anchor <|> identifier <|> moduleName
- <|> picture <|> hyperlink <|> autoUrl <|> bold
+ <|> picture <|> hyperlink <|> bold
<|> emphasis <|> encodedChar <|> string'
<|> skipSpecialChar)
@@ -125,7 +125,7 @@ encodedChar = "&#" *> c <* ";"
-- Once we have checked for any of these and tried to parse the
-- relevant markup, we can assume they are used as regular text.
specialChar :: [Char]
-specialChar = "_/<@\"&'`#"
+specialChar = "_/<@\"&'`# "
-- | Plain, regular parser for text. Called as one of the last parsers
-- to ensure that we have already given a chance to more meaningful parsers
diff --git a/haddock-library/test/Documentation/Haddock/ParserSpec.hs b/haddock-library/test/Documentation/Haddock/ParserSpec.hs
index a8c2199a..5181a3f3 100644
--- a/haddock-library/test/Documentation/Haddock/ParserSpec.hs
+++ b/haddock-library/test/Documentation/Haddock/ParserSpec.hs
@@ -137,6 +137,10 @@ spec = do
"http://example.com/? Some other sentence." `shouldParseTo`
hyperlink "http://example.com/" Nothing <> "? Some other sentence."
+ it "autolinks URLs occuring mid-sentence with multiple ‘/’s" $ do
+ "foo https://example.com/example bar" `shouldParseTo`
+ "foo " <> hyperlink "https://example.com/example" Nothing <> " bar"
+
context "when parsing pictures" $ do
let picture :: String -> Maybe String -> Doc String
picture uri = DocPic . Picture uri