mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-24 10:46:10 +01:00
3a21f8a986
* Inline manifest.json Improve performance by eliminating this separate request and just inline this small JSON in HTML directly as a data uri. Also update previously static app name scripts to use AppName. I've confirmed this as working via "Add to Homescreen" feature which offered to save the shortcut under the new app name. * prerender manifest data on startup * move to settings * restore setting.AppStartTime and use it on admin page * use double quotes because template.URL escapes everything * fix lint * move variable to global context variable * delete template file Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: zeripath <art27@cantab.net>
143 lines
5.8 KiB
Handlebars
143 lines
5.8 KiB
Handlebars
<!DOCTYPE html>
|
|
<html lang="{{.Language}}" class="theme-{{.SignedUser.Theme}}">
|
|
<head data-suburl="{{AppSubUrl}}">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<title>{{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}} </title>
|
|
<link rel="manifest" href="{{.ManifestData}}"/>
|
|
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
|
|
<meta name="default-theme" content="{{DefaultTheme}}" />
|
|
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
|
|
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
|
|
<meta name="keywords" content="{{MetaKeywords}}">
|
|
<meta name="referrer" content="no-referrer" />
|
|
<meta name="_csrf" content="{{.CsrfToken}}" />
|
|
{{if .IsSigned}}
|
|
<meta name="_uid" content="{{.SignedUser.ID}}" />
|
|
{{end}}
|
|
{{if .ContextUser}}
|
|
<meta name="_context_uid" content="{{.ContextUser.ID}}" />
|
|
{{end}}
|
|
{{if .SearchLimit}}
|
|
<meta name="_search_limit" content="{{.SearchLimit}}" />
|
|
{{end}}
|
|
{{if .GoGetImport}}
|
|
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
|
|
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
|
|
{{end}}
|
|
<script>
|
|
window.config = {
|
|
AppVer: '{{AppVer}}',
|
|
AppSubUrl: '{{AppSubUrl}}',
|
|
StaticUrlPrefix: '{{StaticUrlPrefix}}',
|
|
UseServiceWorker: {{UseServiceWorker}},
|
|
csrf: '{{.CsrfToken}}',
|
|
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
|
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
|
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
|
U2F: {{if .RequireU2F}}true{{else}}false{{end}},
|
|
NotificationSettings: {
|
|
MinTimeout: {{NotificationSettings.MinTimeout}},
|
|
TimeoutStep: {{NotificationSettings.TimeoutStep}},
|
|
MaxTimeout: {{NotificationSettings.MaxTimeout}},
|
|
EventSourceUpdateTime: {{NotificationSettings.EventSourceUpdateTime}},
|
|
},
|
|
PageIsProjects: {{if .PageIsProjects }}true{{else}}false{{end}},
|
|
{{if .RequireTribute}}
|
|
tributeValues: Array.from(new Map([
|
|
{{ range .Participants }}
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.RelAvatarLink}}'}],
|
|
{{ end }}
|
|
{{ range .Assignees }}
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.RelAvatarLink}}'}],
|
|
{{ end }}
|
|
{{ range .MentionableTeams }}
|
|
['{{$.MentionableTeamsOrg}}/{{.Name}}', {key: '{{$.MentionableTeamsOrg}}/{{.Name}}', value: '{{$.MentionableTeamsOrg}}/{{.Name}}',
|
|
name: '{{$.MentionableTeamsOrg}}/{{.Name}}', avatar: '{{$.MentionableTeamsOrgAvator}}'}],
|
|
{{ end }}
|
|
]).values()),
|
|
{{end}}
|
|
};
|
|
</script>
|
|
<link rel="icon" href="{{StaticUrlPrefix}}/img/favicon.svg" type="image/svg+xml">
|
|
<link rel="alternate icon" href="{{StaticUrlPrefix}}/img/favicon.png" type="image/png">
|
|
<link rel="mask-icon" href="{{StaticUrlPrefix}}/img/logo-safari.svg" color="#609926">
|
|
<link rel="fluid-icon" href="{{StaticUrlPrefix}}/img/logo-lg.png" title="{{AppName}}">
|
|
{{if .RequireSimpleMDE}}
|
|
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/easymde.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}">
|
|
<noscript>
|
|
<style>
|
|
.dropdown:hover > .menu { display: block; }
|
|
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
|
</style>
|
|
</noscript>
|
|
<style class="list-search-style"></style>
|
|
{{if .PageIsUserProfile}}
|
|
<meta property="og:title" content="{{.Owner.Name}}" />
|
|
<meta property="og:type" content="profile" />
|
|
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
|
|
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
|
|
{{if .Owner.Description}}
|
|
<meta property="og:description" content="{{.Owner.Description}}">
|
|
{{end}}
|
|
{{else if .Repository}}
|
|
{{if .Issue}}
|
|
<meta property="og:title" content="{{.Issue.Title}}" />
|
|
<meta property="og:url" content="{{.Issue.HTMLURL}}" />
|
|
{{if .Issue.Content}}
|
|
<meta property="og:description" content="{{.Issue.Content}}" />
|
|
{{end}}
|
|
{{else}}
|
|
<meta property="og:title" content="{{.Repository.Name}}" />
|
|
<meta property="og:url" content="{{.Repository.HTMLURL}}" />
|
|
{{if .Repository.Description}}
|
|
<meta property="og:description" content="{{.Repository.Description}}" />
|
|
{{end}}
|
|
{{end}}
|
|
<meta property="og:type" content="object" />
|
|
{{if .Repository.AvatarLink}}
|
|
<meta property="og:image" content="{{.Repository.AvatarLink}}" />
|
|
{{else}}
|
|
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
|
|
{{end}}
|
|
{{else}}
|
|
<meta property="og:title" content="{{AppName}}">
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:image" content="{{StaticUrlPrefix}}/img/logo-lg.png" />
|
|
<meta property="og:url" content="{{AppUrl}}" />
|
|
<meta property="og:description" content="{{MetaDescription}}">
|
|
{{end}}
|
|
<meta property="og:site_name" content="{{AppName}}" />
|
|
{{if .IsSigned }}
|
|
{{ if ne .SignedUser.Theme "gitea" }}
|
|
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/theme-{{.SignedUser.Theme}}.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
{{else if ne DefaultTheme "gitea"}}
|
|
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/theme-{{DefaultTheme}}.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
{{template "custom/header" .}}
|
|
</head>
|
|
<body>
|
|
{{template "custom/body_outer_pre" .}}
|
|
|
|
<div class="full height">
|
|
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
|
|
|
|
{{template "custom/body_inner_pre" .}}
|
|
|
|
{{if not .PageIsInstall}}
|
|
<div class="ui top secondary stackable main menu following bar light">
|
|
{{template "base/head_navbar" .}}
|
|
</div><!-- end bar -->
|
|
{{end}}
|
|
{{/*
|
|
</div>
|
|
</body>
|
|
</html>
|
|
*/}}
|