summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormb21 <mb21@users.noreply.github.com>2015-12-03 00:06:18 +0100
committermb21 <mb21@users.noreply.github.com>2015-12-03 00:06:18 +0100
commitd901a3da03ee1cfef09ea3001a2917ce6e2896a2 (patch)
tree427ebec80603a447c3f3c6487b61d9487804018f /src
parent1f379da94beeb52c5899ee920f2d19416422f570 (diff)
Textile Reader: image attributes
closes #2515
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/Readers/Textile.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs
index 3db01faf4..502595e0b 100644
--- a/src/Text/Pandoc/Readers/Textile.hs
+++ b/src/Text/Pandoc/Readers/Textile.hs
@@ -51,6 +51,7 @@ TODO : refactor common patterns across readers :
module Text.Pandoc.Readers.Textile ( readTextile) where
+import Text.Pandoc.CSS
import Text.Pandoc.Definition
import Text.Pandoc.Builder (Inlines, Blocks, trimInlines)
import qualified Text.Pandoc.Builder as B
@@ -535,11 +536,17 @@ link = try $ do
image :: Parser [Char] ParserState Inlines
image = try $ do
char '!' >> notFollowedBy space
- _ <- attributes -- ignore for now, until we have image attributes
+ (ident, cls, kvs) <- attributes
+ let getAtt k styles = case pickStyleAttrProps [k] styles of
+ Just v -> [(k, v)]
+ Nothing -> []
+ let attr = case lookup "style" kvs of
+ Just stls -> (ident, cls, getAtt "width" stls ++ getAtt "height" stls)
+ Nothing -> (ident, cls, kvs)
src <- manyTill anyChar' (lookAhead $ oneOf "!(")
alt <- option "" (try $ (char '(' >> manyTill anyChar' (char ')')))
char '!'
- return $ B.image src alt (B.str alt)
+ return $ B.imageWith attr src alt (B.str alt)
escapedInline :: Parser [Char] ParserState Inlines
escapedInline = escapedEqs <|> escapedTag