diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-12-31 01:12:44 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-12-31 01:12:44 +0000 |
commit | 3ec8772daff7d76097d7435c4e8da1df5ee4cc6a (patch) | |
tree | 9fc8b0101a1bd0016b619707f45bad9c6a2b9132 /src/Text/Pandoc/Readers/RST.hs | |
parent | 1a166987dfc049d03f034b920e4ae679402aa2f5 (diff) | |
download | pandoc-3ec8772daff7d76097d7435c4e8da1df5ee4cc6a.tar.gz |
Changed Meta author and date types to Inline lists instead of Strings.
Meta [Inline] [[Inline]] [Inline] rather than
Meta [Inline] [String] String.
This is a breaking change for libraries that use pandoc and
manipulate the metadata.
Changed .native files in test suite for new Meta format.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1699 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text/Pandoc/Readers/RST.hs')
-rw-r--r-- | src/Text/Pandoc/Readers/RST.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index fd6127cae..2f9282584 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -33,7 +33,7 @@ module Text.Pandoc.Readers.RST ( import Text.Pandoc.Definition import Text.Pandoc.Shared import Text.ParserCombinators.Parsec -import Control.Monad ( when ) +import Control.Monad ( when, unless ) import Data.List ( findIndex, delete, intercalate ) -- | Parse reStructuredText string and return Pandoc document. @@ -157,11 +157,13 @@ fieldList = try $ do let authors = case lookup "Authors" items of Just auth -> [auth] Nothing -> map snd (filter (\(x,_) -> x == "Author") items) - if null authors - then return () - else updateState $ \st -> st {stateAuthors = authors} + unless (null authors) $ do + authors' <- mapM (parseFromString (many inline)) authors + updateState $ \st -> st {stateAuthors = map normalizeSpaces authors'} case (lookup "Date" items) of - Just dat -> updateState $ \st -> st {stateDate = dat} + Just dat -> do + dat' <- parseFromString (many inline) dat + updateState $ \st -> st{ stateDate = normalizeSpaces dat' } Nothing -> return () case (lookup "Title" items) of Just tit -> parseFromString (many inline) tit >>= |