From dc128028e64f6413fa3b191b97c9f76471c21a63 Mon Sep 17 00:00:00 2001 From: atosatto Date: Sun, 10 Feb 2019 22:34:19 +0100 Subject: [PATCH] feat: add the contains, hasPrefix, hasSuffix, replace, lower and upper functions to the template functions map This PR adds the strings.Contains, strings.HasPrefix, strings.HasSuffix, strings.Replace, strings.Lower and strings.Upper to the set of functions available for usage in the changelog template. The added functions can be used to manipulate commit messages before rendering the changelog. --- chglog.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/chglog.go b/chglog.go index d6164e8b..fbe86fa2 100644 --- a/chglog.go +++ b/chglog.go @@ -7,6 +7,7 @@ import ( "io" "os" "path/filepath" + "strings" "text/template" "time" @@ -302,9 +303,34 @@ func (gen *Generator) render(w io.Writer, unreleased *Unreleased, versions []*Ve } fmap := template.FuncMap{ + // format the input time according to layout "datetime": func(layout string, input time.Time) string { return input.Format(layout) }, + // check whether substs is withing s + "contains": func(s, substr string) bool { + return strings.Contains(s, substr) + }, + // check whether s begins with prefix + "hasPrefix": func(s, prefix string) bool { + return strings.HasPrefix(s, prefix) + }, + // check whether s ends with suffix + "hasSuffix": func(s, suffix string) bool { + return strings.HasSuffix(s, suffix) + }, + // replace the first n instances of old with new + "replace": func(s, old, new string, n int) string { + return strings.Replace(s, old, new, n) + }, + // lower case a string + "lower": func(s string) string { + return strings.ToLower(s) + }, + // upper case a string + "upper": func(s string) string { + return strings.ToUpper(s) + }, } fname := filepath.Base(gen.config.Template)