diff options
author | Dominic Steinitz <dominic@steinitz.org> | 2015-05-16 13:53:14 +0100 |
---|---|---|
committer | Dominic Steinitz <dominic@steinitz.org> | 2015-12-21 08:07:11 +0000 |
commit | 3f50b955324bd4b42f88a421f0203bc46a3ccf64 (patch) | |
tree | 822a3c2e5779e87712552959b6b4987f1286e0ba /haddock-library/src/Documentation/Haddock/Parser.hs | |
parent | e01e4790402204af02ab0127ef5b633fb7748cd4 (diff) |
Fix the documentation for haddock itself.
Change notation and add support for inline math.
Allow newlines in display math.
Add a command line option for the mathjax url (you might want to use a
locally installed version).
Rebase tests because of extra url and version change.
Respond to (some of the) comments.
Fix warnings in InterfaceFile.hs
Diffstat (limited to 'haddock-library/src/Documentation/Haddock/Parser.hs')
-rw-r--r-- | haddock-library/src/Documentation/Haddock/Parser.hs | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/haddock-library/src/Documentation/Haddock/Parser.hs b/haddock-library/src/Documentation/Haddock/Parser.hs index 919ea37f..123f5612 100644 --- a/haddock-library/src/Documentation/Haddock/Parser.hs +++ b/haddock-library/src/Documentation/Haddock/Parser.hs @@ -74,6 +74,7 @@ overIdentifier f d = g d g (DocHyperlink x) = DocHyperlink x g (DocPic x) = DocPic x g (DocMathInline x) = DocMathInline x + g (DocMathDisplay x) = DocMathDisplay x g (DocAName x) = DocAName x g (DocProperty x) = DocProperty x g (DocExamples x) = DocExamples x @@ -114,7 +115,8 @@ parseStringBS = snd . parse p where p :: Parser (DocH mod Identifier) p = docConcat <$> many (monospace <|> anchor <|> identifier <|> moduleName - <|> picture <|> mathDisplay <|> markdownImage + <|> picture <|> mathDisplay <|> mathInline + <|> markdownImage <|> hyperlink <|> bold <|> emphasis <|> encodedChar <|> string' <|> skipSpecialChar) @@ -226,17 +228,21 @@ picture :: Parser (DocH mod a) picture = DocPic . makeLabeled Picture . decodeUtf8 <$> disallowNewline ("<<" *> takeUntil ">>") --- FIXME: I have just copied the code for `picture` but it is not --- clear why we should disallow a newline (if that is what --- `disallowNewline` does) +-- | Inline math parser, surrounded by \\( and \\). +-- +-- >>> parseString "\\(\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}\\)" +-- DocMathInline "\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}" +mathInline :: Parser (DocH mod a) +mathInline = DocMathInline . decodeUtf8 + <$> disallowNewline ("\\(" *> takeUntil "\\)") --- | Inline math parser, surrounded by \$\$ and \$\$. +-- | Display math parser, surrounded by \\[ and \\]. -- --- >>> parseString "$$\int_{-infty}^{infty} e^{-x^2/2} = \sqrt{2\pi}$$" --- DocMathInline (DocString "\int_{-infty}^{infty} e^{-x^2/2} = \sqrt{2\pi}") +-- >>> parseString "\\[\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}\\]" +-- DocMathDisplay "\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}" mathDisplay :: Parser (DocH mod a) -mathDisplay = DocMathInline . decodeUtf8 - <$> disallowNewline ("$$" *> takeUntil "$$") +mathDisplay = DocMathDisplay . decodeUtf8 + <$> ("\\[" *> takeUntil "\\]") markdownImage :: Parser (DocH mod a) markdownImage = fromHyperlink <$> ("!" *> linkParser) |