From 5bc1e63756cae6974430f1e6cf1a4d5e88f5b9cc Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Thu, 18 Jun 2026 23:19:10 +0900 Subject: Initial commit --- src/components/starlight/Breadcrumbs.astro | 83 ++++++++++++++++++++++++++++++ src/components/starlight/PageTitle.astro | 24 +++++++++ 2 files changed, 107 insertions(+) create mode 100644 src/components/starlight/Breadcrumbs.astro create mode 100644 src/components/starlight/PageTitle.astro (limited to 'src/components/starlight') diff --git a/src/components/starlight/Breadcrumbs.astro b/src/components/starlight/Breadcrumbs.astro new file mode 100644 index 0000000..3ab3281 --- /dev/null +++ b/src/components/starlight/Breadcrumbs.astro @@ -0,0 +1,83 @@ +--- +import config from 'virtual:starlight/user-config'; + +const route = Astro.locals.starlightRoute; +const base = config.base || ''; +const slug = route.entry?.slug || route.id || ''; +const parts = slug.split('/').filter(Boolean); + +// Build breadcrumb trail +const breadcrumbs: { label: string; href: string }[] = []; +let currentPath = ''; +for (let i = 0; i < parts.length; i++) { + currentPath += '/' + parts[i]; + breadcrumbs.push({ + label: labelMap(parts[i]) || parts[i], + href: base + currentPath + '/', + }); +} + +// Replace last breadcrumb label with page title +if (breadcrumbs.length > 0) { + breadcrumbs[breadcrumbs.length - 1].label = route.entry?.data?.title || breadcrumbs[breadcrumbs.length - 1].label; +} + +function labelMap(segment: string): string | null { + const map: Record = { + 'ippan-situmon': '一般質問', + 'gian-tou': '議案等', + 'hattatu': '発達関連', + 'blog': 'ふらっとブログ', + 'r7d': '令和7年度', 'r6d': '令和6年度', 'r5d': '令和5年度', 'r4d': '令和4年度', + 'r3d': '令和3年度', 'r2d': '令和2年度', 'r1d': '令和元年度', + '6gatu': '6月定例会', '9gatu': '9月定例会', + '12gatu': '12月定例会', '3gatu': '3月定例会', + }; + return map[segment] || null; +} +--- + +{breadcrumbs.length > 0 && ( + +)} + + diff --git a/src/components/starlight/PageTitle.astro b/src/components/starlight/PageTitle.astro new file mode 100644 index 0000000..352e1c3 --- /dev/null +++ b/src/components/starlight/PageTitle.astro @@ -0,0 +1,24 @@ +--- +import Breadcrumbs from './Breadcrumbs.astro'; +--- + +{Astro.url.pathname !== "/" && ( + <> +
+ +
+

{Astro.locals.starlightRoute.entry.data.title}

+ +)} + + -- cgit v1.2.3-54-g00ecf