Muse writer: write image width specified in percent in Text::Amuse mode

This commit is contained in:
Alexander Krotov 2018-02-03 18:36:38 +03:00
parent eeafb3fa77
commit d777fe8bbe
2 changed files with 10 additions and 2 deletions

View file

@ -48,6 +48,7 @@ import Data.List (intersperse, transpose, isInfixOf)
import System.FilePath (takeExtension) import System.FilePath (takeExtension)
import Text.Pandoc.Class (PandocMonad) import Text.Pandoc.Class (PandocMonad)
import Text.Pandoc.Definition import Text.Pandoc.Definition
import Text.Pandoc.ImageSize
import Text.Pandoc.Options import Text.Pandoc.Options
import Text.Pandoc.Pretty import Text.Pandoc.Pretty
import Text.Pandoc.Shared import Text.Pandoc.Shared
@ -384,14 +385,18 @@ inlineToMuse (Link _ txt (src, _)) =
isImageUrl = (`elem` imageExtensions) . takeExtension isImageUrl = (`elem` imageExtensions) . takeExtension
inlineToMuse (Image attr alt (source,'f':'i':'g':':':title)) = inlineToMuse (Image attr alt (source,'f':'i':'g':':':title)) =
inlineToMuse (Image attr alt (source,title)) inlineToMuse (Image attr alt (source,title))
inlineToMuse (Image _ inlines (source, title)) = do inlineToMuse (Image attr inlines (source, title)) = do
opts <- gets stOptions
alt <- inlineListToMuse inlines alt <- inlineListToMuse inlines
let title' = if null title let title' = if null title
then if null inlines then if null inlines
then "" then ""
else "[" <> alt <> "]" else "[" <> alt <> "]"
else "[" <> text title <> "]" else "[" <> text title <> "]"
return $ "[[" <> text source <> "]" <> title' <> "]" let width = case dimension Width attr of
Just (Percent x) | isEnabled Ext_amuse opts -> " " ++ show (round x :: Integer)
_ -> ""
return $ "[[" <> text (source ++ width) <> "]" <> title' <> "]"
inlineToMuse (Note contents) = do inlineToMuse (Note contents) = do
-- add to notes in state -- add to notes in state
notes <- gets stNotes notes <- gets stNotes

View file

@ -351,6 +351,9 @@ tests = [ testGroup "block elements"
=?> "[[URL:1.png]]" =?> "[[URL:1.png]]"
] ]
, "image" =: image "image.png" "Image 1" (str "") =?> "[[image.png][Image 1]]" , "image" =: image "image.png" "Image 1" (str "") =?> "[[image.png][Image 1]]"
, "image with width" =:
imageWith ("", [], [("width", "60%")]) "image.png" "Image" (str "") =?>
"[[image.png 60][Image]]"
, "note" =: note (plain (text "Foo")) , "note" =: note (plain (text "Foo"))
=?> unlines [ "[1]" =?> unlines [ "[1]"
, "" , ""