diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2016-11-09 22:49:20 +0100 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2016-11-09 22:49:20 +0100 |
commit | 7e5220b57c5a48fabe6e43ba270db812593d3463 (patch) | |
tree | fbd2754b01503e766413b312770c39251fde8f57 /src/Text/Pandoc/Readers/Org | |
parent | 13bc573e7f9e0602404dd37fec2c7cd14b5c56ee (diff) | |
download | pandoc-7e5220b57c5a48fabe6e43ba270db812593d3463.tar.gz |
Org reader: allow HTML attribs on non-figure images
Images which are the only element in a paragraph can still be given HTML
attributes, even if the image does not have a caption and is hence not a figure.
The following will add set the `width` attribute of the image to `50%`:
#+ATTR_HTML: :width 50%
[[file:image.jpg]]
Closes: #3222
Diffstat (limited to 'src/Text/Pandoc/Readers/Org')
-rw-r--r-- | src/Text/Pandoc/Readers/Org/Blocks.hs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs index d42e93d78..481684600 100644 --- a/src/Text/Pandoc/Readers/Org/Blocks.hs +++ b/src/Text/Pandoc/Readers/Org/Blocks.hs @@ -618,7 +618,8 @@ propertiesDrawer = try $ do -- Figures -- --- | Figures (Image on a line by itself, preceded by name and/or caption) +-- | Figures or an image paragraph (i.e. an image on a line by itself). Only +-- images with a caption attribute are interpreted as figures. figure :: OrgParser (F Blocks) figure = try $ do figAttrs <- blockAttributes @@ -626,23 +627,24 @@ figure = try $ do case cleanLinkString src of Nothing -> mzero Just imgSrc -> do - guard (not . isNothing . blockAttrCaption $ figAttrs) guard (isImageFilename imgSrc) - return $ figureBlock figAttrs imgSrc + let isFigure = not . isNothing $ blockAttrCaption figAttrs + return $ imageBlock isFigure figAttrs imgSrc where selfTarget :: OrgParser String selfTarget = try $ char '[' *> linkTarget <* char ']' - figureBlock :: BlockAttributes -> String -> (F Blocks) - figureBlock figAttrs imgSrc = + imageBlock :: Bool -> BlockAttributes -> String -> F Blocks + imageBlock isFigure figAttrs imgSrc = let figName = fromMaybe mempty $ blockAttrName figAttrs figLabel = fromMaybe mempty $ blockAttrLabel figAttrs figCaption = fromMaybe mempty $ blockAttrCaption figAttrs figKeyVals = blockAttrKeyValues figAttrs attr = (figLabel, mempty, figKeyVals) + figTitle = (if isFigure then withFigPrefix else id) figName in - B.para . B.imageWith attr imgSrc (withFigPrefix figName) <$> figCaption + B.para . B.imageWith attr imgSrc figTitle <$> figCaption withFigPrefix :: String -> String withFigPrefix cs = |