diff --git a/packages/website/src/lib/metadata.ts b/packages/website/src/lib/metadata.ts
index d72e0197..1f5dd7e0 100644
--- a/packages/website/src/lib/metadata.ts
+++ b/packages/website/src/lib/metadata.ts
@@ -3,7 +3,7 @@ import { dev } from '$app/environment';
-export const SITE_TITLE = 'JadedBlueEyes';
+export const SITE_TITLE = "Jade's Website";
export const SITE_URL = dev ? "http://localhost:5173" : "https://jade.ellis.link"
diff --git a/packages/website/src/routes/+layout.svelte b/packages/website/src/routes/+layout.svelte
index e7a18746..96b08717 100644
--- a/packages/website/src/routes/+layout.svelte
+++ b/packages/website/src/routes/+layout.svelte
@@ -3,10 +3,12 @@
import "$lib/styles.css";
import Favicons from "$lib/Favicons.svelte";
import Nav from "$lib/Nav.svelte";
+ import { SITE_TITLE } from "$lib/metadata"
+
diff --git a/packages/website/src/routes/blog/[...date]/[slug]/+page.svelte b/packages/website/src/routes/blog/[...date]/[slug]/+page.svelte
index 23334e44..65543d3c 100644
--- a/packages/website/src/routes/blog/[...date]/[slug]/+page.svelte
+++ b/packages/website/src/routes/blog/[...date]/[slug]/+page.svelte
@@ -6,13 +6,20 @@
export let data;
import { SITE_URL, SITE_TITLE } from "$lib/metadata";
import Toc from "$lib/Toc.svelte";
+ import type { WithContext, Thing } from "schema-dts";
+ import pfpUrl from "$lib/logo.svg?url";
// let GhReleasesDownload: Promise;
// if (data.ghReleaseData) {
// GhReleasesDownload = import("$lib/GhReleasesDownload.svelte").then((m) => m.default)
// }
$: canonical = SITE_URL + "/blog/" + data.post.canonical;
- function calcOgURL(slug: string, date: string, ratio?: number, width?: number): URL {
+ function calcOgURL(
+ slug: string,
+ date: string,
+ ratio?: number,
+ width?: number,
+ ): URL {
let url = new URL(SITE_URL + "/blog/image");
url.searchParams.set("slug", slug);
url.searchParams.set("date", date);
@@ -44,10 +51,62 @@
};
const defaultAuthor = {
+ "@type": "Person",
name: "Jade Ellis",
url: "https://jade.ellis.link",
fediverse: "@JadedBlueEyes@tech.lgbt",
+ image: pfpUrl,
};
+ $: jsonLd = {
+ "@context": "https://schema.org",
+ "@type": "WebPage",
+ breadcrumb: {
+ "@type": "BreadcrumbList",
+
+ itemListElement: [
+ {
+ "@type": "ListItem",
+ position: 1,
+ name: "Blog",
+ item: SITE_URL + "/blog",
+ },
+ {
+ "@type": "ListItem",
+ position: 2,
+ name: data.post.title,
+ item: canonical,
+ },
+ ],
+ },
+ mainEntity: {
+ "@type": "BlogPosting",
+ "@id": canonical,
+ url: canonical,
+ mainEntityOfPage: canonical,
+ name: data.post.title,
+ headline: data.post.title,
+ datePublished: new Date(data.post.date).toISOString(),
+ author: defaultAuthor,
+ description: data.post.description,
+ wordCount: data.post.readingTime.words,
+ image: {
+ "@type": "ImageObject",
+ width: "1200",
+ height: "630",
+ url: calcOgURL(
+ data.post.slug,
+ data.post.date,
+ 630 / 1200,
+ 1200,
+ ).toString(),
+ },
+ isPartOf: {
+ "@type": "Blog",
+ "@id": SITE_URL + "/blog",
+ name: "Jade's Blog",
+ },
+ },
+ } as WithContext;
@@ -66,10 +125,21 @@
{#if defaultAuthor?.fediverse}
{/if}
-
-
-
+
+
+
+ {@html `