diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-12-02 18:18:30 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-12-02 18:18:30 -0800 |
commit | 48b7d250bb5cc7656754dbd9288ee30491933397 (patch) | |
tree | 427ebec80603a447c3f3c6487b61d9487804018f /src/Text/Pandoc | |
parent | ad6578f6732a397a453249a5b66e1c5f63a6d847 (diff) | |
parent | d901a3da03ee1cfef09ea3001a2917ce6e2896a2 (diff) | |
download | pandoc-48b7d250bb5cc7656754dbd9288ee30491933397.tar.gz |
Merge pull request #2568 from mb21/readers-images
Textile Reader: image attributes
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/CSS.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Textile.hs | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/Text/Pandoc/CSS.hs b/src/Text/Pandoc/CSS.hs index f829ebf82..2287a5958 100644 --- a/src/Text/Pandoc/CSS.hs +++ b/src/Text/Pandoc/CSS.hs @@ -10,7 +10,7 @@ import Text.Parsec.String ruleParser :: Parser (String, String) ruleParser = do p <- many1 (noneOf ":") <* char ':' - v <- many1 (noneOf ":;") <* char ';' <* spaces + v <- many1 (noneOf ":;") <* (optional $ char ';') <* spaces return (trim p, trim v) styleAttrParser :: Parser [(String, String)] 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 |