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 ? (
+
+ ) : 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 ? '' : '(まだ公開されていません)';
+---
+
+ {kaigirokuHref ? (
+
+ 📄 会議録
+
+ ) : (
+
📄 会議録{mada}
+ )}
+ {dougaHref && (
+
+ 🎞️ 動画
+
+ )}
+
+
+
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