diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-02 22:23:52 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-02 22:23:52 +0900 |
| commit | 0af80494361ec9b71e004e2c83c43170666acbd9 (patch) | |
| tree | 2af5e557f28ea2a8d4d06b5a8596afcb06bf42b0 /services/nuldoc/nuldoc-src | |
| parent | fc651662cb9dd86dcb3010ba6cf35399b7c25587 (diff) | |
| download | nsfisis.dev-0af80494361ec9b71e004e2c83c43170666acbd9.tar.gz nsfisis.dev-0af80494361ec9b71e004e2c83c43170666acbd9.tar.zst nsfisis.dev-0af80494361ec9b71e004e2c83c43170666acbd9.zip | |
feat(nuldoc): Update site header
Diffstat (limited to 'services/nuldoc/nuldoc-src')
15 files changed, 93 insertions, 25 deletions
diff --git a/services/nuldoc/nuldoc-src/components/AboutGlobalHeader.tsx b/services/nuldoc/nuldoc-src/components/AboutGlobalHeader.tsx new file mode 100644 index 0000000..4671a01 --- /dev/null +++ b/services/nuldoc/nuldoc-src/components/AboutGlobalHeader.tsx @@ -0,0 +1,13 @@ +import { Config } from "../config.ts"; + +export default function GlobalHeader({ config }: { config: Config }) { + return ( + <header className="header"> + <div className="site-logo"> + <a href={`https://${config.sites.default.fqdn}/`}> + {config.blog.siteName} + </a> + </div> + </header> + ); +} diff --git a/services/nuldoc/nuldoc-src/components/BlogGlobalHeader.tsx b/services/nuldoc/nuldoc-src/components/BlogGlobalHeader.tsx new file mode 100644 index 0000000..026c54f --- /dev/null +++ b/services/nuldoc/nuldoc-src/components/BlogGlobalHeader.tsx @@ -0,0 +1,26 @@ +import { Config } from "../config.ts"; + +export default function GlobalHeader({ config }: { config: Config }) { + return ( + <header className="header"> + <div className="site-logo"> + <a href={`https://${config.sites.default.fqdn}/`}> + {config.blog.siteName} + </a> + </div> + <nav className="nav"> + <ul> + <li> + <a href={`https://${config.sites.about.fqdn}/`}>About</a> + </li> + <li> + <a href="/posts/">Posts</a> + </li> + <li> + <a href="/tags/">Tags</a> + </li> + </ul> + </nav> + </header> + ); +} diff --git a/services/nuldoc/nuldoc-src/components/DefaultGlobalHeader.tsx b/services/nuldoc/nuldoc-src/components/DefaultGlobalHeader.tsx new file mode 100644 index 0000000..4671a01 --- /dev/null +++ b/services/nuldoc/nuldoc-src/components/DefaultGlobalHeader.tsx @@ -0,0 +1,13 @@ +import { Config } from "../config.ts"; + +export default function GlobalHeader({ config }: { config: Config }) { + return ( + <header className="header"> + <div className="site-logo"> + <a href={`https://${config.sites.default.fqdn}/`}> + {config.blog.siteName} + </a> + </div> + </header> + ); +} diff --git a/services/nuldoc/nuldoc-src/components/GlobalHeader.tsx b/services/nuldoc/nuldoc-src/components/SlidesGlobalHeader.tsx index c0fa7e8..f7727ea 100644 --- a/services/nuldoc/nuldoc-src/components/GlobalHeader.tsx +++ b/services/nuldoc/nuldoc-src/components/SlidesGlobalHeader.tsx @@ -4,15 +4,14 @@ export default function GlobalHeader({ config }: { config: Config }) { return ( <header className="header"> <div className="site-logo"> - <a href="/">{config.blog.siteName}</a> + <a href={`https://${config.sites.default.fqdn}/`}> + {config.blog.siteName} + </a> </div> <nav className="nav"> <ul> <li> - <a href="/about/">About</a> - </li> - <li> - <a href="/posts/">Posts</a> + <a href={`https://${config.sites.about.fqdn}/`}>About</a> </li> <li> <a href="/slides/">Slides</a> diff --git a/services/nuldoc/nuldoc-src/generators/not_found.ts b/services/nuldoc/nuldoc-src/generators/not_found.ts index 81fdb35..56adc8e 100644 --- a/services/nuldoc/nuldoc-src/generators/not_found.ts +++ b/services/nuldoc/nuldoc-src/generators/not_found.ts @@ -10,7 +10,7 @@ export async function generateNotFoundPage( config: Config, ): Promise<NotFoundPage> { const html = await renderToDOM( - NotFoundPage(config), + NotFoundPage(site, config), ); return { diff --git a/services/nuldoc/nuldoc-src/generators/tag_list.ts b/services/nuldoc/nuldoc-src/generators/tag_list.ts index 76b0fe5..cbc161e 100644 --- a/services/nuldoc/nuldoc-src/generators/tag_list.ts +++ b/services/nuldoc/nuldoc-src/generators/tag_list.ts @@ -12,7 +12,7 @@ export async function generateTagListPage( config: Config, ): Promise<TagListPage> { const html = await renderToDOM( - TagListPage(tags, config), + TagListPage(tags, site, config), ); return { diff --git a/services/nuldoc/nuldoc-src/pages/AboutPage.tsx b/services/nuldoc/nuldoc-src/pages/AboutPage.tsx index 109c2a2..010692d 100644 --- a/services/nuldoc/nuldoc-src/pages/AboutPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/AboutPage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/AboutGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import StaticScript from "../components/StaticScript.tsx"; import { Config } from "../config.ts"; diff --git a/services/nuldoc/nuldoc-src/pages/HomePage.tsx b/services/nuldoc/nuldoc-src/pages/HomePage.tsx index 20ef312..ae1d069 100644 --- a/services/nuldoc/nuldoc-src/pages/HomePage.tsx +++ b/services/nuldoc/nuldoc-src/pages/HomePage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/DefaultGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import { Config } from "../config.ts"; @@ -17,30 +17,30 @@ export default function HomePage(config: Config) { <main className="main"> <article className="post-single"> <article className="post-entry"> - <a href="/about/"> + <a href={`https://${config.sites.about.fqdn}/`}> <header className="entry-header"> <h2>About</h2> </header> </a> </article> <article className="post-entry"> - <a href="/posts/"> + <a href={`https://${config.sites.blog.fqdn}/posts/`}> <header className="entry-header"> - <h2>Posts</h2> + <h2>Blog</h2> </header> </a> </article> <article className="post-entry"> - <a href="/slides/"> + <a href={`https://${config.sites.slides.fqdn}/slides/`}> <header className="entry-header"> <h2>Slides</h2> </header> </a> </article> <article className="post-entry"> - <a href="/tags/"> + <a href={`https://repos.${config.sites.default.fqdn}/`}> <header className="entry-header"> - <h2>Tags</h2> + <h2>Repositories</h2> </header> </a> </article> diff --git a/services/nuldoc/nuldoc-src/pages/NotFoundPage.tsx b/services/nuldoc/nuldoc-src/pages/NotFoundPage.tsx index f9e46b4..ac105e8 100644 --- a/services/nuldoc/nuldoc-src/pages/NotFoundPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/NotFoundPage.tsx @@ -1,9 +1,13 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import AboutGlobalHeader from "../components/AboutGlobalHeader.tsx"; +import BlogGlobalHeader from "../components/BlogGlobalHeader.tsx"; +import SlidesGlobalHeader from "../components/SlidesGlobalHeader.tsx"; +import DefaultGlobalHeader from "../components/DefaultGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import { Config } from "../config.ts"; export default function NotFoundPage( + site: "default" | "about" | "blog" | "slides", config: Config, ) { return ( @@ -14,7 +18,13 @@ export default function NotFoundPage( config={config} > <body className="single"> - <GlobalHeader config={config} /> + {site === "about" + ? <AboutGlobalHeader config={config} /> + : site === "blog" + ? <BlogGlobalHeader config={config} /> + : site === "slides" + ? <SlidesGlobalHeader config={config} /> + : <DefaultGlobalHeader config={config} />} <main className="main"> <article> <div className="not-found">404</div> diff --git a/services/nuldoc/nuldoc-src/pages/PostListPage.tsx b/services/nuldoc/nuldoc-src/pages/PostListPage.tsx index 25c5885..549eb97 100644 --- a/services/nuldoc/nuldoc-src/pages/PostListPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/PostListPage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/BlogGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import Pagination from "../components/Pagination.tsx"; import PostPageEntry from "../components/PostPageEntry.tsx"; diff --git a/services/nuldoc/nuldoc-src/pages/PostPage.tsx b/services/nuldoc/nuldoc-src/pages/PostPage.tsx index e625518..60b2811 100644 --- a/services/nuldoc/nuldoc-src/pages/PostPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/PostPage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/BlogGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import TableOfContents from "../components/TableOfContents.tsx"; import { Config, getTagLabel } from "../config.ts"; diff --git a/services/nuldoc/nuldoc-src/pages/SlideListPage.tsx b/services/nuldoc/nuldoc-src/pages/SlideListPage.tsx index bcbef6d..0b8d853 100644 --- a/services/nuldoc/nuldoc-src/pages/SlideListPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/SlideListPage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/SlidesGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import SlidePageEntry from "../components/SlidePageEntry.tsx"; import { Config } from "../config.ts"; diff --git a/services/nuldoc/nuldoc-src/pages/SlidePage.tsx b/services/nuldoc/nuldoc-src/pages/SlidePage.tsx index fc11072..3c8dce3 100644 --- a/services/nuldoc/nuldoc-src/pages/SlidePage.tsx +++ b/services/nuldoc/nuldoc-src/pages/SlidePage.tsx @@ -1,5 +1,5 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import GlobalHeader from "../components/SlidesGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import StaticScript from "../components/StaticScript.tsx"; import { Config, getTagLabel } from "../config.ts"; diff --git a/services/nuldoc/nuldoc-src/pages/TagListPage.tsx b/services/nuldoc/nuldoc-src/pages/TagListPage.tsx index 12e09ae..c33f349 100644 --- a/services/nuldoc/nuldoc-src/pages/TagListPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/TagListPage.tsx @@ -1,11 +1,13 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import BlogGlobalHeader from "../components/BlogGlobalHeader.tsx"; +import SlidesGlobalHeader from "../components/SlidesGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import { Config } from "../config.ts"; import { TagPage } from "../generators/tag.ts"; export default function TagListPage( tags: TagPage[], + site: "blog" | "slides", config: Config, ) { const pageTitle = "タグ一覧"; @@ -18,7 +20,9 @@ export default function TagListPage( config={config} > <body className="list"> - <GlobalHeader config={config} /> + {site === "blog" + ? <BlogGlobalHeader config={config} /> + : <SlidesGlobalHeader config={config} />} <main className="main"> <header className="page-header"> <h1>{pageTitle}</h1> diff --git a/services/nuldoc/nuldoc-src/pages/TagPage.tsx b/services/nuldoc/nuldoc-src/pages/TagPage.tsx index 641a2e6..49f689e 100644 --- a/services/nuldoc/nuldoc-src/pages/TagPage.tsx +++ b/services/nuldoc/nuldoc-src/pages/TagPage.tsx @@ -1,5 +1,6 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; -import GlobalHeader from "../components/GlobalHeader.tsx"; +import BlogGlobalHeader from "../components/BlogGlobalHeader.tsx"; +import SlidesGlobalHeader from "../components/SlidesGlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; import PostPageEntry from "../components/PostPageEntry.tsx"; import SlidePageEntry from "../components/SlidePageEntry.tsx"; @@ -28,7 +29,9 @@ export default function TagPage( config={config} > <body className="list"> - <GlobalHeader config={config} /> + {site === "blog" + ? <BlogGlobalHeader config={config} /> + : <SlidesGlobalHeader config={config} />} <main className="main"> <header className="page-header"> <h1>{pageTitle}</h1> |
