From 0587abd8269882a071668b5b01709b1c952cabbe Mon Sep 17 00:00:00 2001 From: liyunze <50455574+liyunze-coding@users.noreply.github.com> Date: Sat, 5 Sep 2026 10:21:30 +0800 Subject: [PATCH] added meta tags --- src/app.d.ts | 4 +- src/app.html | 4 -- src/lib/components/Seo.svelte | 14 ++++++ src/lib/seo.spec.ts | 29 +++++++++++ src/lib/seo.ts | 59 +++++++++++++++++++++++ src/lib/server/pageSeo.ts | 25 ++++++++++ src/routes/+layout.svelte | 5 ++ src/routes/[code]/+page.server.ts | 4 ++ src/routes/[code]/[id]/+page.server.ts | 4 ++ src/routes/[code]/[id]/+page.svelte | 5 ++ src/routes/notes/[id]/+page.server.ts | 4 ++ src/routes/notes/[id]/+page.svelte | 8 +-- src/routes/questions/[id]/+page.server.ts | 4 ++ src/routes/questions/[id]/+page.svelte | 8 +-- src/routes/units/[code]/+page.server.ts | 4 ++ src/routes/units/[code]/+page.svelte | 13 +++-- 16 files changed, 178 insertions(+), 16 deletions(-) create mode 100644 src/lib/components/Seo.svelte create mode 100644 src/lib/seo.spec.ts create mode 100644 src/lib/seo.ts create mode 100644 src/lib/server/pageSeo.ts create mode 100644 src/routes/[code]/+page.server.ts create mode 100644 src/routes/[code]/[id]/+page.server.ts create mode 100644 src/routes/notes/[id]/+page.server.ts create mode 100644 src/routes/questions/[id]/+page.server.ts create mode 100644 src/routes/units/[code]/+page.server.ts diff --git a/src/app.d.ts b/src/app.d.ts index a732ec7..04043da 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -4,7 +4,9 @@ export {}; declare global { namespace App { - interface PageData {} + interface PageData { + seo?: import("$lib/seo").PageSeo; + } interface PageState {} interface Platform {} } diff --git a/src/app.html b/src/app.html index bbb66da..29292ee 100644 --- a/src/app.html +++ b/src/app.html @@ -3,10 +3,6 @@
- diff --git a/src/lib/components/Seo.svelte b/src/lib/components/Seo.svelte new file mode 100644 index 0000000..07e26bb --- /dev/null +++ b/src/lib/components/Seo.svelte @@ -0,0 +1,14 @@ + + +Loading
diff --git a/src/routes/notes/[id]/+page.server.ts b/src/routes/notes/[id]/+page.server.ts new file mode 100644 index 0000000..b7d7a59 --- /dev/null +++ b/src/routes/notes/[id]/+page.server.ts @@ -0,0 +1,4 @@ +import { loadPostSeo } from "$lib/server/pageSeo"; +import type { PageServerLoad } from "./$types"; + +export const load: PageServerLoad = ({ params }) => loadPostSeo(params.id); diff --git a/src/routes/notes/[id]/+page.svelte b/src/routes/notes/[id]/+page.svelte index 9699890..7e18375 100644 --- a/src/routes/notes/[id]/+page.svelte +++ b/src/routes/notes/[id]/+page.svelte @@ -7,6 +7,8 @@ import Markdown from "$lib/components/Markdown.svelte"; import MarkdownEditor from "$lib/components/MarkdownEditor.svelte"; import CommentThread from "$lib/components/CommentThread.svelte"; + import Seo from "$lib/components/Seo.svelte"; + import { postSeo } from "$lib/seo"; import { timeAgo } from "$lib/time"; import type { NoteDoc, CommentDoc, TopicDoc, UnitDoc } from "$lib/types"; @@ -28,6 +30,8 @@ let editError = $state(""); let editLoading = $state(false); + const seo = $derived.by(() => (note ? postSeo({ ...note, unit }) : page.data.seo)); + $effect(() => { const id = page.params.id; let cancelled = false; @@ -157,9 +161,7 @@ } -Loading
{:else if unit} -Home · Unit
++ Home · Unit +