From d1014de68415df8f0a5dc3389332e086119c6198 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 27 Nov 2025 04:02:06 +0900 Subject: refactor(nuldoc): eliminate JSX --- services/nuldoc/nuldoc-src/pages/PostListPage.ts | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 services/nuldoc/nuldoc-src/pages/PostListPage.ts (limited to 'services/nuldoc/nuldoc-src/pages/PostListPage.ts') diff --git a/services/nuldoc/nuldoc-src/pages/PostListPage.ts b/services/nuldoc/nuldoc-src/pages/PostListPage.ts new file mode 100644 index 0000000..53b8fa4 --- /dev/null +++ b/services/nuldoc/nuldoc-src/pages/PostListPage.ts @@ -0,0 +1,49 @@ +import GlobalFooter from "../components/GlobalFooter.ts"; +import GlobalHeader from "../components/BlogGlobalHeader.ts"; +import PageLayout from "../components/PageLayout.ts"; +import Pagination from "../components/Pagination.ts"; +import PostPageEntry from "../components/PostPageEntry.ts"; +import { Config } from "../config.ts"; +import { PostPage } from "../generators/post.ts"; +import { elem, Element } from "../dom.ts"; + +export default async function PostListPage( + posts: PostPage[], + config: Config, + currentPage: number, + totalPages: number, +): Promise { + const pageTitle = "投稿一覧"; + + const pageInfoSuffix = ` (${currentPage}ページ目)`; + const metaTitle = + `${pageTitle}${pageInfoSuffix}|${config.sites.blog.siteName}`; + const metaDescription = `投稿した記事の一覧${pageInfoSuffix}`; + + return await PageLayout({ + metaCopyrightYear: config.site.copyrightYear, + metaDescription, + metaTitle, + metaAtomFeedHref: `https://${config.sites.blog.fqdn}/posts/atom.xml`, + site: "blog", + config, + children: elem( + "body", + { class: "list" }, + GlobalHeader({ config }), + elem( + "main", + { class: "main" }, + elem( + "header", + { class: "page-header" }, + elem("h1", {}, pageTitle + pageInfoSuffix), + ), + Pagination({ currentPage, totalPages, basePath: "/posts/" }), + ...posts.map((post) => PostPageEntry({ post, config })), + Pagination({ currentPage, totalPages, basePath: "/posts/" }), + ), + GlobalFooter({ config }), + ), + }); +} -- cgit v1.2.3-70-g09d2