aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/RST.hs18
-rw-r--r--test/command/4420.md22
2 files changed, 34 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs
index 0321f5b36..efe86e73b 100644
--- a/src/Text/Pandoc/Writers/RST.hs
+++ b/src/Text/Pandoc/Writers/RST.hs
@@ -140,9 +140,12 @@ pictToRST (label, (attr, src, _, mbtarget)) = do
label' <- inlineListToRST label
dims <- imageDimsToRST attr
let (_, cls, _) = attr
- classes = if null cls
- then empty
- else ":class: " <> text (unwords cls)
+ classes = case cls of
+ [] -> empty
+ ["align-right"] -> ":align: right"
+ ["align-left"] -> ":align: left"
+ ["align-center"] -> ":align: center"
+ _ -> ":class: " <> text (unwords cls)
return $ nowrap
$ ".. |" <> label' <> "| image:: " <> text src $$ hang 3 empty (classes $$ dims)
$$ case mbtarget of
@@ -218,9 +221,12 @@ blockToRST (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do
let fig = "figure:: " <> text src
alt = ":alt: " <> if null tit then capt else text tit
(_,cls,_) = attr
- classes = if null cls
- then empty
- else ":figclass: " <> text (unwords cls)
+ classes = case cls of
+ [] -> empty
+ ["align-right"] -> ":align: right"
+ ["align-left"] -> ":align: left"
+ ["align-center"] -> ":align: center"
+ _ -> ":figclass: " <> text (unwords cls)
return $ hang 3 ".. " (fig $$ alt $$ classes $$ dims $+$ capt) $$ blankline
blockToRST (Para inlines)
| LineBreak `elem` inlines =
diff --git a/test/command/4420.md b/test/command/4420.md
new file mode 100644
index 000000000..3e7008935
--- /dev/null
+++ b/test/command/4420.md
@@ -0,0 +1,22 @@
+```
+% pandoc -f native -t rst
+[Image ("",["align-right"],[("width","100px")]) [Str "image"] ("foo.png","")]
+^D
+|image|
+
+.. |image| image:: foo.png
+ :align: right
+ :width: 100px
+```
+
+```
+% pandoc -f native -t rst
+[Para [Image ("",["align-right"],[("width","100px")]) [Str "image"] ("foo.png","fig:test")]]
+^D
+.. figure:: foo.png
+ :alt: test
+ :align: right
+ :width: 100px
+
+ image
+```