@@ -39,6 +39,7 @@ import Data.List ( isSuffixOf, intercalate )
3939import Data.Char ( ord, chr, isDigit, toLower )
4040import System.FilePath ( takeExtension )
4141import qualified Data.ByteString as B
42+import qualified Data.Map as M
4243import Text.Printf ( printf )
4344import Network.URI ( isURI, unEscapeString )
4445import qualified Control.Exception as E
@@ -74,12 +75,19 @@ writeRTFWithEmbeddedImages options doc =
7475
7576-- | Convert Pandoc to a string in rich text format.
7677writeRTF :: WriterOptions -> Pandoc -> String
77−writeRTF options (Pandoc meta blocks) =
78+writeRTF options (Pandoc meta@(Meta metamap) blocks) =
7879 let spacer = not $ all null $ docTitle meta : docDate meta : docAuthors meta
80+ toPlain (MetaBlocks [Para ils]) = MetaInlines ils
81+ toPlain x = x
82+ -- adjust title, author, date so we don't get para inside para
83+ meta' = Meta $ M.adjust toPlain "title"
84+ . M.adjust toPlain "author"
85+ . M.adjust toPlain "date"
86+ $ metamap
7987 Just metadata = metaToJSON options
8088 (Just . concatMap (blockToRTF 0 AlignDefault))
8189 (Just . inlineListToRTF)
82− meta
90+ meta'
8391 body = concatMap (blockToRTF 0 AlignDefault) blocks
8492 isTOCHeader (Header lev _ _) = lev <= writerTOCDepth options
8593 isTOCHeader _ = False