git.iko.soy/typeable/pandoc
on master help sign in
SelfContained: Handle "poster" attribute in "video" tags.
6fda361John MacFarlane
src/Text/Pandoc/SelfContained.hs+10−8
@@ -50,14 +50,16 @@ isOk c = isAscii c && isAlphaNum c
50
50
51convertTag :: Maybe FilePath -> Tag String -> IO (Tag String)
51convertTag :: Maybe FilePath -> Tag String -> IO (Tag String)
52convertTag userdata t@(TagOpen tagname as)
52convertTag userdata t@(TagOpen tagname as)
53− | tagname `elem` ["img", "embed", "video", "input", "audio", "source"] =
53+ | tagname `elem` ["img", "embed", "video", "input", "audio", "source"] = do
54− case fromAttrib "src" t of
54+ as' <- mapM processAttribute as
55− [] -> return t
55+ return $ TagOpen tagname as'
56− src -> do
56+ where processAttribute (x,y) =
57+ if x == "src" || x == "href" || x == "poster"
58+ then do
57− (raw, mime) <- getRaw userdata (fromAttrib "type" t) src
59+ (raw, mime) <- getRaw userdata (fromAttrib "type" t) y
58− let enc = "data:" ++ mime ++ ";base64," ++ toString (encode raw)
60+ let enc = "data:" ++ mime ++ ";base64," ++ toString (encode raw)
59− return $ TagOpen tagname
61+ return (x, enc)
60− (("src",enc) : [(x,y) | (x,y) <- as, x /= "src"])
62+ else return (x,y)
61convertTag userdata t@(TagOpen "script" as) =
63convertTag userdata t@(TagOpen "script" as) =
62 case fromAttrib "src" t of
64 case fromAttrib "src" t of
63 [] -> return t
65 [] -> return t