diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-10-18 13:19:42 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-10-18 13:19:42 -0700 |
commit | 31713d572a606a487d36c4a4d673b9797cf4a0db (patch) | |
tree | 6c04eeb4c53b0551d64253dc3782f87e4c1f7833 | |
parent | a1b5997af499252cde722a6250657f21e960a50a (diff) | |
parent | d571bec454e9f0822c2c71eeee2f8bfc6eb34c3c (diff) | |
download | pandoc-31713d572a606a487d36c4a4d673b9797cf4a0db.tar.gz |
Merge pull request #1700 from tarleb/org-emphasis-fix
Org reader: fix rules for emphasis recognition
-rw-r--r-- | src/Text/Pandoc/Readers/Org.hs | 10 | ||||
-rw-r--r-- | tests/Tests/Readers/Org.hs | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/Org.hs b/src/Text/Pandoc/Readers/Org.hs index 483f49905..67470eff9 100644 --- a/src/Text/Pandoc/Readers/Org.hs +++ b/src/Text/Pandoc/Readers/Org.hs @@ -952,7 +952,7 @@ parseInlines = trimInlinesF . mconcat <$> many1 inline -- treat these as potentially non-text when parsing inline: specialChars :: [Char] -specialChars = "\"$'()*+-./:<=>[\\]^_{|}~" +specialChars = "\"$'()*+-,./:<=>[\\]^_{|}~" whitespace :: OrgParser (F Inlines) @@ -1230,10 +1230,10 @@ displayMath = return . B.displayMath <$> choice [ rawMathBetween "\\[" "\\]" ] symbol :: OrgParser (F Inlines) symbol = return . B.str . (: "") <$> (oneOf specialChars >>= updatePositions) - where updatePositions c - | c `elem` emphasisPreChars = c <$ updateLastPreCharPos - | c `elem` emphasisForbiddenBorderChars = c <$ updateLastForbiddenCharPos - | otherwise = return c + where updatePositions c = do + when (c `elem` emphasisPreChars) updateLastPreCharPos + when (c `elem` emphasisForbiddenBorderChars) updateLastForbiddenCharPos + return c emphasisBetween :: Char -> OrgParser (F Inlines) diff --git a/tests/Tests/Readers/Org.hs b/tests/Tests/Readers/Org.hs index b37825ad5..f893e5aa2 100644 --- a/tests/Tests/Readers/Org.hs +++ b/tests/Tests/Readers/Org.hs @@ -126,6 +126,14 @@ tests = , (emph "b") <> "." ]) + , "Quotes are forbidden border chars" =: + "/'nope/ *nope\"*" =?> + para ("/'nope/" <> space <> "*nope\"*") + + , "Commata are forbidden border chars" =: + "/nada,/" =?> + para "/nada,/" + , "Markup should work properly after a blank line" =: unlines ["foo", "", "/bar/"] =?> (para $ text "foo") <> (para $ emph $ text "bar") |