You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

head.tmpl 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <!DOCTYPE html>
  2. <html lang="{{.Lang}}" class="theme-{{.SignedUser.Theme}}">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>{{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}}</title>
  7. <link rel="manifest" href="data:{{.ManifestData}}"/>
  8. <meta name="theme-color" content="{{ThemeColorMetaTag}}">
  9. <meta name="default-theme" content="{{DefaultTheme}}" />
  10. <meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
  11. <meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
  12. <meta name="keywords" content="{{MetaKeywords}}">
  13. <meta name="referrer" content="no-referrer" />
  14. {{if .GoGetImport}}
  15. <meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
  16. <meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
  17. {{end}}
  18. <script>
  19. <!-- /* eslint-disable */ -->
  20. window.config = {
  21. appVer: '{{AppVer}}',
  22. appSubUrl: '{{AppSubUrl}}',
  23. assetUrlPrefix: '{{AssetUrlPrefix}}',
  24. runModeIsProd: {{.RunModeIsProd}},
  25. customEmojis: {{CustomEmojis}},
  26. useServiceWorker: {{UseServiceWorker}},
  27. csrfToken: '{{.CsrfToken}}',
  28. pageData: {{.PageData}},
  29. requireTribute: {{.RequireTribute}},
  30. notificationSettings: {{NotificationSettings}}, {{/*a map provided by NewFuncMap in helper.go*/}}
  31. enableTimeTracking: {{EnableTimetracking}},
  32. {{if .RequireTribute}}
  33. tributeValues: Array.from(new Map([
  34. {{ range .Participants }}
  35. ['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
  36. name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
  37. {{ end }}
  38. {{ range .Assignees }}
  39. ['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
  40. name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
  41. {{ end }}
  42. {{ range .MentionableTeams }}
  43. ['{{$.MentionableTeamsOrg}}/{{.Name}}', {key: '{{$.MentionableTeamsOrg}}/{{.Name}}', value: '{{$.MentionableTeamsOrg}}/{{.Name}}',
  44. name: '{{$.MentionableTeamsOrg}}/{{.Name}}', avatar: '{{$.MentionableTeamsOrgAvatar}}'}],
  45. {{ end }}
  46. ]).values()),
  47. {{end}}
  48. mermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
  49. i18n: {
  50. copy_success: '{{.i18n.Tr "copy_success"}}',
  51. copy_error: '{{.i18n.Tr "copy_error"}}',
  52. }
  53. };
  54. {{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
  55. window.config.pageData = window.config.pageData || {};
  56. </script>
  57. <link rel="icon" href="{{AssetUrlPrefix}}/img/logo.svg" type="image/svg+xml">
  58. <link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
  59. {{if .RequireSimpleMDE}}
  60. <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/easymde.css?v={{MD5 AppVer}}">
  61. {{end}}
  62. <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/index.css?v={{MD5 AppVer}}">
  63. <noscript>
  64. <style>
  65. .dropdown:hover > .menu { display: block; }
  66. .ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
  67. </style>
  68. </noscript>
  69. {{if .PageIsUserProfile}}
  70. <meta property="og:title" content="{{.Owner.Name}}" />
  71. <meta property="og:type" content="profile" />
  72. <meta property="og:image" content="{{.Owner.AvatarLink}}" />
  73. <meta property="og:url" content="{{.Owner.HTMLURL}}" />
  74. {{if .Owner.Description}}
  75. <meta property="og:description" content="{{.Owner.Description}}">
  76. {{end}}
  77. {{else if .Repository}}
  78. {{if .Issue}}
  79. <meta property="og:title" content="{{.Issue.Title}}" />
  80. <meta property="og:url" content="{{.Issue.HTMLURL}}" />
  81. {{if .Issue.Content}}
  82. <meta property="og:description" content="{{.Issue.Content}}" />
  83. {{end}}
  84. {{else}}
  85. <meta property="og:title" content="{{.Repository.Name}}" />
  86. <meta property="og:url" content="{{.Repository.HTMLURL}}" />
  87. {{if .Repository.Description}}
  88. <meta property="og:description" content="{{.Repository.Description}}" />
  89. {{end}}
  90. {{end}}
  91. <meta property="og:type" content="object" />
  92. {{if .Repository.AvatarLink}}
  93. <meta property="og:image" content="{{.Repository.AvatarLink}}" />
  94. {{else}}
  95. <meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
  96. {{end}}
  97. {{else}}
  98. <meta property="og:title" content="{{AppName}}">
  99. <meta property="og:type" content="website" />
  100. <meta property="og:image" content="{{AssetUrlPrefix}}/img/logo.png" />
  101. <meta property="og:url" content="{{AppUrl}}" />
  102. <meta property="og:description" content="{{MetaDescription}}">
  103. {{end}}
  104. <meta property="og:site_name" content="{{AppName}}" />
  105. {{if .IsSigned }}
  106. {{ if ne .SignedUser.Theme "gitea" }}
  107. <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{.SignedUser.Theme | PathEscape}}.css?v={{MD5 AppVer}}">
  108. {{end}}
  109. {{else if ne DefaultTheme "gitea"}}
  110. <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{DefaultTheme | PathEscape}}.css?v={{MD5 AppVer}}">
  111. {{end}}
  112. {{template "custom/header" .}}
  113. </head>
  114. <body>
  115. {{template "custom/body_outer_pre" .}}
  116. <div class="full height">
  117. <noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
  118. {{template "custom/body_inner_pre" .}}
  119. {{if not .PageIsInstall}}
  120. <div class="ui top secondary stackable main menu following bar light">
  121. {{template "base/head_navbar" .}}
  122. </div><!-- end bar -->
  123. {{end}}
  124. {{if false}}
  125. {{/* to make html structure "likely" complete to prevent IDE warnings */}}
  126. </div>
  127. </body>
  128. </html>
  129. {{end}}