aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r--src/Text/Pandoc/Writers/RST.hs21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs
index 28d44533a..db914a849 100644
--- a/src/Text/Pandoc/Writers/RST.hs
+++ b/src/Text/Pandoc/Writers/RST.hs
@@ -378,9 +378,24 @@ blockListToRST :: PandocMonad m
blockListToRST = blockListToRST' False
transformInlines :: [Inline] -> [Inline]
-transformInlines =
- removeLeadingTrailingSpace . removeSpaceAfterDisplayMath . insertBS
- where -- remove spaces after displaymath, as they screw up indentation:
+transformInlines = removeLeadingTrailingSpace . insertBS
+ . filter hasContents . removeSpaceAfterDisplayMath
+ where -- empty inlines are not valid RST syntax
+ hasContents :: Inline -> Bool
+ hasContents (Str "") = False
+ hasContents (Emph []) = False
+ hasContents (Strong []) = False
+ hasContents (Strikeout []) = False
+ hasContents (Superscript []) = False
+ hasContents (Subscript []) = False
+ hasContents (SmallCaps []) = False
+ hasContents (Quoted _ []) = False
+ hasContents (Cite _ []) = False
+ hasContents (Span _ []) = False
+ hasContents (Link _ [] ("", "")) = False
+ hasContents (Image _ [] ("", "")) = False
+ hasContents _ = True
+ -- remove spaces after displaymath, as they screw up indentation:
removeSpaceAfterDisplayMath (Math DisplayMath x : zs) =
Math DisplayMath x : dropWhile (==Space) zs
removeSpaceAfterDisplayMath (x:xs) = x : removeSpaceAfterDisplayMath xs