git.iko.soy/typeable/pandoc
on master help sign in
RTF writer: Avoid extra paragraph tags in metadata.

Closes #1421.

commit58838996259d02700db33ca3cbb3fcbca0688e51 authorJohn MacFarlane <jgm@berkeley.edu> dateSun 13 Jul 2014, 16:40 (12 years ago) parent3e95fd5
1 file changed+10−2
src/Text/Pandoc/Writers/RTF.hs+10−2
src/Text/Pandoc/Writers/RTF.hs+10−2
@@ -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