Skip to content

Commit 47f4362

Browse files
committed
prerender manifest data on startup
1 parent 6d1adec commit 47f4362

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

modules/templates/helper.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ import (
4343
// Used from static.go && dynamic.go
4444
var mailSubjectSplit = regexp.MustCompile(`(?m)^-{3,}[\s]*$`)
4545

46+
// Generate manfest.json data uri once
47+
var manifestData = makeManifestData()
48+
4649
// NewFuncMap returns functions for injecting to templates
4750
func NewFuncMap() []template.FuncMap {
4851
return []template.FuncMap{map[string]interface{}{
@@ -88,6 +91,9 @@ func NewFuncMap() []template.FuncMap {
8891
"AllowedReactions": func() []string {
8992
return setting.UI.Reactions
9093
},
94+
"ManifestData": func() template.URL {
95+
return manifestData
96+
},
9197
"Safe": Safe,
9298
"SafeJS": SafeJS,
9399
"Str2html": Str2html,
@@ -144,7 +150,6 @@ func NewFuncMap() []template.FuncMap {
144150
"MD5": base.EncodeMD5,
145151
"ActionContent2Commits": ActionContent2Commits,
146152
"PathEscape": url.PathEscape,
147-
"QueryEscape": url.QueryEscape,
148153
"EscapePound": func(str string) string {
149154
return strings.NewReplacer("%", "%25", "#", "%23", " ", "%20", "?", "%3F").Replace(str)
150155
},
@@ -921,3 +926,11 @@ func buildSubjectBodyTemplate(stpl *texttmpl.Template, btpl *template.Template,
921926
log.Warn("Failed to parse template [%s/body]: %v", name, err)
922927
}
923928
}
929+
930+
func makeManifestData() template.URL {
931+
name := url.QueryEscape(setting.AppName)
932+
prefix := url.QueryEscape(setting.StaticURLPrefix)
933+
subUrl := url.QueryEscape(setting.AppSubURL) + "/"
934+
935+
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"}`)
936+
}

templates/base/head.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1">
66
<meta http-equiv="x-ua-compatible" content="ie=edge">
77
<title>{{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}} </title>
8-
<link rel="manifest" href='data:application/json,{"short_name":"{{QueryEscape AppName}}","name":"{{QueryEscape AppName}}","icons":[{"src":"{{QueryEscape StaticUrlPrefix}}/img/logo-lg.png","type":"image/png","sizes":"880x880"},{"src":"{{QueryEscape StaticUrlPrefix}}/img/logo-sm.png","type":"image/png","sizes":"120x120"},{"src":"{{QueryEscape StaticUrlPrefix}}/img/logo-512.png","type":"image/png","sizes":"512x512"},{"src":"{{QueryEscape StaticUrlPrefix}}/img/logo-192.png","type":"image/png","sizes":"192x192"}],"start_url":"{{QueryEscape AppSubUrl}}/","scope":"{{QueryEscape AppSubUrl}}/","background_color":"%23FAFAFA","display":"standalone"}'/>
8+
<link rel="manifest" href='{{ManifestData}}'/>
99
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
1010
<meta name="default-theme" content="{{DefaultTheme}}" />
1111
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />

0 commit comments

Comments
 (0)