2018-05-05 15:34:13 +00:00
|
|
|
<!doctype html>
|
2017-08-03 16:32:30 +00:00
|
|
|
<html lang="en">
|
|
|
|
<head>
|
2018-05-05 15:34:13 +00:00
|
|
|
<!-- Required meta tags -->
|
2017-08-03 16:32:30 +00:00
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
2018-05-05 15:34:13 +00:00
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
2017-08-03 16:32:30 +00:00
|
|
|
|
2021-09-26 12:49:18 +00:00
|
|
|
{{ range (list "webfonts/fa-solid-900.woff2" "webfonts/fa-brands-400.woff2" "lato-v20-latin-ext_latin-regular.woff2" "lato-v20-latin-ext_latin-700.woff2") }}
|
|
|
|
<link
|
|
|
|
as="font"
|
|
|
|
crossorigin="anonymous"
|
|
|
|
href="{{ . }}"
|
|
|
|
integrity="{{ assetSRI . }}"
|
|
|
|
rel="preload"
|
|
|
|
>
|
|
|
|
{{ end }}
|
|
|
|
|
|
|
|
<link
|
|
|
|
crossorigin="anonymous"
|
2023-06-10 12:50:21 +00:00
|
|
|
href="app.css"
|
|
|
|
integrity="{{ assetSRI `app.css` }}"
|
|
|
|
rel="stylesheet"
|
|
|
|
>
|
|
|
|
|
|
|
|
<link
|
|
|
|
crossorigin="anonymous"
|
2021-09-26 12:49:18 +00:00
|
|
|
href="css/all.min.css"
|
|
|
|
integrity="{{ assetSRI `css/all.min.css` }}"
|
|
|
|
rel="stylesheet"
|
|
|
|
>
|
2018-05-05 15:34:13 +00:00
|
|
|
|
2023-08-10 22:57:30 +00:00
|
|
|
<title>{{ .Customize.AppTitle }}</title>
|
2021-09-16 17:24:36 +00:00
|
|
|
|
2023-06-17 13:05:03 +00:00
|
|
|
<script nonce="{{ .InlineContentNonce }}">
|
2021-09-16 17:24:36 +00:00
|
|
|
window.getTheme = () => localStorage.getItem('set-color-scheme') || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark')
|
|
|
|
|
|
|
|
window.refreshTheme = () => {
|
|
|
|
document.querySelector('html').setAttribute('mode', window.getTheme())
|
|
|
|
}
|
|
|
|
|
|
|
|
window.setTheme = (theme) => {
|
|
|
|
localStorage.setItem('set-color-scheme', theme)
|
|
|
|
window.refreshTheme()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Very early load of theme definition to avoid flickering
|
|
|
|
document.addEventListener('DOMContentLoaded', () => window.refreshTheme())
|
2021-09-26 12:49:18 +00:00
|
|
|
|
|
|
|
// Template variable from Golang process
|
2023-06-26 21:01:06 +00:00
|
|
|
const maxSecretExpire = {{ .MaxSecretExpiry }}
|
2021-09-26 14:47:25 +00:00
|
|
|
const version = "{{ .Version }}"
|
2023-06-10 16:21:38 +00:00
|
|
|
window.OTSCustomize = JSON.parse('{{ .Customize.ToJSON }}')
|
2023-07-05 20:52:09 +00:00
|
|
|
window.useFormalLanguage = {{ .Customize.UseFormalLanguage | mustToJson }}
|
2021-09-16 17:24:36 +00:00
|
|
|
</script>
|
2017-08-03 16:32:30 +00:00
|
|
|
</head>
|
|
|
|
<body>
|
2019-05-10 21:12:00 +00:00
|
|
|
<div id="app"></div>
|
2018-05-05 15:34:13 +00:00
|
|
|
|
2021-09-26 12:49:18 +00:00
|
|
|
<script
|
|
|
|
crossorigin="anonymous"
|
|
|
|
integrity="{{ assetSRI `app.js` }}"
|
|
|
|
src="app.js"
|
|
|
|
></script>
|
2017-08-03 16:32:30 +00:00
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|