// PrependChildren creates a TransformFunc that prepends the Children passed in. func PrependChildren(cs ...*html.Node) TransformFunc { return func(n *html.Node) { for _, c := range cs { n.InsertBefore(h5.CloneNode(c), n.FirstChild) } } }
// ReplaceChildren creates a TransformFunc that replaces the Children of the // node it operates on with the Children passed in. func ReplaceChildren(ns ...*html.Node) TransformFunc { return func(n *html.Node) { removeChildren(n) for _, c := range ns { n.AppendChild(h5.CloneNode(c)) } } }
// CopyAnd will construct a TransformFunc that will // make a copy of the node for each passed in TransformFunc // and replace the passed in node with the resulting transformed // html.Nodes. func CopyAnd(fns ...TransformFunc) TransformFunc { return func(n *html.Node) { for _, fn := range fns { node := h5.CloneNode(n) n.Parent.InsertBefore(node, n) fn(node) } n.Parent.RemoveChild(n) } }
// AppendChildren creates a TransformFunc that appends the Children passed in. func AppendChildren(cs ...*html.Node) TransformFunc { return func(n *html.Node) { for _, c := range cs { if c.Parent != nil { c.Parent.RemoveChild(c) } n.AppendChild(h5.CloneNode(c)) } } }