diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-27 06:29:01 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-27 06:29:01 +0900 |
| commit | 83b1286354e0f5e83927c8fb35a584e587b5530b (patch) | |
| tree | f8771f7808cd68b295c9e57051b7604de15fe8c8 /services/nuldoc/nuldoc-src/pages | |
| parent | 327622573dcb8879b9dba934792403a9fb7239a7 (diff) | |
| download | nsfisis.dev-83b1286354e0f5e83927c8fb35a584e587b5530b.tar.gz nsfisis.dev-83b1286354e0f5e83927c8fb35a584e587b5530b.tar.zst nsfisis.dev-83b1286354e0f5e83927c8fb35a584e587b5530b.zip | |
refactor(nuldoc): Refactor elem()
Diffstat (limited to 'services/nuldoc/nuldoc-src/pages')
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/AboutPage.ts | 97 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/AtomPage.ts | 8 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/HomePage.ts | 46 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/NotFoundPage.ts | 4 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/PostListPage.ts | 7 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/PostPage.ts | 46 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/SlideListPage.ts | 10 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/SlidePage.ts | 54 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/TagListPage.ts | 23 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/TagPage.ts | 4 |
10 files changed, 142 insertions, 157 deletions
diff --git a/services/nuldoc/nuldoc-src/pages/AboutPage.ts b/services/nuldoc/nuldoc-src/pages/AboutPage.ts index 43e239e..65a503d 100644 --- a/services/nuldoc/nuldoc-src/pages/AboutPage.ts +++ b/services/nuldoc/nuldoc-src/pages/AboutPage.ts @@ -6,7 +6,21 @@ 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"; +import { + a, + article, + div, + elem, + Element, + h1, + h2, + header, + img, + li, + p, + section, + ul, +} from "../dom.ts"; export default async function AboutPage( slides: SlidePage[], @@ -25,20 +39,16 @@ export default async function AboutPage( elem( "main", { class: "main" }, - elem( - "article", + article( { class: "post-single" }, - elem( - "header", + header( { class: "post-header" }, - elem("h1", { class: "post-title" }, "nsfisis"), - elem( - "div", + h1({ class: "post-title" }, "nsfisis"), + div( { class: "my-icon" }, - elem( - "div", + div( { id: "myIcon" }, - elem("img", { src: "/favicon.svg" }), + img({ src: "/favicon.svg" }), ), await StaticScript({ fileName: "/my-icon.js", @@ -47,31 +57,24 @@ export default async function AboutPage( }), ), ), - elem( - "div", + div( { class: "post-content" }, - elem( - "section", + section( {}, - elem("h2", {}, "読み方"), - elem( - "p", + h2({}, "読み方"), + p( {}, "読み方は決めていません。音にする必要があるときは本名である「いまむら」をお使いください。", ), ), - elem( - "section", + section( {}, - elem("h2", {}, "アカウント"), - elem( - "ul", + h2({}, "アカウント"), + ul( {}, - elem( - "li", + li( {}, - elem( - "a", + a( { href: "https://twitter.com/nsfisis", target: "_blank", @@ -80,11 +83,9 @@ export default async function AboutPage( "Twitter (現 𝕏): @nsfisis", ), ), - elem( - "li", + li( {}, - elem( - "a", + a( { href: "https://github.com/nsfisis", target: "_blank", @@ -95,19 +96,15 @@ export default async function AboutPage( ), ), ), - elem( - "section", + section( {}, - elem("h2", {}, "仕事"), - elem( - "ul", + h2({}, "仕事"), + ul( {}, - elem( - "li", + li( {}, "2021-01~現在: ", - elem( - "a", + a( { href: "https://www.dgcircus.com/", target: "_blank", @@ -118,27 +115,23 @@ export default async function AboutPage( ), ), ), - elem( - "section", + section( {}, - elem("h2", {}, "登壇"), - elem( - "ul", + h2({}, "登壇"), + ul( {}, ...Array.from(slides) - .sort((a, b) => { - const ta = dateToString(getPostPublishedDate(a)); - const tb = dateToString(getPostPublishedDate(b)); + .sort((s1, s2) => { + const ta = dateToString(getPostPublishedDate(s1)); + const tb = dateToString(getPostPublishedDate(s2)); if (ta > tb) return -1; if (ta < tb) return 1; return 0; }) .map((slide) => - elem( - "li", + li( {}, - elem( - "a", + a( { href: `https://${config.sites.slides.fqdn}${slide.href}`, diff --git a/services/nuldoc/nuldoc-src/pages/AtomPage.ts b/services/nuldoc/nuldoc-src/pages/AtomPage.ts index f270972..b39902e 100644 --- a/services/nuldoc/nuldoc-src/pages/AtomPage.ts +++ b/services/nuldoc/nuldoc-src/pages/AtomPage.ts @@ -1,5 +1,5 @@ import { Feed } from "../generators/atom.ts"; -import { elem, Element } from "../dom.ts"; +import { elem, Element, link } from "../dom.ts"; export default function AtomPage({ feed }: { feed: Feed }): Element { return elem( @@ -7,8 +7,8 @@ export default function AtomPage({ feed }: { feed: Feed }): Element { { xmlns: "http://www.w3.org/2005/Atom" }, elem("id", {}, feed.id), elem("title", {}, feed.title), - elem("link", { rel: "alternate", href: feed.linkToAlternate }), - elem("link", { rel: "self", href: feed.linkToSelf }), + link({ rel: "alternate", href: feed.linkToAlternate }), + link({ rel: "self", href: feed.linkToSelf }), elem("author", {}, elem("name", {}, feed.author)), elem("updated", {}, feed.updated), ...feed.entries.map((entry) => @@ -16,7 +16,7 @@ export default function AtomPage({ feed }: { feed: Feed }): Element { "entry", {}, elem("id", {}, entry.id), - elem("link", { rel: "alternate", href: entry.linkToAlternate }), + link({ rel: "alternate", href: entry.linkToAlternate }), elem("title", {}, entry.title), elem("summary", {}, entry.summary), elem("published", {}, entry.published), diff --git a/services/nuldoc/nuldoc-src/pages/HomePage.ts b/services/nuldoc/nuldoc-src/pages/HomePage.ts index 503a382..6e98458 100644 --- a/services/nuldoc/nuldoc-src/pages/HomePage.ts +++ b/services/nuldoc/nuldoc-src/pages/HomePage.ts @@ -2,7 +2,7 @@ import GlobalFooter from "../components/GlobalFooter.ts"; import GlobalHeader from "../components/DefaultGlobalHeader.ts"; import PageLayout from "../components/PageLayout.ts"; import { Config } from "../config.ts"; -import { elem, Element } from "../dom.ts"; +import { a, article, elem, Element, h2, header } from "../dom.ts"; export default async function HomePage(config: Config): Promise<Element> { return await PageLayout({ @@ -19,54 +19,42 @@ export default async function HomePage(config: Config): Promise<Element> { elem( "main", { class: "main" }, - elem( - "article", + article( { class: "post-single" }, - elem( - "article", + article( { class: "post-entry" }, - elem( - "a", + a( { href: `https://${config.sites.about.fqdn}/` }, - elem( - "header", + header( { class: "entry-header" }, - elem("h2", {}, "About"), + h2({}, "About"), ), ), ), - elem( - "article", + article( { class: "post-entry" }, - elem( - "a", + a( { href: `https://${config.sites.blog.fqdn}/posts/` }, - elem("header", { class: "entry-header" }, elem("h2", {}, "Blog")), + header({ class: "entry-header" }, h2({}, "Blog")), ), ), - elem( - "article", + article( { class: "post-entry" }, - elem( - "a", + a( { href: `https://${config.sites.slides.fqdn}/slides/` }, - elem( - "header", + header( { class: "entry-header" }, - elem("h2", {}, "Slides"), + h2({}, "Slides"), ), ), ), - elem( - "article", + article( { class: "post-entry" }, - elem( - "a", + a( { href: `https://repos.${config.sites.default.fqdn}/` }, - elem( - "header", + header( { class: "entry-header" }, - elem("h2", {}, "Repositories"), + h2({}, "Repositories"), ), ), ), diff --git a/services/nuldoc/nuldoc-src/pages/NotFoundPage.ts b/services/nuldoc/nuldoc-src/pages/NotFoundPage.ts index 34854c4..6208066 100644 --- a/services/nuldoc/nuldoc-src/pages/NotFoundPage.ts +++ b/services/nuldoc/nuldoc-src/pages/NotFoundPage.ts @@ -5,7 +5,7 @@ import SlidesGlobalHeader from "../components/SlidesGlobalHeader.ts"; import DefaultGlobalHeader from "../components/DefaultGlobalHeader.ts"; import PageLayout from "../components/PageLayout.ts"; import { Config } from "../config.ts"; -import { elem, Element } from "../dom.ts"; +import { article, div, elem, Element } from "../dom.ts"; export default async function NotFoundPage( site: "default" | "about" | "blog" | "slides", @@ -32,7 +32,7 @@ export default async function NotFoundPage( elem( "main", { class: "main" }, - elem("article", {}, elem("div", { class: "not-found" }, "404")), + article({}, div({ class: "not-found" }, "404")), ), GlobalFooter({ config }), ), diff --git a/services/nuldoc/nuldoc-src/pages/PostListPage.ts b/services/nuldoc/nuldoc-src/pages/PostListPage.ts index 53b8fa4..ef7bfc5 100644 --- a/services/nuldoc/nuldoc-src/pages/PostListPage.ts +++ b/services/nuldoc/nuldoc-src/pages/PostListPage.ts @@ -5,7 +5,7 @@ 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"; +import { elem, Element, h1, header } from "../dom.ts"; export default async function PostListPage( posts: PostPage[], @@ -34,10 +34,9 @@ export default async function PostListPage( elem( "main", { class: "main" }, - elem( - "header", + header( { class: "page-header" }, - elem("h1", {}, pageTitle + pageInfoSuffix), + h1({}, pageTitle + pageInfoSuffix), ), Pagination({ currentPage, totalPages, basePath: "/posts/" }), ...posts.map((post) => PostPageEntry({ post, config })), diff --git a/services/nuldoc/nuldoc-src/pages/PostPage.ts b/services/nuldoc/nuldoc-src/pages/PostPage.ts index fe67089..3b163d1 100644 --- a/services/nuldoc/nuldoc-src/pages/PostPage.ts +++ b/services/nuldoc/nuldoc-src/pages/PostPage.ts @@ -3,7 +3,20 @@ import GlobalHeader from "../components/BlogGlobalHeader.ts"; import PageLayout from "../components/PageLayout.ts"; import TableOfContents from "../components/TableOfContents.ts"; import { Config, getTagLabel } from "../config.ts"; -import { elem, Element } from "../dom.ts"; +import { + a, + article, + div, + elem, + Element, + h1, + h2, + header, + li, + ol, + section, + ul, +} from "../dom.ts"; import { Document } from "../markdown/document.ts"; import { dateToString } from "../revision.ts"; import { getPostPublishedDate } from "../generators/post.ts"; @@ -27,23 +40,18 @@ export default async function PostPage( elem( "main", { class: "main" }, - elem( - "article", + article( { class: "post-single" }, - elem( - "header", + header( { class: "post-header" }, - elem("h1", { class: "post-title" }, doc.title), + h1({ class: "post-title" }, doc.title), doc.tags.length !== 0 - ? elem( - "ul", + ? ul( { class: "post-tags" }, ...doc.tags.map((slug) => - elem( - "li", + li( { class: "tag" }, - elem( - "a", + a( { href: `/tags/${slug}/` }, getTagLabel(config, slug), ), @@ -55,19 +63,15 @@ export default async function PostPage( doc.toc && doc.toc.entries.length > 0 ? TableOfContents({ toc: doc.toc }) : null, - elem( - "div", + div( { class: "post-content" }, - elem( - "section", + section( { id: "changelog" }, - elem("h2", {}, elem("a", { href: "#changelog" }, "更新履歴")), - elem( - "ol", + h2({}, a({ href: "#changelog" }, "更新履歴")), + ol( {}, ...doc.revisions.map((rev) => - elem( - "li", + li( { class: "revision" }, elem( "time", diff --git a/services/nuldoc/nuldoc-src/pages/SlideListPage.ts b/services/nuldoc/nuldoc-src/pages/SlideListPage.ts index 9a1c2b2..f1b1a2a 100644 --- a/services/nuldoc/nuldoc-src/pages/SlideListPage.ts +++ b/services/nuldoc/nuldoc-src/pages/SlideListPage.ts @@ -6,7 +6,7 @@ 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"; +import { elem, Element, h1, header } from "../dom.ts"; export default async function SlideListPage( slides: SlidePage[], @@ -28,11 +28,11 @@ export default async function SlideListPage( elem( "main", { class: "main" }, - elem("header", { class: "page-header" }, elem("h1", {}, pageTitle)), + header({ class: "page-header" }, h1({}, pageTitle)), ...Array.from(slides) - .sort((a, b) => { - const ta = dateToString(getPostPublishedDate(a)); - const tb = dateToString(getPostPublishedDate(b)); + .sort((s1, s2) => { + const ta = dateToString(getPostPublishedDate(s1)); + const tb = dateToString(getPostPublishedDate(s2)); if (ta > tb) return -1; if (ta < tb) return 1; return 0; diff --git a/services/nuldoc/nuldoc-src/pages/SlidePage.ts b/services/nuldoc/nuldoc-src/pages/SlidePage.ts index 8699134..1c6709c 100644 --- a/services/nuldoc/nuldoc-src/pages/SlidePage.ts +++ b/services/nuldoc/nuldoc-src/pages/SlidePage.ts @@ -6,7 +6,21 @@ import { Config, getTagLabel } from "../config.ts"; import { dateToString } from "../revision.ts"; import { Slide } from "../slide/slide.ts"; import { getPostPublishedDate } from "../generators/post.ts"; -import { elem, Element } from "../dom.ts"; +import { + a, + article, + button, + div, + elem, + Element, + h1, + h2, + header, + li, + ol, + section, + ul, +} from "../dom.ts"; export default async function SlidePage( slide: Slide, @@ -28,23 +42,18 @@ export default async function SlidePage( elem( "main", { class: "main" }, - elem( - "article", + article( { class: "post-single" }, - elem( - "header", + header( { class: "post-header" }, - elem("h1", { class: "post-title" }, slide.title), + h1({ class: "post-title" }, slide.title), slide.tags.length !== 0 - ? elem( - "ul", + ? ul( { class: "post-tags" }, ...slide.tags.map((slug) => - elem( - "li", + li( { class: "tag" }, - elem( - "a", + a( { href: `/tags/${slug}/` }, getTagLabel(config, slug), ), @@ -53,19 +62,15 @@ export default async function SlidePage( ) : null, ), - elem( - "div", + div( { class: "post-content" }, - elem( - "section", + section( { id: "changelog" }, - elem("h2", {}, elem("a", { href: "#changelog" }, "更新履歴")), - elem( - "ol", + h2({}, a({ href: "#changelog" }, "更新履歴")), + ol( {}, ...slide.revisions.map((rev) => - elem( - "li", + li( { class: "revision" }, elem( "time", @@ -78,11 +83,10 @@ export default async function SlidePage( ), ), elem("canvas", { id: "slide", "data-slide-link": slide.slideLink }), - elem( - "div", + div( {}, - elem("button", { id: "prev", type: "button" }, "Prev"), - elem("button", { id: "next", type: "button" }, "Next"), + button({ id: "prev", type: "button" }, "Prev"), + button({ id: "next", type: "button" }, "Next"), ), await StaticScript({ fileName: "/slide.js", diff --git a/services/nuldoc/nuldoc-src/pages/TagListPage.ts b/services/nuldoc/nuldoc-src/pages/TagListPage.ts index 6872a2f..cf1ec51 100644 --- a/services/nuldoc/nuldoc-src/pages/TagListPage.ts +++ b/services/nuldoc/nuldoc-src/pages/TagListPage.ts @@ -4,7 +4,7 @@ import SlidesGlobalHeader from "../components/SlidesGlobalHeader.ts"; import PageLayout from "../components/PageLayout.ts"; import { Config } from "../config.ts"; import { TagPage } from "../generators/tag.ts"; -import { elem, Element } from "../dom.ts"; +import { a, article, elem, Element, footer, h1, h2, header } from "../dom.ts"; export default async function TagListPage( tags: TagPage[], @@ -28,11 +28,11 @@ export default async function TagListPage( elem( "main", { class: "main" }, - elem("header", { class: "page-header" }, elem("h1", {}, pageTitle)), + header({ class: "page-header" }, h1({}, pageTitle)), ...Array.from(tags) - .sort((a, b) => { - const ta = a.tagSlug; - const tb = b.tagSlug; + .sort((t1, t2) => { + const ta = t1.tagSlug; + const tb = t2.tagSlug; if (ta < tb) return -1; if (ta > tb) return 1; return 0; @@ -48,18 +48,15 @@ export default async function TagListPage( posts && slides ? "、" : "" }${slides}`; - return elem( - "article", + return article( { class: "post-entry" }, - elem( - "a", + a( { href: tag.href }, - elem( - "header", + header( { class: "entry-header" }, - elem("h2", {}, tag.tagLabel), + h2({}, tag.tagLabel), ), - elem("footer", { class: "entry-footer" }, footerText), + footer({ class: "entry-footer" }, footerText), ), ); }), diff --git a/services/nuldoc/nuldoc-src/pages/TagPage.ts b/services/nuldoc/nuldoc-src/pages/TagPage.ts index 408f0b4..1826219 100644 --- a/services/nuldoc/nuldoc-src/pages/TagPage.ts +++ b/services/nuldoc/nuldoc-src/pages/TagPage.ts @@ -7,7 +7,7 @@ import SlidePageEntry from "../components/SlidePageEntry.ts"; import { Config, getTagLabel } from "../config.ts"; import { getPostPublishedDate } from "../generators/post.ts"; import { TaggedPage } from "../generators/tagged_page.ts"; -import { elem, Element } from "../dom.ts"; +import { elem, Element, h1, header } from "../dom.ts"; export default async function TagPage( tagSlug: string, @@ -37,7 +37,7 @@ export default async function TagPage( elem( "main", { class: "main" }, - elem("header", { class: "page-header" }, elem("h1", {}, pageTitle)), + header({ class: "page-header" }, h1({}, pageTitle)), ...pages.map((page) => "event" in page ? SlidePageEntry({ slide: page, config }) |
