12345678910111213141516171819202122232425262728293031323334353637383940 |
- package element
- import (
- "golang.org/x/net/html/atom"
- "html"
- )
- type (
- TagOption func(t *element)
- element struct {
- Name atom.Atom
- Attr Attrs
- Content string
- }
- )
- func WithTagAttribute(label string, value string) TagOption {
- return func(t *element) {
- if t.Attr == nil {
- t.Attr = make(map[string]string)
- }
- t.Attr[label] = value
- }
- }
- func (tag *element) Html() string {
- return tag.String()
- }
- func (tag *element) String() string {
- return renderTag(tag.Name.String(), tag.Attr, html.EscapeString(tag.Content))
- }
- func NewElement(atom atom.Atom, content string, opts ...TagOption) *element {
- e := &element{Name: atom, Content: content}
- for _, cb := range opts {
- cb(e)
- }
- return e
- }
|