git.iko.soy/typeable/pandoc
on master help sign in
RST reader: Some fixes to last change, and use "author" not "authors".

(in metadata)

commiteaba340b9381264f3706c780182711a8713b3def authorJohn MacFarlane <jgm@berkeley.edu> dateWed 30 Apr 2014, 11:28 (13 years ago) parent81bf82c
2 files changed+8−7
src/Text/Pandoc/Readers/RST.hs+7−6 tests/rst-reader.native+1−1
src/Text/Pandoc/Readers/RST.hs+7−6
@@ -113,15 +113,16 @@ titleTransform (bs, meta) =
113113metaFromDefList :: [([Inline], [[Block]])] -> Meta -> Meta
114114metaFromDefList ds meta = adjustAuthors $ foldr f meta ds
115115 where f (k,v) = setMeta (map toLower $ stringify k) (mconcat $ map fromList v)
116− adjustAuthors (Meta metamap) = Meta $ M.adjust toPlain "author"
116+ adjustAuthors (Meta metamap) = Meta $ M.adjust splitAuthors "author"
117117 $ M.adjust toPlain "date"
118118 $ M.adjust toPlain "title"
119− $ M.adjust splitAuthors "authors"
119+ $ M.mapKeys (\k -> if k == "authors" then "author" else k)
120120 $ metamap
121121 toPlain (MetaBlocks [Para xs]) = MetaInlines xs
122122 toPlain x = x
123− splitAuthors (MetaBlocks [Para xs]) = MetaList $ map MetaInlines
124− $ splitAuthors' xs
123+ splitAuthors (MetaBlocks [Para xs])
124+ = MetaList $ map MetaInlines
125+ $ splitAuthors' xs
125126 splitAuthors x = x
126127 splitAuthors' = map normalizeSpaces .
127128 splitOnSemi . concatMap factorSemi
@@ -196,7 +197,7 @@ rawFieldListItem minIndent = try $ do
196197 rest <- option "" $ try $ do lookAhead (count indent (char ' ') >> spaceChar)
197198 indentedBlock
198199 let raw = (if null first then "" else (first ++ "\n")) ++ rest ++ "\n"
199− return (name, trimr raw)
200+ return (name, raw)
200201
201202fieldListItem :: Int -> RSTParser (Inlines, [Blocks])
202203fieldListItem minIndent = try $ do
@@ -577,7 +578,7 @@ directive' = do
577578 "code" -> codeblock (lookup "number-lines" fields) (trim top) body
578579 "code-block" -> codeblock (lookup "number-lines" fields) (trim top) body
579580 "aafig" -> do
580− let attribs = ("", ["aafig"], fields)
581+ let attribs = ("", ["aafig"], map (\(k,v) -> (k, trimr v)) fields)
581582 return $ B.codeBlockWith attribs $ stripTrailingNewlines body
582583 "math" -> return $ B.para $ mconcat $ map B.displayMath
583584 $ toChunks $ top ++ "\n\n" ++ body
tests/rst-reader.native+1−1
@@ -1,4 +1,4 @@
1−Pandoc (Meta {unMeta = fromList [("authors",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("revision",MetaBlocks [Para [Str "3"]]),("subtitle",MetaInlines [Str "Subtitle"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})
1+Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("revision",MetaBlocks [Para [Str "3"]]),("subtitle",MetaInlines [Str "Subtitle"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})
22[Header 1 ("level-one-header",[],[]) [Str "Level",Space,Str "one",Space,Str "header"]
33,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
44,Header 2 ("level-two-header",[],[]) [Str "Level",Space,Str "two",Space,Str "header"]