2018-01-08 16:28:39 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="{{ .Site.LanguageCode }}">
|
2019-03-31 13:32:06 +01:00
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<!-- Title -->
|
2020-03-09 17:50:02 +00:00
|
|
|
<title>{{ if .Title }}{{ .Title }} - {{ end }}{{ .Site.Title }}</title>
|
2019-03-31 13:32:06 +01:00
|
|
|
<!-- Meta -->
|
|
|
|
{{- if eq .Kind "page" }}
|
|
|
|
<meta name="description" content="{{ .Summary }}">
|
|
|
|
<meta name="author" content="{{ .Params.author | default .Site.Params.author }}">
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- else }}
|
2019-03-31 13:32:06 +01:00
|
|
|
<meta name="description" content="{{ .Site.Params.description }}">
|
|
|
|
<meta name="author" content="{{ .Site.Params.author }}">
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- end }}
|
2019-03-31 13:32:06 +01:00
|
|
|
<!-- Styles -->
|
2019-08-19 21:12:49 +01:00
|
|
|
<link href="{{ "an-old-hope.min.css" | absURL }}" rel="stylesheet">
|
|
|
|
<link href="{{ "style.css" | absURL }}" rel="stylesheet">
|
2020-03-05 04:30:42 +00:00
|
|
|
<link href="{{ "custom.css" | absURL }}" rel="stylesheet">
|
2019-03-31 13:32:06 +01:00
|
|
|
<!-- Favicons -->
|
2019-08-19 21:12:49 +01:00
|
|
|
<link rel="apple-touch-icon" href="{{ "apple-touch-icon.png" | absURL }}">
|
|
|
|
<link rel="icon" href="{{ "favicon.ico" | absURL }}">
|
2019-03-31 13:32:06 +01:00
|
|
|
<!-- Generator -->
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- hugo.Generator }}
|
2019-03-31 13:32:06 +01:00
|
|
|
<!-- RSS -->
|
2020-05-25 06:42:32 +01:00
|
|
|
{{ range .AlternativeOutputFormats -}}
|
|
|
|
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
|
|
|
|
{{ end -}}
|
2019-06-10 20:29:55 +01:00
|
|
|
<!-- Misc -->
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
|
|
|
|
{{- template "_internal/google_analytics_async.html" . }}
|
|
|
|
{{- template "_internal/opengraph.html" . }}
|
|
|
|
{{- end }}
|
2019-10-15 21:15:16 +01:00
|
|
|
<!-- Script -->
|
|
|
|
<script>
|
|
|
|
function setTheme() {
|
2019-10-16 20:02:35 +01:00
|
|
|
const time = new Date();
|
|
|
|
|
|
|
|
const prev = localStorage.getItem('date');
|
2019-10-20 11:20:15 +01:00
|
|
|
const date = String(time.getMonth() + 1) + '.' + String(time.getDate());
|
2019-10-16 20:02:35 +01:00
|
|
|
|
|
|
|
const now = time.getTime();
|
2019-10-16 04:27:49 +01:00
|
|
|
let sunrise;
|
|
|
|
let sunset;
|
2019-10-15 21:15:16 +01:00
|
|
|
|
2019-10-16 04:27:49 +01:00
|
|
|
function setBodyClass() {
|
2019-10-15 21:15:16 +01:00
|
|
|
if (now > sunrise && now < sunset) return;
|
2019-10-16 20:02:35 +01:00
|
|
|
document.body.classList.add('dark');
|
2019-10-15 21:15:16 +01:00
|
|
|
}
|
|
|
|
|
2019-10-16 20:02:35 +01:00
|
|
|
if (date !== prev) {
|
2019-10-15 21:15:16 +01:00
|
|
|
fetch('https://api.ipgeolocation.io/astronomy?apiKey=5ed37d85103e4defa5df4c5298ed5215')
|
|
|
|
.then(res => res.json())
|
|
|
|
.then(data => {
|
2019-10-16 04:27:49 +01:00
|
|
|
sunrise = data.sunrise.split(':').map(Number);
|
|
|
|
sunset = data.sunset.split(':').map(Number);
|
2019-10-15 21:15:16 +01:00
|
|
|
})
|
|
|
|
.catch(() => {
|
2019-10-16 04:27:49 +01:00
|
|
|
sunrise = [7, 0];
|
|
|
|
sunset = [19, 0];
|
2019-10-15 21:15:16 +01:00
|
|
|
})
|
|
|
|
.finally(() => {
|
2019-10-16 20:02:35 +01:00
|
|
|
sunrise = time.setHours(sunrise[0], sunrise[1], 0);
|
|
|
|
sunset = time.setHours(sunset[0], sunset[1], 0);
|
2019-10-16 04:27:49 +01:00
|
|
|
setBodyClass();
|
2019-10-15 21:15:16 +01:00
|
|
|
localStorage.setItem('sunrise', sunrise);
|
|
|
|
localStorage.setItem('sunset', sunset);
|
|
|
|
});
|
2019-10-16 20:02:35 +01:00
|
|
|
localStorage.setItem('date', date);
|
2019-10-15 21:15:16 +01:00
|
|
|
} else {
|
2019-10-16 04:27:49 +01:00
|
|
|
sunrise = Number(localStorage.getItem('sunrise'));
|
|
|
|
sunset = Number(localStorage.getItem('sunset'));
|
|
|
|
setBodyClass();
|
2019-10-15 21:15:16 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
2019-03-31 13:32:06 +01:00
|
|
|
</head>
|
2020-03-09 15:56:47 +00:00
|
|
|
<body class="{{ if eq .Kind `page` }}single{{ else }}list{{ if .IsHome }} home{{ end }}{{ end }}">
|
2019-10-15 21:15:16 +01:00
|
|
|
<script>
|
|
|
|
setTheme();
|
|
|
|
</script>
|
2019-03-31 13:32:06 +01:00
|
|
|
<header class="header">
|
2019-08-19 21:12:49 +01:00
|
|
|
<nav class="nav">
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- if .IsHome }}
|
2019-06-09 23:59:08 +01:00
|
|
|
<h1 class="logo"><a href="{{ "" | absURL }}">{{ .Site.Title }}</a></h1>
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- else }}
|
2019-06-09 23:59:08 +01:00
|
|
|
<p class="logo"><a href="{{ "" | absURL }}">{{ .Site.Title }}</a></p>
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- end }}
|
|
|
|
{{- if .Site.Menus.main }}
|
2019-08-19 21:12:49 +01:00
|
|
|
<ul class="menu">
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- range .Site.Menus.main }}
|
2019-08-19 21:12:49 +01:00
|
|
|
<li>
|
|
|
|
<a href="{{ .URL }}">{{ .Name }}</a>
|
|
|
|
</li>
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- end }}
|
2019-08-19 21:12:49 +01:00
|
|
|
</ul>
|
2020-03-09 15:56:47 +00:00
|
|
|
{{- end }}
|
2019-08-19 21:12:49 +01:00
|
|
|
</nav>
|
2019-03-31 13:32:06 +01:00
|
|
|
</header>
|
|
|
|
<main class="main">
|