1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package element
- import (
- "git.nspix.com/golang/pgenr/internal/pool"
- "golang.org/x/net/html/atom"
- )
- type (
- Entry struct {
- Title Element
- Items map[string]Element
- }
- )
- func (element *Entry) Html() string {
- return element.String()
- }
- func (element *Entry) String() string {
- br := pool.Get()
- defer pool.Put(br)
- br.WriteString(beginTag(atom.Div.String(), Attrs{"class": "grid"}))
- if element.Title != nil {
- br.WriteString(element.Title.Html())
- }
- for k, v := range element.Items {
- br.WriteString(beginTag(atom.Div.String(), Attrs{"class": "row"}))
- br.WriteString(beginTag(atom.Div.String(), Attrs{"class": "preview-label"}))
- br.WriteString(k)
- br.WriteString(endTag(atom.Div.String()))
- br.WriteString(beginTag(atom.Div.String(), Attrs{"class": "preview-value"}))
- br.WriteString(v.Html())
- br.WriteString(endTag(atom.Div.String()))
- br.WriteString(endTag(atom.Div.String()))
- }
- br.WriteString(endTag(atom.Div.String()))
- return br.String()
- }
- func (element *Entry) AddItem(label string, txt *Text) *Entry {
- if element.Items == nil {
- element.Items = make(map[string]Element)
- }
- element.Items[label] = txt
- return element
- }
- func NewEntry(title string) *Entry {
- return &Entry{
- Title: NewText(title, WithTextTag(atom.P)),
- Items: make(map[string]Element),
- }
- }
|