diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Org/Blocks.hs | 14 | ||||
-rw-r--r-- | tests/Tests/Readers/Org.hs | 6 |
2 files changed, 14 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 = diff --git a/tests/Tests/Readers/Org.hs b/tests/Tests/Readers/Org.hs index 1b536551c..882701644 100644 --- a/tests/Tests/Readers/Org.hs +++ b/tests/Tests/Readers/Org.hs @@ -196,6 +196,12 @@ tests = "[[file:sunrise.jpg]]" =?> (para $ image "sunrise.jpg" "" "") + , "Image with html attributes" =: + unlines [ "#+ATTR_HTML: :width 50%" + , "[[file:guinea-pig.gif]]" + ] =?> + (para $ imageWith ("", [], [("width", "50%")]) "guinea-pig.gif" "" "") + , "Explicit link" =: "[[http://zeitlens.com/][pseudo-random /nonsense/]]" =?> (para $ link "http://zeitlens.com/" "" |