footer: add CC BY-NC-SA 4.0 content license + low-latency contact line
build-and-deploy / build (push) Failing after 14m26s
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:
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user