From 24f7076622c967f79811f37ee10296f8a4ed8a41 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 8 Feb 2012 17:18:08 -0800 Subject: Improvements to markdown attributes syntax (on code blocks). (1) Attributes can contain line breaks. (2) Values in key-value attributes can be surrounded by either double or single quotes, or left unquoted if they contain no spaces. --- src/Text/Pandoc/Readers/Markdown.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 31db51028..666265935 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -390,8 +390,8 @@ blockDelimiter f len = try $ do attributes :: GenParser Char st ([Char], [[Char]], [([Char], [Char])]) attributes = try $ do char '{' - many spaceChar - attrs <- many (attribute >>~ many spaceChar) + spnl + attrs <- many (attribute >>~ spnl) char '}' let (ids, classes, keyvals) = unzip3 attrs let firstNonNull [] = "" @@ -424,8 +424,9 @@ keyValAttr :: GenParser Char st ([Char], [a], [([Char], [Char])]) keyValAttr = try $ do key <- identifier char '=' - char '"' - val <- manyTill (satisfy (/='\n')) (char '"') + val <- enclosed (char '"') (char '"') anyChar + <|> enclosed (char '\'') (char '\'') anyChar + <|> many nonspaceChar return ("",[],[(key,val)]) codeBlockDelimited :: GenParser Char st Block -- cgit v1.2.3