diff options
Diffstat (limited to 'haddock-library/src')
| -rw-r--r-- | haddock-library/src/Documentation/Haddock/Parser.hs | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/haddock-library/src/Documentation/Haddock/Parser.hs b/haddock-library/src/Documentation/Haddock/Parser.hs index 37bf4ca7..f13cedc6 100644 --- a/haddock-library/src/Documentation/Haddock/Parser.hs +++ b/haddock-library/src/Documentation/Haddock/Parser.hs @@ -121,8 +121,11 @@ encodedChar = "&#" *> c <* ";"      num = hex <|> decimal      hex = ("x" <|> "X") *> hexadecimal +-- | List of characters that we use to delimit any special markup. +-- 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 @@ -176,7 +179,8 @@ takeWhile1_ = mfilter (not . BS.null) . takeWhile_  -- >>> parseOnly anchor "#Hello world#"  -- Right (DocAName "Hello world")  anchor :: Parser (DocH mod a) -anchor = DocAName . decodeUtf8 <$> ("#" *> takeWhile1 (`notElem` "#\n") <* "#") +anchor = DocAName . decodeUtf8 <$> +         disallowNewline ("#" *> takeWhile1_ (/= '#') <* "#")  -- | Monospaced strings.  -- @@ -194,7 +198,8 @@ moduleName = DocModule <$> (char '"' *> modid <* char '"')        -- NOTE: According to Haskell 2010 we should actually only        -- accept {small | large | digit | ' } here.  But as we can't        -- match on unicode characters, this is currently not possible. -      <*> (decodeUtf8 <$> takeWhile (`notElem` " .&[{}(=*)+]!#|@/;,^?\"\n")) +      -- Note that we allow ‘#’ to suport anchors. +      <*> (decodeUtf8 <$> takeWhile (`notElem` " .&[{}(=*)+]!|@/;,^?\"\n"))  -- | Picture parser, surrounded by \<\< and \>\>. It's possible to specify  -- a title for the picture. | 
