aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/nuldoc-src/pages/AboutPage.ts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-11-27 04:02:06 +0900
committernsfisis <nsfisis@gmail.com>2025-11-27 04:02:06 +0900
commitd1014de68415df8f0a5dc3389332e086119c6198 (patch)
tree6564411eb6381eb48f86ed2b658c5440295596fa /services/nuldoc/nuldoc-src/pages/AboutPage.ts
parentb587ae4cfdfb991dcd9d7a1109b7530f774691dd (diff)
downloadnsfisis.dev-d1014de68415df8f0a5dc3389332e086119c6198.tar.gz
nsfisis.dev-d1014de68415df8f0a5dc3389332e086119c6198.tar.zst
nsfisis.dev-d1014de68415df8f0a5dc3389332e086119c6198.zip
refactor(nuldoc): eliminate JSX
Diffstat (limited to 'services/nuldoc/nuldoc-src/pages/AboutPage.ts')
-rw-r--r--services/nuldoc/nuldoc-src/pages/AboutPage.ts160
1 files changed, 160 insertions, 0 deletions
diff --git a/services/nuldoc/nuldoc-src/pages/AboutPage.ts b/services/nuldoc/nuldoc-src/pages/AboutPage.ts
new file mode 100644
index 0000000..43e239e
--- /dev/null
+++ b/services/nuldoc/nuldoc-src/pages/AboutPage.ts
@@ -0,0 +1,160 @@
+import GlobalFooter from "../components/GlobalFooter.ts";
+import GlobalHeader from "../components/AboutGlobalHeader.ts";
+import PageLayout from "../components/PageLayout.ts";
+import StaticScript from "../components/StaticScript.ts";
+import { Config } from "../config.ts";
+import { dateToString } from "../revision.ts";
+import { getPostPublishedDate } from "../generators/post.ts";
+import { SlidePage } from "../generators/slide.ts";
+import { elem, Element } from "../dom.ts";
+
+export default async function AboutPage(
+ slides: SlidePage[],
+ config: Config,
+): Promise<Element> {
+ return await PageLayout({
+ metaCopyrightYear: config.site.copyrightYear,
+ metaDescription: "このサイトの著者について",
+ metaTitle: `About|${config.sites.about.siteName}`,
+ site: "about",
+ config,
+ children: elem(
+ "body",
+ { class: "single" },
+ GlobalHeader({ config }),
+ elem(
+ "main",
+ { class: "main" },
+ elem(
+ "article",
+ { class: "post-single" },
+ elem(
+ "header",
+ { class: "post-header" },
+ elem("h1", { class: "post-title" }, "nsfisis"),
+ elem(
+ "div",
+ { class: "my-icon" },
+ elem(
+ "div",
+ { id: "myIcon" },
+ elem("img", { src: "/favicon.svg" }),
+ ),
+ await StaticScript({
+ fileName: "/my-icon.js",
+ defer: "true",
+ config,
+ }),
+ ),
+ ),
+ elem(
+ "div",
+ { class: "post-content" },
+ elem(
+ "section",
+ {},
+ elem("h2", {}, "読み方"),
+ elem(
+ "p",
+ {},
+ "読み方は決めていません。音にする必要があるときは本名である「いまむら」をお使いください。",
+ ),
+ ),
+ elem(
+ "section",
+ {},
+ elem("h2", {}, "アカウント"),
+ elem(
+ "ul",
+ {},
+ elem(
+ "li",
+ {},
+ elem(
+ "a",
+ {
+ href: "https://twitter.com/nsfisis",
+ target: "_blank",
+ rel: "noreferrer",
+ },
+ "Twitter (現 𝕏): @nsfisis",
+ ),
+ ),
+ elem(
+ "li",
+ {},
+ elem(
+ "a",
+ {
+ href: "https://github.com/nsfisis",
+ target: "_blank",
+ rel: "noreferrer",
+ },
+ "GitHub: @nsfisis",
+ ),
+ ),
+ ),
+ ),
+ elem(
+ "section",
+ {},
+ elem("h2", {}, "仕事"),
+ elem(
+ "ul",
+ {},
+ elem(
+ "li",
+ {},
+ "2021-01~現在: ",
+ elem(
+ "a",
+ {
+ href: "https://www.dgcircus.com/",
+ target: "_blank",
+ rel: "noreferrer",
+ },
+ "デジタルサーカス株式会社",
+ ),
+ ),
+ ),
+ ),
+ elem(
+ "section",
+ {},
+ elem("h2", {}, "登壇"),
+ elem(
+ "ul",
+ {},
+ ...Array.from(slides)
+ .sort((a, b) => {
+ const ta = dateToString(getPostPublishedDate(a));
+ const tb = dateToString(getPostPublishedDate(b));
+ if (ta > tb) return -1;
+ if (ta < tb) return 1;
+ return 0;
+ })
+ .map((slide) =>
+ elem(
+ "li",
+ {},
+ elem(
+ "a",
+ {
+ href:
+ `https://${config.sites.slides.fqdn}${slide.href}`,
+ },
+ `${
+ dateToString(getPostPublishedDate(slide))
+ }: ${slide.event} (${slide.talkType})`,
+ ),
+ )
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ GlobalFooter({ config }),
+ ),
+ });
+}