diff options
author | Alexander Krotov <ilabdsf@gmail.com> | 2018-05-31 00:57:58 +0300 |
---|---|---|
committer | Alexander Krotov <ilabdsf@gmail.com> | 2018-05-31 01:07:51 +0300 |
commit | 1f78efff3b903158da557dbe83c2350954d40a2e (patch) | |
tree | 65a69547d978da7c1d3a59c0c8df5a2f9353a326 /src/Text/Pandoc | |
parent | f4b71d94f7ddf6d98e4e5f0b3e44051a9d972693 (diff) | |
download | pandoc-1f78efff3b903158da557dbe83c2350954d40a2e.tar.gz |
Muse reader: add support for images with specified width
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/Muse.hs | 13 |
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 |