37 lines
1017 B
HTML
37 lines
1017 B
HTML
{{ define "main" }}
|
|
|
|
<header>
|
|
<img id="banner" />
|
|
{{- if $.Site.Params.theme_config.show_description -}}
|
|
<p>{{ $.Site.Params.description }}</p>
|
|
{{- end -}}
|
|
</header>
|
|
|
|
{{ if hugo.IsProduction }}
|
|
<!-- prod implementation -->
|
|
<script>
|
|
fetch("/banners/")
|
|
.then((response) => response.text())
|
|
.then((html) => {
|
|
const parser = new DOMParser()
|
|
const doc = parser.parseFromString(html, "text/html")
|
|
const links = Array.from(doc.querySelectorAll('a[href$=".png"]'))
|
|
|
|
if (links.length > 0) {
|
|
const randomIdx = Math.floor(Math.random() * links.length)
|
|
const bannerPath = "/banners/" + links[randomIdx].getAttribute("href")
|
|
document.getElementById("banner").src = bannerPath
|
|
}
|
|
})
|
|
</script>
|
|
{{ else }}
|
|
<!-- dev fallback -->
|
|
<script>
|
|
document.getElementById("banner").src = "/images/banner-placeholder.png"
|
|
</script>
|
|
{{ end }}
|
|
|
|
{{ .Content }}
|
|
{{ partial "menu_item.html" (dict "context" . "collection" $.Site.Data.menu.entries) }}
|
|
|
|
{{ end }} |