diff --git a/docs/custom-api.md b/docs/custom-api.md index 99e3a5e..1930f40 100644 --- a/docs/custom-api.md +++ b/docs/custom-api.md @@ -389,6 +389,7 @@ The following helper functions provided by Glance are available: - `trimSuffix(suffix string, str string) string`: Trims the suffix from a string. - `trimSpace(str string) string`: Trims whitespace from a string on both ends. - `replaceAll(old string, new string, str string) string`: Replaces all occurrences of a string in a string. +- `replaceMatches(pattern string, replacement string, str string) string`: Replaces all occurrences of a regular expression in a string. - `findMatch(pattern string, str string) string`: Finds the first match of a regular expression in a string. - `findSubmatch(pattern string, str string) string`: Finds the first submatch of a regular expression in a string. - `sortByString(key string, order string, arr []JSON): []JSON`: Sorts an array of JSON objects by a string key in either ascending or descending order. diff --git a/internal/glance/widget-custom-api.go b/internal/glance/widget-custom-api.go index c9db2df..5d82c5a 100644 --- a/internal/glance/widget-custom-api.go +++ b/internal/glance/widget-custom-api.go @@ -471,6 +471,13 @@ var customAPITemplateFuncs = func() template.FuncMap { "replaceAll": func(old, new, s string) string { return strings.ReplaceAll(s, old, new) }, + "replaceMatches": func(pattern, replacement, s string) string { + if s == "" { + return "" + } + + return getCachedRegexp(pattern).ReplaceAllString(s, replacement) + }, "findMatch": func(pattern, s string) string { if s == "" { return ""