mirror of
https://github.com/foo-dogsquared/website.git
synced 2025-01-31 10:58:33 +00:00
Gabriel Arazas
f835f0aa6f
- Added a "Copy to clipboard" button for easily following in case the post is code-heavy. - Added a toggle fullscreen button for code listings that are too large. It is pretty small and limiting in those cases, after all.
127 lines
4.4 KiB
HTML
127 lines
4.4 KiB
HTML
<footer aria-label="{{ T "siteFooterAriaLabel" }}">
|
|
<!-- A convenient back to top link. -->
|
|
<p><a href="#top">{{ T "back_to_top" | default "Back to top" }}</a></p>
|
|
|
|
<!-- Linking to other languages' homepage. -->
|
|
{{ if $.Site.IsMultiLingual }}
|
|
<p>{{ T "multilingual" }}:
|
|
<span class="list site__languages">
|
|
{{ range $.Site.Languages }}
|
|
<a href="{{ . | relURL }}" hreflang="{{ .Lang }}">{{ with .LanguageName }}{{ . }}{{ else }}{{ .Lang }}{{ end }}</a>
|
|
{{ end }}
|
|
</span>
|
|
</p>
|
|
{{ end }}
|
|
|
|
|
|
<!-- List all of the social media links -->
|
|
{{ with (index $.Site.Data "more-contentful").contacts }}
|
|
<ul class="list site__socials">
|
|
{{ $useImage := index . "useImage" | default false }}
|
|
|
|
{{ $links := sort .links "id" "asc" }}
|
|
{{ $links = sort $links "weight" "asc" }}
|
|
{{- range $links -}}
|
|
<li>
|
|
<a {{ if $useImage }}class="site__social-icon"{{ end }} rel="me" href="{{ .url | absLangURL }}" aria-label="{{ with .name }}{{ . }}{{ else }}{{ .id }}{{ end }}">
|
|
{{- if $useImage }}
|
|
{{- partial "components/icon.html" (dict "id" .id "output" "icons/brand/%s.svg" "template" "templates/simple-icon.svg") }}
|
|
{{- else }}
|
|
{{- .name }}
|
|
{{- end }}
|
|
</a>
|
|
</li>
|
|
{{- end -}}
|
|
</ul>
|
|
{{ end }}
|
|
|
|
|
|
<!-- Copyright info. -->
|
|
{{- $markdownifyOpt := dict "display" "inline"
|
|
"markup" "markdown" -}}
|
|
<p>{{ with $.Site.Copyright }}{{ trim . " " | $.Page.RenderString $markdownifyOpt }}{{ else }}© {{ now.Year }} {{ with $.Site.Author.name }}{{ . }}{{ else }}{{ $.Site.Title }}{{ end }}{{ end }}</p>
|
|
|
|
{{- /* Extra notes */ -}}
|
|
{{- with $.Site.Params.extraNotes }}
|
|
<p>{{ trim . " " | $.Page.RenderString $markdownifyOpt }}</p>
|
|
{{- end }}
|
|
|
|
<p>
|
|
<small>{{ T "generatedOn" }} {{ now.Format "2006-01-02 15:04:05 -0700" }}</small></p>
|
|
|
|
{{ with (getenv "LAST_COMMIT_DATE") }}
|
|
<p>{{ T "lastUpdated" }}: {{ time . | dateFormat "2 Jan 2006" }}</p>
|
|
{{ end }}
|
|
|
|
{{ $logo := resources.Get "svg/logo.svg" }}
|
|
<div id="logo" data-tooltip="Hey there! :3">
|
|
{{ $logo.Content | safeHTML }}
|
|
</div>
|
|
|
|
<noscript>{{ T "siteFeaturesScriptingDisabled" }}</noscript>
|
|
</footer>
|
|
|
|
<!-- Have these scripts as a separate file. -->
|
|
<script>
|
|
var logo = document.querySelector("#logo");
|
|
var logoQuotes = [
|
|
"Hey there! :3",
|
|
"Just dancing in this void for at least 659 hours, how about you?",
|
|
"How's it going, man?",
|
|
"Having ourselves a party, yeh?",
|
|
"Why, hello there.",
|
|
"!!!",
|
|
"!?! That's an interrabang."
|
|
];
|
|
|
|
logo.addEventListener("mouseenter", (event) => {
|
|
const randomItem = Math.floor(Math.random() * logoQuotes.length)
|
|
event.target.dataset.tooltip = logoQuotes[randomItem];
|
|
});
|
|
</script>
|
|
|
|
<script>
|
|
var codeListings = document.querySelectorAll("main .listingblock > .content")
|
|
|
|
for (elem of codeListings) {
|
|
var parent = elem.parentElement;
|
|
|
|
var fullscreenButton = document.createElement("button");
|
|
fullscreenButton.classList.add("listingblock__fullscreen-btn");
|
|
fullscreenButton.ariaLabel = "{{ T "fullscreenButtonAriaLabel" }}";
|
|
fullscreenButton.title = "{{ T "fullscreenButtonLabel" }}";
|
|
fullscreenButton.ariaDescription = "{{ T "fullscreenButtonDescription" }}";
|
|
fullscreenButton.innerHTML = "{{ partial "components/heroicon.html" "arrows-pointing-out" }}";
|
|
|
|
fullscreenButton.addEventListener("click", (event) => {
|
|
const { target } = event;
|
|
const parent = target.closest(".listingblock");
|
|
if (!document.fullscreenElement) {
|
|
parent.requestFullscreen();
|
|
} else if (document.exitFullscreen) {
|
|
document.exitFullscreen();
|
|
}
|
|
});
|
|
|
|
var copyButton = document.createElement("button");
|
|
copyButton.classList.add("listingblock__copy-btn");
|
|
copyButton.ariaLabel = "{{ T "copyButtonAriaLabel" }}";
|
|
copyButton.title = "{{ T "copyButtonLabel" }}";
|
|
copyButton.ariaDescription = "{{ T "copyButtonDescription" }}";
|
|
copyButton.innerHTML = "{{ partial "components/heroicon.html" "clipboard" }}";
|
|
|
|
copyButton.addEventListener("click", (event) => {
|
|
const { target } = event;
|
|
const parent = target.closest(".listingblock");
|
|
const codeListing = parent.querySelector(".content");
|
|
navigator.clipboard.writeText(codeListing.textContent.trim());
|
|
})
|
|
|
|
var buttonRow = document.createElement("div");
|
|
buttonRow.classList.add("listingblock__btn-row");
|
|
buttonRow.appendChild(copyButton);
|
|
buttonRow.appendChild(fullscreenButton);
|
|
parent.appendChild(buttonRow);
|
|
}
|
|
</script>
|