@@ -35,7 +35,7 @@ import Data.List ( transpose, sortBy, intersperse, intercalate, elemIndex)
35import qualified Data.Map as M
35import qualified Data.Map as M
36import Data.Scientific (coefficient, base10Exponent)
36import Data.Scientific (coefficient, base10Exponent)
37import Data.Ord ( comparing )
37import Data.Ord ( comparing )
38−import Data.Char ( isAlphaNum, toLower )
38+import Data.Char ( isSpace, isAlphaNum, toLower )
39import Data.Maybe
39import Data.Maybe
40import Text.Pandoc.Definition
40import Text.Pandoc.Definition
41import qualified Data.Text as T
41import qualified Data.Text as T
@@ -326,11 +326,14 @@ mmdTitleBlock = try $ do
326kvPair :: MarkdownParser (String, MetaValue)
326kvPair :: MarkdownParser (String, MetaValue)
327kvPair = try $ do
327kvPair = try $ do
328 key <- many1Till (alphaNum <|> oneOf "_- ") (char ':')
328 key <- many1Till (alphaNum <|> oneOf "_- ") (char ':')
329+ skipMany1 spaceNoNewline
329 val <- manyTill anyChar
330 val <- manyTill anyChar
330 (try $ newline >> lookAhead (blankline <|> nonspaceChar))
331 (try $ newline >> lookAhead (blankline <|> nonspaceChar))
331 let key' = concat $ words $ map toLower key
332 let key' = concat $ words $ map toLower key
332 let val' = MetaBlocks $ B.toList $ B.plain $ B.text $ trim val
333 let val' = MetaBlocks $ B.toList $ B.plain $ B.text $ trim val
333 return (key',val')
334 return (key',val')
336+ spaceNoNewline = satisfy (\x -> isSpace x && (x/='\n') && (x/='\r'))
335parseMarkdown :: MarkdownParser Pandoc
338parseMarkdown :: MarkdownParser Pandoc
336parseMarkdown = do
339parseMarkdown = do