summaryrefslogtreecommitdiff
path: root/themes/PaperMod/layouts/partials/footer.html
diff options
context:
space:
mode:
Diffstat (limited to 'themes/PaperMod/layouts/partials/footer.html')
-rw-r--r--themes/PaperMod/layouts/partials/footer.html135
1 files changed, 135 insertions, 0 deletions
diff --git a/themes/PaperMod/layouts/partials/footer.html b/themes/PaperMod/layouts/partials/footer.html
new file mode 100644
index 0000000..d6ee155
--- /dev/null
+++ b/themes/PaperMod/layouts/partials/footer.html
@@ -0,0 +1,135 @@
+{{- if not (.Param "hideFooter") }}
+<footer class="footer">
+ {{- if .Site.Copyright }}
+ <span>&copy; {{ now.Year }} {{ .Site.Copyright | markdownify }}</span>
+ {{- else }}
+ <span>&copy; {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a></span>
+ {{- end }}
+ <span>
+ Powered by
+ <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
+ <a href="https://git.io/hugopapermod" rel="noopener" target="_blank">PaperMod</a>
+ </span>
+</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.innerText = '{{- i18n "code_copy" | default "copy" }}';
+
+ function copyingDone() {
+ copybutton.innerText = '{{- i18n "code_copied" | default "copied!" }}';
+ setTimeout(() => {
+ copybutton.innerText = '{{- 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 }}