diff --git a/modules/templates/helper.go b/modules/templates/helper.go index b4b260616aec..153a83cf8571 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -43,6 +43,9 @@ import ( // Used from static.go && dynamic.go var mailSubjectSplit = regexp.MustCompile(`(?m)^-{3,}[\s]*$`) +// Generate manfest.json data uri once +var manifestData = makeManifestData() + // NewFuncMap returns functions for injecting to templates func NewFuncMap() []template.FuncMap { return []template.FuncMap{map[string]interface{}{ @@ -88,6 +91,9 @@ func NewFuncMap() []template.FuncMap { "AllowedReactions": func() []string { return setting.UI.Reactions }, + "ManifestData": func() template.URL { + return manifestData + }, "Safe": Safe, "SafeJS": SafeJS, "Str2html": Str2html, @@ -144,7 +150,6 @@ func NewFuncMap() []template.FuncMap { "MD5": base.EncodeMD5, "ActionContent2Commits": ActionContent2Commits, "PathEscape": url.PathEscape, - "QueryEscape": url.QueryEscape, "EscapePound": func(str string) string { return strings.NewReplacer("%", "%25", "#", "%23", " ", "%20", "?", "%3F").Replace(str) }, @@ -921,3 +926,11 @@ func buildSubjectBodyTemplate(stpl *texttmpl.Template, btpl *template.Template, log.Warn("Failed to parse template [%s/body]: %v", name, err) } } + +func makeManifestData() template.URL { + name := url.QueryEscape(setting.AppName) + prefix := url.QueryEscape(setting.StaticURLPrefix) + subUrl := url.QueryEscape(setting.AppSubURL) + "/" + + return template.URL(`data:application/json,{"short_name":"` + name + `","name":"` + name + `","icons":[{"src":"` + prefix + `/img/logo-lg.png","type":"image/png","sizes":"880x880"},{"src":"` + prefix + `/img/logo-sm.png","type":"image/png","sizes":"120x120"},{"src":"` + prefix + `/img/logo-512.png","type":"image/png","sizes":"512x512"},{"src":"` + prefix + `/img/logo-192.png","type":"image/png","sizes":"192x192"}],"start_url":"` + subUrl + `","scope":"` + subUrl + `","background_color":"%23FAFAFA","display":"standalone"}`) +} diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 97e4d9b10a01..3012c47b95e4 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -5,7 +5,7 @@ {{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}} - +