aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Markdown.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2011-12-29 23:44:12 -0800
committerJohn MacFarlane <fiddlosopher@gmail.com>2011-12-29 23:44:12 -0800
commit925a4c5164026bfda25bf50b552bacec074fdf3f (patch)
tree2ddf5a2cd3530789434697d19c0bf8fd892d0f9f /src/Text/Pandoc/Readers/Markdown.hs
parent600c22e7bf57b219467794cd8e37c19571988462 (diff)
downloadpandoc-925a4c5164026bfda25bf50b552bacec074fdf3f.tar.gz
Better smart quote parsing.
* Added stateLastStrPos to ParserState. This lets us keep track of whether we're parsing the position immediately after a 'str'. If we encounter a ' in such a location, it must be an apostrophe, and can't be a single quote start. * Set this in the markdown, textile, html, and rst str parsers. * Closes #360.
Diffstat (limited to 'src/Text/Pandoc/Readers/Markdown.hs')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index db68df629..d854bd3c7 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1096,6 +1096,8 @@ str = do
lookAhead alphaNum >> return '\x2019')
-- for things like l'aide
else mzero
+ pos <- getPosition
+ updateState $ \s -> s{ stateLastStrPos = Just pos }
let result = a:as
let spacesToNbr = map (\c -> if c == ' ' then '\160' else c)
if smart