footer: add CC BY-NC-SA 4.0 content license + low-latency contact line
build-and-deploy / build (push) Failing after 14m26s

- License link (rel=license) renders site-wide for blog/content reuse terms
- Contact line links LinkedIn + email from socials data
This commit is contained in:
2026-06-17 22:14:08 +10:00
parent 1c956d6ec4
commit 939962aeeb
2 changed files with 47 additions and 0 deletions
+41
View File
@@ -2,6 +2,8 @@
import { site } from "../data/site";
import { socials } from "../data/socials";
const year = 2026; // build-stamped; bump via the build, not a runtime Date()
const linkedinHref = socials.find((s) => s.label === "LinkedIn")?.href;
const emailHref = socials.find((s) => s.label === "Email")?.href;
---
<footer class="footer">
@@ -11,6 +13,11 @@ const year = 2026; // build-stamped; bump via the build, not a runtime Date()
<p class="footer__meta">
{site.role} · Served from a homelab Kubernetes cluster over an encrypted tunnel.
</p>
<p class="footer__contact">
For a low-ms reply, ping me on{" "}
<a href={linkedinHref} rel="noopener noreferrer" target="_blank">LinkedIn</a>{" "}
or <a href={emailHref}>email</a> — everything else is best-effort delivery.
</p>
</div>
<div class="footer__links">
{
@@ -32,6 +39,18 @@ const year = 2026; // build-stamped; bump via the build, not a runtime Date()
<div class="container footer__base">
<span class="mono">© {year} {site.name}</span>
<span class="mono footer__dot">·</span>
<span class="mono">
Content licensed under{" "}
<a
href={site.license.url}
rel="license noopener noreferrer"
target="_blank"
title={site.license.label}
>
{site.license.name}
</a>
</span>
<span class="mono footer__dot">·</span>
<span class="mono">built with Astro, shipped via GitOps</span>
</div>
</footer>
@@ -59,6 +78,19 @@ const year = 2026; // build-stamped; bump via the build, not a runtime Date()
color: var(--text-faint);
margin-top: 0.25rem;
}
.footer__contact {
font-size: var(--step--1);
color: var(--text-faint);
margin-top: 0.4rem;
}
.footer__contact a {
color: var(--text-dim);
text-decoration: underline;
text-underline-offset: 2px;
}
.footer__contact a:hover {
color: var(--accent);
}
.footer__links {
display: flex;
gap: var(--space-4);
@@ -74,6 +106,15 @@ const year = 2026; // build-stamped; bump via the build, not a runtime Date()
font-size: 0.72rem;
color: var(--text-faint);
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.footer__base a {
color: var(--text-dim);
text-decoration: underline;
text-underline-offset: 2px;
}
.footer__base a:hover {
color: var(--accent);
}
</style>
+6
View File
@@ -28,6 +28,12 @@ export const site = {
email: "jonnywright2011@live.com.au",
ogImage: "/og.png",
locale: "en",
// Content license for blog posts + pages. Edit here to relicense site-wide.
license: {
name: "CC BY-NC-SA 4.0",
label: "Creative Commons Attribution-NonCommercial-ShareAlike 4.0",
url: "https://creativecommons.org/licenses/by-nc-sa/4.0/",
},
} as const;
export type Site = typeof site;