package url import "net/url" import "html/template" import "git.tebibyte.media/sashakoshka/step" var _ step.FuncProvider = new(Provider) // Provider provides URL functions. type Provider struct { } // FuncMap fulfills the step.FuncProvider interface. func (this *Provider) FuncMap () template.FuncMap { return template.FuncMap { "parseQuery": funcParseQuery, } } func funcParseQuery (query string) url.Values { // wrapped here because the query might contain all sorts of nonsense, // and returning an error in a template function causes everything to // stop rather ungracefully values, err := url.ParseQuery(query) if err != nil { values = make(url.Values) } return values }