aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-05-31 00:57:58 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-05-31 01:07:51 +0300
commit1f78efff3b903158da557dbe83c2350954d40a2e (patch)
tree65a69547d978da7c1d3a59c0c8df5a2f9353a326 /src/Text
parentf4b71d94f7ddf6d98e4e5f0b3e44051a9d972693 (diff)
downloadpandoc-1f78efff3b903158da557dbe83c2350954d40a2e.tar.gz
Muse reader: add support for images with specified width
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/Muse.hs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs
index 9eda0d4f3..72909dc4d 100644
--- a/src/Text/Pandoc/Readers/Muse.hs
+++ b/src/Text/Pandoc/Readers/Muse.hs
@@ -35,7 +35,7 @@ TODO:
- Page breaks (five "*")
- Org tables
- table.el tables
-- Images with attributes (floating and width)
+- Floating images
- <cite> tag
-}
module Text.Pandoc.Readers.Muse (readMuse) where
@@ -50,7 +50,7 @@ import Data.List (intercalate)
import Data.List.Split (splitOn)
import qualified Data.Map as M
import qualified Data.Set as Set
-import Data.Maybe (fromMaybe, isNothing)
+import Data.Maybe (fromMaybe, isNothing, maybeToList)
import Data.Text (Text, unpack)
import Text.HTML.TagSoup
import Text.Pandoc.Builder (Blocks, Inlines)
@@ -965,13 +965,18 @@ explicitLink = try $ do
image :: PandocMonad m => MuseParser m (F Inlines)
image = try $ do
string "[["
- (url, ext) <- manyUntil (noneOf "]") $ (imageExtension <* char ']')
+ (url, (ext, width)) <- manyUntil (noneOf "]") $ (imageExtensionAndOptions <* char ']')
content <- optionMaybe linkContent
char ']'
- return $ B.image (url ++ ext) "" <$> fromMaybe (return mempty) content
+ let widthAttr = maybeToList (("width",) . (++ "%") <$> width)
+ return $ B.imageWith ("", [], widthAttr) (url ++ ext) mempty <$> fromMaybe (return mempty) content
where -- Taken from muse-image-regexp defined in Emacs Muse file lisp/muse-regexps.el
imageExtensions = [".eps", ".gif", ".jpg", ".jpeg", ".pbm", ".png", ".tiff", ".xbm", ".xpm"]
imageExtension = choice (try . string <$> imageExtensions)
+ imageExtensionAndOptions = do
+ ext <- imageExtension
+ width <- optionMaybe (many1 spaceChar *> many1 digit)
+ return (ext, width)
link :: PandocMonad m => MuseParser m (F Inlines)
link = try $ do