Fix inline math parser so that \$ is allowed in math.
Resolves Issue #169. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1609 788f1e2b-df1e-0410-8736-df70ead52e1b
This commit is contained in:
parent
74ac66a0cb
commit
7163a044a4
3 changed files with 15 additions and 4 deletions
|
@ -45,7 +45,7 @@ import Text.Pandoc.Readers.HTML ( rawHtmlBlock, anyHtmlBlockTag,
|
||||||
htmlBlockElement, unsanitaryURI )
|
htmlBlockElement, unsanitaryURI )
|
||||||
import Text.Pandoc.CharacterReferences ( decodeCharacterReferences )
|
import Text.Pandoc.CharacterReferences ( decodeCharacterReferences )
|
||||||
import Text.ParserCombinators.Parsec
|
import Text.ParserCombinators.Parsec
|
||||||
import Control.Monad (when)
|
import Control.Monad (when, liftM)
|
||||||
|
|
||||||
-- | Read markdown from an input string and return a Pandoc document.
|
-- | Read markdown from an input string and return a Pandoc document.
|
||||||
readMarkdown :: ParserState -- ^ Parser state, including options for parser
|
readMarkdown :: ParserState -- ^ Parser state, including options for parser
|
||||||
|
@ -897,8 +897,13 @@ code = try $ do
|
||||||
return $ Code $ removeLeadingTrailingSpace $ concat result
|
return $ Code $ removeLeadingTrailingSpace $ concat result
|
||||||
|
|
||||||
mathWord :: GenParser Char st [Char]
|
mathWord :: GenParser Char st [Char]
|
||||||
mathWord = many1 ((noneOf " \t\n\\$") <|>
|
mathWord = liftM concat $ many1 mathChunk
|
||||||
(try (char '\\') >>~ notFollowedBy (char '$')))
|
|
||||||
|
mathChunk :: GenParser Char st [Char]
|
||||||
|
mathChunk = do char '\\'
|
||||||
|
c <- anyChar
|
||||||
|
return ['\\',c]
|
||||||
|
<|> many1 (noneOf " \t\n\\$")
|
||||||
|
|
||||||
math :: GenParser Char ParserState Inline
|
math :: GenParser Char ParserState Inline
|
||||||
math = (mathDisplay >>= return . Math DisplayMath)
|
math = (mathDisplay >>= return . Math DisplayMath)
|
||||||
|
|
|
@ -13,5 +13,7 @@ Pandoc (Meta [] [] "")
|
||||||
, HorizontalRule
|
, HorizontalRule
|
||||||
, Header 2 [Str "Raw",Space,Str "HTML",Space,Str "before",Space,Str "header"]
|
, Header 2 [Str "Raw",Space,Str "HTML",Space,Str "before",Space,Str "header"]
|
||||||
, Plain [HtmlInline "<a>",HtmlInline "</a>"]
|
, Plain [HtmlInline "<a>",HtmlInline "</a>"]
|
||||||
, Header 3 [Str "my",Space,Str "header"] ]
|
, Header 3 [Str "my",Space,Str "header"]
|
||||||
|
, Header 2 [Str "$",Space,Str "in",Space,Str "math"]
|
||||||
|
, Para [Math InlineMath "\\$2 + \\$3"] ]
|
||||||
|
|
||||||
|
|
|
@ -47,3 +47,7 @@
|
||||||
|
|
||||||
### my header
|
### my header
|
||||||
|
|
||||||
|
## $ in math
|
||||||
|
|
||||||
|
$\$2 + \$3$
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue