aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2013-02-12 11:27:42 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2013-02-12 11:27:42 -0800
commit35cc1d99ca8c8986869890bdf8de0930b5b3bd3c (patch)
tree9abdb34c7f31092bb05b7a09ed0c7982b2e1aeeb /src/Text/Pandoc/Readers
parentea9b7a4a528fd9684fcb2473e1ef7718acccbc6c (diff)
downloadpandoc-35cc1d99ca8c8986869890bdf8de0930b5b3bd3c.tar.gz
Markdown reader: Make backslash escape work in attributes.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 04f839612..5a257a51e 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -477,7 +477,7 @@ blockDelimiter f len = try $ do
Nothing -> count 3 (char c) >> many (char c) >>=
return . (+ 3) . length
-attributes :: Parser [Char] st (String, [String], [(String, String)])
+attributes :: MarkdownParser (String, [String], [(String, String)])
attributes = try $ do
char '{'
spnl
@@ -489,34 +489,34 @@ attributes = try $ do
| otherwise = firstNonNull xs
return (firstNonNull $ reverse ids, concat classes, concat keyvals)
-attribute :: Parser [Char] st (String, [String], [(String, String)])
+attribute :: MarkdownParser (String, [String], [(String, String)])
attribute = identifierAttr <|> classAttr <|> keyValAttr
-identifier :: Parser [Char] st String
+identifier :: MarkdownParser String
identifier = do
first <- letter
rest <- many $ alphaNum <|> oneOf "-_:."
return (first:rest)
-identifierAttr :: Parser [Char] st (String, [a], [a1])
+identifierAttr :: MarkdownParser (String, [a], [a1])
identifierAttr = try $ do
char '#'
result <- identifier
return (result,[],[])
-classAttr :: Parser [Char] st (String, [String], [a])
+classAttr :: MarkdownParser (String, [String], [a])
classAttr = try $ do
char '.'
result <- identifier
return ("",[result],[])
-keyValAttr :: Parser [Char] st (String, [a], [(String, String)])
+keyValAttr :: MarkdownParser (String, [a], [(String, String)])
keyValAttr = try $ do
key <- identifier
char '='
- val <- enclosed (char '"') (char '"') anyChar
- <|> enclosed (char '\'') (char '\'') anyChar
- <|> many (noneOf " \t\n\r}")
+ val <- enclosed (char '"') (char '"') litChar
+ <|> enclosed (char '\'') (char '\'') litChar
+ <|> many (escapedChar' <|> noneOf " \t\n\r}")
return ("",[],[(key,val)])
codeBlockFenced :: MarkdownParser (F Blocks)