{-# LANGUAGE OverloadedStrings #-} import Text.Blaze.Svg11 ((!), mkPath, rotate, l, m) import qualified Text.Blaze.Svg11 as S import qualified Text.Blaze.Svg11.Attributes as A import Text.Blaze.Svg.Renderer.String (renderSvg) main :: IO () main = do let a = renderSvg svgDoc putStrLn a svgDoc :: S.Svg svgDoc = S.docTypeSvg ! A.version "1.1" ! A.width "150" ! A.height "100" ! A.viewbox "0 0 3 2" $ do S.g ! A.transform makeTransform $ do S.rect ! A.width "1" ! A.height "2" ! A.fill "#008d46" S.rect ! A.width "1" ! A.height "2" ! A.fill "#ffffff" S.rect ! A.width "1" ! A.height "2" ! A.fill "#d2232c" S.path ! A.d makePath makePath :: S.AttributeValue makePath = mkPath $ do l 2 3 m 4 5 makeTransform :: S.AttributeValue makeTransform = rotate 50