element.go 872 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package element
  2. import (
  3. "git.nspix.com/golang/pgenr/internal/pool"
  4. )
  5. type (
  6. Element interface {
  7. Html() string
  8. }
  9. Attrs map[string]string
  10. )
  11. func renderTag(tag string, attrs Attrs, content string) string {
  12. br := pool.Get()
  13. defer pool.Put(br)
  14. br.WriteString("<" + tag)
  15. if len(attrs) > 0 {
  16. for k, v := range attrs {
  17. br.WriteString(" " + k + "=\"" + v + "\" ")
  18. }
  19. }
  20. br.WriteString(">")
  21. br.WriteString(content)
  22. br.WriteString("</" + tag + ">")
  23. return br.String()
  24. }
  25. func beginTag(tag string, attrs Attrs) string {
  26. br := pool.Get()
  27. defer pool.Put(br)
  28. br.WriteString("<" + tag)
  29. if len(attrs) > 0 {
  30. for k, v := range attrs {
  31. br.WriteString(" " + k + "=\"" + v + "\" ")
  32. }
  33. }
  34. br.WriteString(">")
  35. return br.String()
  36. }
  37. func endTag(tag string) string {
  38. br := pool.Get()
  39. defer pool.Put(br)
  40. br.WriteString("</" + tag + ">")
  41. return br.String()
  42. }