diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-10-09 15:05:22 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-10-09 15:05:22 -0700 |
commit | a3729ef2da06aca1799bdd57ada12f47c04b93e2 (patch) | |
tree | bfb431f0dc64899ba41754e08b0c1972671f7f68 | |
parent | 5ec90442885f9bff1aa6280f02ada3bf10f69646 (diff) | |
download | pandoc-a3729ef2da06aca1799bdd57ada12f47c04b93e2.tar.gz |
RST writer: proper handling of :align: on figures, images.
When the image has the `align-right` (etc.) class, we now use
an `:align:` attribute.
Closes #4420.
-rw-r--r-- | src/Text/Pandoc/Writers/RST.hs | 18 | ||||
-rw-r--r-- | test/command/4420.md | 22 |
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 +``` |