diff options
author | Thorsten Ortlepp <post@ortlepp.eu> | 2024-12-12 01:19:00 +0100 |
---|---|---|
committer | Thorsten Ortlepp <post@ortlepp.eu> | 2024-12-12 01:19:00 +0100 |
commit | fa9ccbd94724e9edc849a7dce46c0d468ee47fd5 (patch) | |
tree | e23045773f63ae8cdf432cd149bd278e5866dc7e /layouts/partials/footer.html | |
parent | 2a3d44d7ed88d0e58f5a8907fb0f82eed4669868 (diff) | |
download | website-ortleppms-fa9ccbd94724e9edc849a7dce46c0d468ee47fd5.zip |
website setup
Diffstat (limited to 'layouts/partials/footer.html')
-rw-r--r-- | layouts/partials/footer.html | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..6a215c2 --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,150 @@ +{{- if not (.Param "hideFooter") }} +<footer class="footer"> + {{- if not site.Params.footer.hideCopyright }} + {{- if site.Copyright }} + <span>{{ site.Copyright | markdownify }}</span> + {{- else }} + <span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span> + {{- end }} + {{- print " · "}} + {{- end }} + + {{- with site.Params.footer.text }} + {{ . | markdownify }} + {{- print " · "}} + {{- end }} + + <span> + Powered by + <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> & + <a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a> + </span> + + <!-- start custom footer extension --> + <span>·</span> + <span><a href="{{ .Site.Params.xCustomLegalLink }}">{{ .Site.Params.xCustomLegalText }}</a></span> + <!-- end custom footer extension --> + +</footer> +{{- end }} + +{{- if (not site.Params.disableScrollToTop) }} +<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g"> + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor"> + <path d="M12 6H0l6-6z" /> + </svg> +</a> +{{- end }} + +{{- partial "extend_footer.html" . }} + +<script> + let menu = document.getElementById('menu') + if (menu) { + menu.scrollLeft = localStorage.getItem("menu-scroll-position"); + menu.onscroll = function () { + localStorage.setItem("menu-scroll-position", menu.scrollLeft); + } + } + + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener("click", function (e) { + e.preventDefault(); + var id = this.getAttribute("href").substr(1); + if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({ + behavior: "smooth" + }); + } else { + document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView(); + } + if (id === "top") { + history.replaceState(null, null, " "); + } else { + history.pushState(null, null, `#${id}`); + } + }); + }); + +</script> + +{{- if (not site.Params.disableScrollToTop) }} +<script> + var mybutton = document.getElementById("top-link"); + window.onscroll = function () { + if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) { + mybutton.style.visibility = "visible"; + mybutton.style.opacity = "1"; + } else { + mybutton.style.visibility = "hidden"; + mybutton.style.opacity = "0"; + } + }; + +</script> +{{- end }} + +{{- if (not site.Params.disableThemeToggle) }} +<script> + document.getElementById("theme-toggle").addEventListener("click", () => { + if (document.body.className.includes("dark")) { + document.body.classList.remove('dark'); + localStorage.setItem("pref-theme", 'light'); + } else { + document.body.classList.add('dark'); + localStorage.setItem("pref-theme", 'dark'); + } + }) + +</script> +{{- end }} + +{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }} +<script> + document.querySelectorAll('pre > code').forEach((codeblock) => { + const container = codeblock.parentNode.parentNode; + + const copybutton = document.createElement('button'); + copybutton.classList.add('copy-code'); + copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}'; + + function copyingDone() { + copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}'; + setTimeout(() => { + copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}'; + }, 2000); + } + + copybutton.addEventListener('click', (cb) => { + if ('clipboard' in navigator) { + navigator.clipboard.writeText(codeblock.textContent); + copyingDone(); + return; + } + + const range = document.createRange(); + range.selectNodeContents(codeblock); + const selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + try { + document.execCommand('copy'); + copyingDone(); + } catch (e) { }; + selection.removeRange(range); + }); + + if (container.classList.contains("highlight")) { + container.appendChild(copybutton); + } else if (container.parentNode.firstChild == container) { + // td containing LineNos + } else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") { + // table containing LineNos and code + codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton); + } else { + // code blocks not having highlight as parent class + codeblock.parentNode.appendChild(copybutton); + } + }); +</script> +{{- end }} |