diff --git a/web/scripts/generate-sitemap.js b/web/scripts/generate-sitemap.js index d668a40..08c8a78 100644 --- a/web/scripts/generate-sitemap.js +++ b/web/scripts/generate-sitemap.js @@ -96,9 +96,11 @@ function getLibraryPaths(dir = LIBRARY_ROUTES_DIR, segments = []) { const slug = entry.name.replace(/\.tsx$/i, ""); const pathSegments = slug === "index" ? segments : [...segments, slug]; - return pathSegments.length > 0 - ? [`/library/${pathSegments.join("/")}`] - : []; + return [ + pathSegments.length > 0 + ? `/library/${pathSegments.join("/")}` + : "/library", + ]; }); } diff --git a/web/src/components/library-page.tsx b/web/src/components/library-page.tsx index 3abea60..7777747 100644 --- a/web/src/components/library-page.tsx +++ b/web/src/components/library-page.tsx @@ -1,12 +1,14 @@ import type { ReactNode } from "react"; import { DocsBody } from "fumadocs-ui/page"; +import { buildBreadcrumbJsonLd } from "@/lib/seo"; -const LIBRARY_PILLAR_PATH = "/library/keyword-research"; +const KEYWORD_RESEARCH_LIBRARY_PATH = "/library/keyword-research"; type LibrarySpokePageProps = { title: string; description?: string; crumb: string; + path: string; children: ReactNode; }; @@ -14,20 +16,37 @@ export function LibrarySpokePage({ title, description, crumb, + path, children, }: LibrarySpokePageProps) { + const breadcrumbLd = buildBreadcrumbJsonLd([ + { name: "Strategy Library", path: "/library" }, + { name: "Keyword Research", path: KEYWORD_RESEARCH_LIBRARY_PATH }, + { name: crumb, path }, + ]); + return (
-

+

{title}

@@ -43,6 +62,12 @@ export function LibrarySpokePage({ + +