diff --git a/cstyle/transformers/banda/main.go b/cstyle/transformers/banda/main.go
index 2e84dcf..d01a8a9 100644
--- a/cstyle/transformers/banda/main.go
+++ b/cstyle/transformers/banda/main.go
@@ -32 +32 @@ func Init() cstyle.Transformer {
- AppendChild(n,&before)
+ n.AppendChild(&before)
@@ -34 +34 @@ func Init() cstyle.Transformer {
- InsertBefore(n, &before, n.Children[0])
+ n.InsertBefore(&before, n.Children[0])
@@ -49 +49 @@ func Init() cstyle.Transformer {
- AppendChild(n, &after)
+ n.AppendChild(&after)
@@ -56,22 +55,0 @@ func Init() cstyle.Transformer {
-
-func InsertBefore(n, c, tgt *element.Node) {
- c.Properties.Id = element.GenerateUniqueId(n, c.TagName)
- nodeIndex := -1
- for i, v := range n.Children {
- if v.Properties.Id == tgt.Properties.Id {
- nodeIndex = i
- break
- }
- }
-
- if nodeIndex > 0 {
- n.Children = append(n.Children[:nodeIndex], append([]*element.Node{c}, n.Children[nodeIndex:]...)...)
- } else {
- n.Children = append([]*element.Node{c}, n.Children...)
- }
-}
-
-func AppendChild(n, c *element.Node) {
- c.Properties.Id = element.GenerateUniqueId(n, c.TagName)
- n.Children = append(n.Children, c)
-}
package banda
import (
"grim/cstyle"
"grim/element"
)
func Init() cstyle.Transformer {
return cstyle.Transformer{
Selector: func(n *element.Node, c *cstyle.CSS) bool {
ps := n.StyleSheets.PsuedoStyles[n.Properties.Id]
if ps["::before"] != nil || ps["::after"] != nil {
return true
} else {
return false
}
},
Handler: func(n *element.Node, c *cstyle.CSS) *element.Node {
ps := n.StyleSheets.PsuedoStyles[n.Properties.Id]
if ps["::before"] != nil {
before := n.CreateElement("before")
before.Parent = n
before.Style("display", "inline")
for k, v := range ps["::before"] {
before.Style(k, v)
}
before.InnerText = ps["::before"]["content"][1 : len(ps["::before"]["content"])-1]
if len(n.Children) == 0 {
AppendChild(n,&before)
} else {
InsertBefore(n, &before, n.Children[0])
}
}
if ps["::after"] != nil {
after := n.CreateElement("after")
after.Parent = n
after.Style("display", "inline")
for k, v := range ps["::after"] {
after.Style(k, v)
}
after.InnerText = ps["::after"]["content"][1 : len(ps["::after"]["content"])-1]
AppendChild(n, &after)
}
return n
},
}
}
func InsertBefore(n, c, tgt *element.Node) {
c.Properties.Id = element.GenerateUniqueId(n, c.TagName)
nodeIndex := -1
for i, v := range n.Children {
if v.Properties.Id == tgt.Properties.Id {
nodeIndex = i
break
}
}
if nodeIndex > 0 {
n.Children = append(n.Children[:nodeIndex], append([]*element.Node{c}, n.Children[nodeIndex:]...)...)
} else {
n.Children = append([]*element.Node{c}, n.Children...)
}
}
func AppendChild(n, c *element.Node) {
c.Properties.Id = element.GenerateUniqueId(n, c.TagName)
n.Children = append(n.Children, c)
}