git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Make backslash escape work in attributes.
commit35cc1d99ca8c8986869890bdf8de0930b5b3bd3c authorJohn MacFarlane <jgm@berkeley.edu> dateTue 12 Feb 2013, 11:27 (14 years ago) parentea9b7a4
1 file changed+9−9
src/Text/Pandoc/Readers/Markdown.hs+9−9
src/Text/Pandoc/Readers/Markdown.hs+9−9
@@ -477,7 +477,7 @@ blockDelimiter f len = try $ do
477477 Nothing -> count 3 (char c) >> many (char c) >>=
478478 return . (+ 3) . length
479479
480−attributes :: Parser [Char] st (String, [String], [(String, String)])
480+attributes :: MarkdownParser (String, [String], [(String, String)])
481481attributes = try $ do
482482 char '{'
483483 spnl
@@ -489,34 +489,34 @@ attributes = try $ do
489489 | otherwise = firstNonNull xs
490490 return (firstNonNull $ reverse ids, concat classes, concat keyvals)
491491
492−attribute :: Parser [Char] st (String, [String], [(String, String)])
492+attribute :: MarkdownParser (String, [String], [(String, String)])
493493attribute = identifierAttr <|> classAttr <|> keyValAttr
494494
495−identifier :: Parser [Char] st String
495+identifier :: MarkdownParser String
496496identifier = do
497497 first <- letter
498498 rest <- many $ alphaNum <|> oneOf "-_:."
499499 return (first:rest)
500500
501−identifierAttr :: Parser [Char] st (String, [a], [a1])
501+identifierAttr :: MarkdownParser (String, [a], [a1])
502502identifierAttr = try $ do
503503 char '#'
504504 result <- identifier
505505 return (result,[],[])
506506
507−classAttr :: Parser [Char] st (String, [String], [a])
507+classAttr :: MarkdownParser (String, [String], [a])
508508classAttr = try $ do
509509 char '.'
510510 result <- identifier
511511 return ("",[result],[])
512512
513−keyValAttr :: Parser [Char] st (String, [a], [(String, String)])
513+keyValAttr :: MarkdownParser (String, [a], [(String, String)])
514514keyValAttr = try $ do
515515 key <- identifier
516516 char '='
517− val <- enclosed (char '"') (char '"') anyChar
518− <|> enclosed (char '\'') (char '\'') anyChar
519− <|> many (noneOf " \t\n\r}")
517+ val <- enclosed (char '"') (char '"') litChar
518+ <|> enclosed (char '\'') (char '\'') litChar
519+ <|> many (escapedChar' <|> noneOf " \t\n\r}")
520520 return ("",[],[(key,val)])
521521
522522codeBlockFenced :: MarkdownParser (F Blocks)