From 1fe30eb95bc3219a5c16b90d443f8268cc85456c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 05 Apr 2025 23:24:12 +0800 Subject: [PATCH] Export functions intended to be used in HTML templates --- http_template_funcs.go | 28 ++++++++++++++-------------- resources.go | 10 +++++----- diff --git a/http_template_funcs.go b/http_template_funcs.go index 616afe24654e1d8b28333c7e485a5ee71e52c45d..11e4fadf5d1911868cdae76e44ba1581214d5585 100644 --- a/http_template_funcs.go +++ b/http_template_funcs.go @@ -8,33 +8,33 @@ "net/url" "strings" ) -// These are all trivial functions that are used in HTML templates. -// See resources.go. +// These are all trivial functions that are intended to be used in HTML +// templates. -// firstLine returns the first line of a string. -func firstLine(s string) string { +// FirstLine returns the first line of a string. +func FirstLine(s string) string { before, _, _ := strings.Cut(s, "\n") return before } -// pathEscape escapes the input as an URL path segment. -func pathEscape(s string) string { +// PathEscape escapes the input as an URL path segment. +func PathEscape(s string) string { return url.PathEscape(s) } -// queryEscape escapes the input as an URL query segment. -func queryEscape(s string) string { +// QueryEscape escapes the input as an URL query segment. +func QueryEscape(s string) string { return url.QueryEscape(s) } -// dereference dereferences a pointer. -func dereference[T any](p *T) T { +// Dereference dereferences a pointer. +func Dereference[T any](p *T) T { return *p } -// dereferenceOrZero dereferences a pointer. If the pointer is nil, the zero +// DereferenceOrZero dereferences a pointer. If the pointer is nil, the zero // value of its associated type is returned instead. -func dereferenceOrZero[T any](p *T) T { +func DereferenceOrZero[T any](p *T) T { if p != nil { return *p } @@ -42,7 +42,7 @@ var z T return z } -// minus subtracts two numbers. -func minus(a, b int) int { +// Minus subtracts two numbers. +func Minus(a, b int) int { return a - b } diff --git a/resources.go b/resources.go index 0f2e1a9cff76d15d120b4480b8ef2ef56c054f97..637b8edbea751f1f40aaee20a70d686c7dfa5436 100644 --- a/resources.go +++ b/resources.go @@ -32,11 +32,11 @@ } //exhaustruct:ignore minifier.Add("text/html", &minifierOptions) templates = template.New("templates").Funcs(template.FuncMap{ - "first_line": firstLine, - "path_escape": pathEscape, - "query_escape": queryEscape, - "dereference_error": dereferenceOrZero[error], - "minus": minus, + "first_line": FirstLine, + "path_escape": PathEscape, + "query_escape": QueryEscape, + "dereference_error": DereferenceOrZero[error], + "minus": Minus, }) err = fs.WalkDir(embeddedResourcesFS, "templates", func(path string, d fs.DirEntry, err error) error { -- 2.48.1