From 201d3479cd6704a28ed41ec882d8b3983559a1eb Mon Sep 17 00:00:00 2001 From: mkelvers Date: Tue, 23 Jun 2026 17:32:18 +0200 Subject: [PATCH] feat: add formatnumber template function --- templates/funcs.go | 13 +++++++++++++ templates/renderer.go | 1 + 2 files changed, 14 insertions(+) diff --git a/templates/funcs.go b/templates/funcs.go index 8507934..f77f371 100644 --- a/templates/funcs.go +++ b/templates/funcs.go @@ -279,6 +279,19 @@ func percent(current, total float64) float64 { return (current / total) * 100 } +func formatNumber(n int) string { + if n == 0 { + return "" + } + s := fmt.Sprintf("%d", n) + var parts []string + for i := len(s); i > 0; i -= 3 { + start := max(i-3, 0) + parts = append([]string{s[start:i]}, parts...) + } + return strings.Join(parts, " ") +} + func formatDate(dateStr string) string { t, err := time.Parse(time.RFC3339, dateStr) if err != nil { diff --git a/templates/renderer.go b/templates/renderer.go index 1d3ce4f..1b1ac37 100644 --- a/templates/renderer.go +++ b/templates/renderer.go @@ -65,6 +65,7 @@ func rendererFuncs() template.FuncMap { "min": func(a, b int) int { return min(a, b) }, "int": toInt, "percent": percent, + "formatNumber": formatNumber, "formatDate": formatDate, "nextSort": nextSort, "urlquery": url.QueryEscape,