diff options
Diffstat (limited to 'src/Text/Pandoc/Writers/OpenDocument.hs')
-rw-r--r-- | src/Text/Pandoc/Writers/OpenDocument.hs | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/src/Text/Pandoc/Writers/OpenDocument.hs b/src/Text/Pandoc/Writers/OpenDocument.hs index 71e599e09..f50b240a4 100644 --- a/src/Text/Pandoc/Writers/OpenDocument.hs +++ b/src/Text/Pandoc/Writers/OpenDocument.hs @@ -35,7 +35,6 @@ import Text.Pandoc.Options import Text.Pandoc.XML import Text.Pandoc.Shared (linesToPara) import Text.Pandoc.Templates (renderTemplate') -import Text.Pandoc.Readers.Odt.StyleReader hiding (listStyle) import Text.Pandoc.Writers.Math import Text.Pandoc.Pretty import Text.Printf ( printf ) @@ -319,7 +318,9 @@ blockToOpenDocument o bs else inParagraphTags =<< inlinesToOpenDocument o b | Para [Image attr c (s,'f':'i':'g':':':t)] <- bs = figure attr c s t - | Para b <- bs = paragraph b + | Para b <- bs = if null b + then return empty + else inParagraphTags =<< inlinesToOpenDocument o b | LineBlock b <- bs = blockToOpenDocument o $ linesToPara b | Div _ xs <- bs = blocksToOpenDocument o xs | Header i _ b <- bs = setFirstPara >> @@ -380,22 +381,6 @@ blockToOpenDocument o bs captionDoc <- withParagraphStyle o "FigureCaption" [Para caption] return $ imageDoc $$ captionDoc - endsWithPageBreak [] = False - endsWithPageBreak [PageBreak] = True - endsWithPageBreak (_ : xs) = endsWithPageBreak xs - - paragraph :: PandocMonad m => [Inline] -> OD m Doc - paragraph [] = return empty - paragraph (PageBreak : rest) | endsWithPageBreak rest = paraWithBreak PageBoth rest - paragraph (PageBreak : rest) = paraWithBreak PageBefore rest - paragraph inlines | endsWithPageBreak inlines = paraWithBreak PageAfter inlines - paragraph inlines = inParagraphTags =<< inlinesToOpenDocument o inlines - - paraWithBreak :: PandocMonad m => ParaBreak -> [Inline] -> OD m Doc - paraWithBreak breakKind bs' = do - pn <- paraBreakStyle breakKind - withParagraphStyle o ("P" ++ show pn) [Para bs'] - colHeadsToOpenDocument :: PandocMonad m => WriterOptions -> String -> [String] -> [[Block]] -> OD m Doc @@ -595,12 +580,6 @@ paraStyle attrs = do addParaStyle $ inTags True "style:style" (styleAttr ++ attrs) paraProps return pn -paraBreakStyle :: PandocMonad m => ParaBreak -> OD m Int -paraBreakStyle PageBefore = paraStyle "Text_20_body" [("fo:break-before", "page")] -paraBreakStyle PageAfter = paraStyle "Text_20_body" [("fo:break-after", "page")] -paraBreakStyle PageBoth = paraStyle "Text_20_body" [("fo:break-before", "page"), ("fo:break-after", "page")] -paraBreakStyle AutoNone = paraStyle "Text_20_body" [] - paraListStyle :: PandocMonad m => Int -> OD m Int paraListStyle l = paraStyle [("style:parent-style-name","Text_20_body") |