functions.go 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package functions
  2. import (
  3. "html/template"
  4. "strconv"
  5. "strings"
  6. "time"
  7. "git.dmitriygnatenko.ru/dima/dmitriygnatenko-v2/internal/services/config"
  8. "git.dmitriygnatenko.ru/dima/dmitriygnatenko-v2/internal/services/i18n"
  9. )
  10. type ServiceProvider interface {
  11. ConfigService() *config.Service
  12. }
  13. func Now() time.Time {
  14. return time.Now()
  15. }
  16. func NoEscape(str string) template.HTML {
  17. return template.HTML(str)
  18. }
  19. func Concat(parts ...string) string {
  20. return strings.Join(parts, "")
  21. }
  22. func GridSep(i, l int) bool {
  23. i++
  24. return i%3 == 0 && i != l
  25. }
  26. func Version(sp ServiceProvider) func() string {
  27. return func() string {
  28. return strconv.FormatUint(uint64(sp.ConfigService().StaticVersion()), 10)
  29. }
  30. }
  31. func Trans(lang i18n.Language, key string) string {
  32. return i18n.T(lang, key)
  33. }
  34. func Link(lang i18n.Language, link string) string {
  35. if lang == i18n.DefaultLanguage() {
  36. return link
  37. }
  38. if link == "/" {
  39. return "/" + string(lang)
  40. }
  41. return "/" + string(lang) + link
  42. }