diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-01-12 19:44:19 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-01-12 21:37:23 +0900 |
| commit | 940eae61767214eb1ee573284dc8b5876d536fb3 (patch) | |
| tree | ed82c51e568eea064b530e815f12bd2fc701eef6 /vhosts/blog/nuldoc-src/pages/slide.ts | |
| parent | 98abcc023b99898f3a7e182e2330ea809a4c99e2 (diff) | |
| download | nsfisis.dev-940eae61767214eb1ee573284dc8b5876d536fb3.tar.gz nsfisis.dev-940eae61767214eb1ee573284dc8b5876d536fb3.tar.zst nsfisis.dev-940eae61767214eb1ee573284dc8b5876d536fb3.zip | |
refactor(blog/nuldoc): convert pages/*.ts to TSX
Diffstat (limited to 'vhosts/blog/nuldoc-src/pages/slide.ts')
| -rw-r--r-- | vhosts/blog/nuldoc-src/pages/slide.ts | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/vhosts/blog/nuldoc-src/pages/slide.ts b/vhosts/blog/nuldoc-src/pages/slide.ts deleted file mode 100644 index 15a18bb1..00000000 --- a/vhosts/blog/nuldoc-src/pages/slide.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { join } from "std/path/mod.ts"; -import { globalFooter } from "../components/global_footer.ts"; -import { globalHeader } from "../components/global_header.ts"; -import { pageLayout } from "../components/page_layout.ts"; -import { staticScriptElement } from "../components/utils.ts"; -import { Config, getTagLabel } from "../config.ts"; -import { el } from "../dom.ts"; -import { Page } from "../page.ts"; -import { Date, dateToString, Revision } from "../revision.ts"; -import { Slide } from "../slide/slide.ts"; -import { getPostPublishedDate, getPostUpdatedDate } from "./post.ts"; - -export interface SlidePage extends Page { - title: string; - description: string; - event: string; - talkType: string; - slideLink: string; - tags: string[]; - revisions: Revision[]; - published: Date; - updated: Date; - uuid: string; -} - -export async function generateSlidePage( - slide: Slide, - config: Config, -): Promise<SlidePage> { - const body = el( - "body", - { className: "single" }, - globalHeader(config), - el( - "main", - { className: "main" }, - el( - "article", - { className: "post-single" }, - el( - "header", - { className: "post-header" }, - el("h1", { className: "post-title" }, slide.title), - ...(slide.tags.length === 0 ? [] : [ - el( - "ul", - { className: "post-tags" }, - ...slide.tags.map((slug) => - el( - "li", - { className: "tag" }, - el( - "a", - { href: `/tags/${slug}/` }, - getTagLabel(config, slug), - ), - ) - ), - ), - ]), - ), - el( - "div", - { className: "post-content" }, - el( - "section", - {}, - el("h2", { id: "changelog" }, "更新履歴"), - el( - "ol", - {}, - ...slide.revisions.map((rev) => - el( - "li", - { className: "revision" }, - el( - "time", - { datetime: dateToString(rev.date) }, - dateToString(rev.date), - ), - `: ${rev.remark}`, - ) - ), - ), - ), - el( - "canvas", - { id: "slide", "data-slide-link": slide.slideLink }, - ), - el( - "div", - {}, - el("button", { id: "prev" }, "Prev"), - el("button", { id: "next" }, "Next"), - ), - await staticScriptElement("/slide.js", { type: "module" }, config), - ), - ), - ), - globalFooter(config), - ); - - const html = await pageLayout( - { - metaCopyrightYear: getPostPublishedDate(slide).year, - metaDescription: slide.title, - metaKeywords: slide.tags.map((slug) => getTagLabel(config, slug)), - metaTitle: `${slide.event} (${slide.talkType})|${config.blog.siteName}`, - requiresSyntaxHighlight: true, - }, - body, - config, - ); - - const cwd = Deno.cwd(); - const contentDir = join(cwd, config.locations.contentDir); - const destFilePath = join( - slide.sourceFilePath.replace(contentDir, "").replace(".toml", ""), - "index.html", - ); - return { - root: el("__root__", {}, html), - renderer: "html", - destFilePath: destFilePath, - href: destFilePath.replace("index.html", ""), - title: slide.title, - description: `登壇: ${slide.event} (${slide.talkType})`, - event: slide.event, - talkType: slide.talkType, - slideLink: slide.slideLink, - tags: slide.tags, - revisions: slide.revisions, - published: getPostPublishedDate(slide), - updated: getPostUpdatedDate(slide), - uuid: slide.uuid, - }; -} |
