funcmap.go 653 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package renderer
  2. import (
  3. "fmt"
  4. "html/template"
  5. "net/url"
  6. "reflect"
  7. "time"
  8. )
  9. var (
  10. funcMap = template.FuncMap{
  11. "query": query,
  12. "convertDate": convertDate,
  13. "model": model,
  14. }
  15. )
  16. func query(values ...string) template.URL {
  17. var urlValues url.Values
  18. urlValues = make(url.Values)
  19. urlValues.Set("format", "html")
  20. for i := 0; i < len(values); i += 2 {
  21. urlValues.Add(values[i], values[i+1])
  22. }
  23. return template.URL(urlValues.Encode())
  24. }
  25. func convertDate(t time.Time) string {
  26. return fmt.Sprintf("%d-%02d-%02d", t.Year(), t.Month(), t.Day())
  27. }
  28. func model(value interface{}) string {
  29. return reflect.ValueOf(model).String()
  30. }