package banda import ( "grim" ) func Init() grim.Transformer { return grim.Transformer{ Selector: func(n *grim.Node, c *grim.CSS) bool { ps := n.StyleSheets.PsuedoStyles[n.Properties.Id] if ps["::before"] != nil || ps["::after"] != nil { return true } else { return false } }, Handler: func(n *grim.Node, c *grim.CSS) *grim.Node { ps := n.StyleSheets.PsuedoStyles[n.Properties.Id] if ps["::before"] != nil { before := n.CreateElement("before") if len(n.Children) == 0 { n.AppendChild(&before) } else { n.InsertBefore(&before, n.Children[0]) } before.SetStyle("display", "inline") for k, v := range ps["::before"] { before.SetStyle(k, v) } before.InnerText(ps["::before"]["content"][1 : len(ps["::before"]["content"])-1]) } if ps["::after"] != nil { after := n.CreateElement("after") n.AppendChild(&after) after.SetStyle("display", "inline") for k, v := range ps["::after"] { after.SetStyle(k, v) } after.InnerText(ps["::after"]["content"][1 : len(ps["::after"]["content"])-1]) } return n }, } }