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/BlockQuote.astro | 17 ++++++ src/components/ExternalLink.astro | 15 ++++++ src/components/Highlight.astro | 8 +++ src/components/KaigirokuDougaLink.astro | 51 ++++++++++++++++++ src/components/MessageBubble.astro | 17 ++++++ src/components/starlight/Breadcrumbs.astro | 83 ++++++++++++++++++++++++++++++ src/components/starlight/PageTitle.astro | 24 +++++++++ 7 files changed, 215 insertions(+) create mode 100644 src/components/BlockQuote.astro create mode 100644 src/components/ExternalLink.astro create mode 100644 src/components/Highlight.astro create mode 100644 src/components/KaigirokuDougaLink.astro create mode 100644 src/components/MessageBubble.astro create mode 100644 src/components/starlight/Breadcrumbs.astro create mode 100644 src/components/starlight/PageTitle.astro (limited to 'src/components') diff --git a/src/components/BlockQuote.astro b/src/components/BlockQuote.astro new file mode 100644 index 0000000..83a2409 --- /dev/null +++ b/src/components/BlockQuote.astro @@ -0,0 +1,17 @@ +--- +export interface Props { + refs?: string; + href?: string; +} +const { refs, href } = Astro.props; +--- +
+ { + href ? ( +
{refs}
+ ) : refs ? ( +
{refs}
+ ) : null + } + +
diff --git a/src/components/ExternalLink.astro b/src/components/ExternalLink.astro new file mode 100644 index 0000000..1068872 --- /dev/null +++ b/src/components/ExternalLink.astro @@ -0,0 +1,15 @@ +--- +export interface Props { + href?: string; +} +const { href } = Astro.props; +--- +{ + href ? ( + + + + ) : ( + <> + ) +} diff --git a/src/components/Highlight.astro b/src/components/Highlight.astro new file mode 100644 index 0000000..70d478a --- /dev/null +++ b/src/components/Highlight.astro @@ -0,0 +1,8 @@ +--- +export interface Props { + children: any; +} +--- + + + diff --git a/src/components/KaigirokuDougaLink.astro b/src/components/KaigirokuDougaLink.astro new file mode 100644 index 0000000..7695860 --- /dev/null +++ b/src/components/KaigirokuDougaLink.astro @@ -0,0 +1,51 @@ +--- +export interface Props { + kaigirokuHref?: string; + dougaHref?: string; +} +const { kaigirokuHref, dougaHref } = Astro.props; +const mada = kaigirokuHref ? '' : '(まだ公開されていません)'; +--- + + + diff --git a/src/components/MessageBubble.astro b/src/components/MessageBubble.astro new file mode 100644 index 0000000..74f9927 --- /dev/null +++ b/src/components/MessageBubble.astro @@ -0,0 +1,17 @@ +--- +export interface Props { + speaker: string; + align?: 'left' | 'right'; + id?: string; + className?: string; +} +const { speaker, align = 'right', id, className = '' } = Astro.props; +--- +
+ + +
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