From 674fe965550444db87edc7937ff6932e1a918d9d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 27 Jun 2025 23:39:31 +0900 Subject: feat(meta): rename vhosts/ directory to services/ --- vhosts/blog/nuldoc-src/generators/about.ts | 23 ------- vhosts/blog/nuldoc-src/generators/atom.ts | 79 ------------------------ vhosts/blog/nuldoc-src/generators/home.ts | 19 ------ vhosts/blog/nuldoc-src/generators/not_found.ts | 21 ------- vhosts/blog/nuldoc-src/generators/post.ts | 63 ------------------- vhosts/blog/nuldoc-src/generators/post_list.ts | 63 ------------------- vhosts/blog/nuldoc-src/generators/slide.ts | 53 ---------------- vhosts/blog/nuldoc-src/generators/slide_list.ts | 23 ------- vhosts/blog/nuldoc-src/generators/tag.ts | 33 ---------- vhosts/blog/nuldoc-src/generators/tag_list.ts | 23 ------- vhosts/blog/nuldoc-src/generators/tagged_page.ts | 4 -- 11 files changed, 404 deletions(-) delete mode 100644 vhosts/blog/nuldoc-src/generators/about.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/atom.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/home.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/not_found.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/post.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/post_list.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/slide.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/slide_list.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/tag.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/tag_list.ts delete mode 100644 vhosts/blog/nuldoc-src/generators/tagged_page.ts (limited to 'vhosts/blog/nuldoc-src/generators') diff --git a/vhosts/blog/nuldoc-src/generators/about.ts b/vhosts/blog/nuldoc-src/generators/about.ts deleted file mode 100644 index 6663a190..00000000 --- a/vhosts/blog/nuldoc-src/generators/about.ts +++ /dev/null @@ -1,23 +0,0 @@ -import AboutPage from "../pages/AboutPage.tsx"; -import { Config } from "../config.ts"; -import { renderToDOM } from "../jsx/render.ts"; -import { Page } from "../page.ts"; -import { SlidePage } from "./slide.ts"; - -export type AboutPage = Page; - -export async function generateAboutPage( - slides: SlidePage[], - config: Config, -): Promise { - const html = await renderToDOM( - AboutPage(slides, config), - ); - - return { - root: html, - renderer: "html", - destFilePath: "/about/index.html", - href: "/about/", - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/atom.ts b/vhosts/blog/nuldoc-src/generators/atom.ts deleted file mode 100644 index 6ad07b46..00000000 --- a/vhosts/blog/nuldoc-src/generators/atom.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; -import { PostPage } from "../generators/post.ts"; -import { SlidePage } from "../generators/slide.ts"; -import { dateToRfc3339String } from "../revision.ts"; -import AtomPage from "../pages/AtomPage.tsx"; -import { renderToDOM } from "../jsx/render.ts"; - -export type Feed = { - author: string; - icon: string; - id: string; - linkToSelf: string; - linkToAlternate: string; - title: string; - updated: string; - entries: Entry[]; -}; - -export type Entry = { - id: string; - linkToAlternate: string; - published: string; - summary: string; - title: string; - updated: string; -}; - -const BASE_NAME = "atom.xml"; - -export async function generateFeedPageFromEntries( - alternateLink: string, - feedSlug: string, - feedTitle: string, - entries: Array, - config: Config, -): Promise { - const entries_: Entry[] = []; - for (const entry of entries) { - entries_.push({ - id: `urn:uuid:${entry.uuid}`, - linkToAlternate: `https://${config.blog.fqdn}${entry.href}`, - title: entry.title, - summary: entry.description, - published: dateToRfc3339String(entry.published), - updated: dateToRfc3339String(entry.updated), - }); - } - // Sort by published date in ascending order. - entries_.sort((a, b) => { - if (a.published < b.published) { - return 1; - } else if (a.published > b.published) { - return -1; - } - return 0; - }); - const feedPath = `${alternateLink}${BASE_NAME}`; - const feed: Feed = { - author: config.blog.author, - icon: `https://${config.blog.fqdn}/favicon.svg`, - id: `tag:${config.blog.fqdn},${config.blog.siteCopyrightYear}:${feedSlug}`, - linkToSelf: `https://${config.blog.fqdn}${feedPath}`, - linkToAlternate: `https://${config.blog.fqdn}${alternateLink}`, - title: feedTitle, - updated: entries_.reduce( - (latest, entry) => entry.updated > latest ? entry.updated : latest, - entries_[0].updated, - ), - entries: entries_, - }; - - return { - root: await renderToDOM(AtomPage({ feed: feed })), - renderer: "xml", - destFilePath: feedPath, - href: feedPath, - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/home.ts b/vhosts/blog/nuldoc-src/generators/home.ts deleted file mode 100644 index 679dd39a..00000000 --- a/vhosts/blog/nuldoc-src/generators/home.ts +++ /dev/null @@ -1,19 +0,0 @@ -import HomePage from "../pages/HomePage.tsx"; -import { renderToDOM } from "../jsx/render.ts"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; - -export type HomePage = Page; - -export async function generateHomePage(config: Config): Promise { - const html = await renderToDOM( - HomePage(config), - ); - - return { - root: html, - renderer: "html", - destFilePath: "/index.html", - href: "/", - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/not_found.ts b/vhosts/blog/nuldoc-src/generators/not_found.ts deleted file mode 100644 index f5a81c86..00000000 --- a/vhosts/blog/nuldoc-src/generators/not_found.ts +++ /dev/null @@ -1,21 +0,0 @@ -import NotFoundPage from "../pages/NotFoundPage.tsx"; -import { renderToDOM } from "../jsx/render.ts"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; - -export type NotFoundPage = Page; - -export async function generateNotFoundPage( - config: Config, -): Promise { - const html = await renderToDOM( - NotFoundPage(config), - ); - - return { - root: html, - renderer: "html", - destFilePath: "/404.html", - href: "/404.html", - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/post.ts b/vhosts/blog/nuldoc-src/generators/post.ts deleted file mode 100644 index 0e2a9553..00000000 --- a/vhosts/blog/nuldoc-src/generators/post.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { join } from "@std/path"; -import { renderToDOM } from "../jsx/render.ts"; -import PostPage from "../pages/PostPage.tsx"; -import { Config } from "../config.ts"; -import { Document } from "../djot/document.ts"; -import { Page } from "../page.ts"; -import { Date, Revision } from "../revision.ts"; - -export interface PostPage extends Page { - title: string; - description: string; - tags: string[]; - revisions: Revision[]; - published: Date; - updated: Date; - uuid: string; -} - -export function getPostPublishedDate(page: { revisions: Revision[] }): Date { - for (const rev of page.revisions) { - if (!rev.isInternal) { - return rev.date; - } - } - return page.revisions[0].date; -} - -export function getPostUpdatedDate(page: { revisions: Revision[] }): Date { - return page.revisions[page.revisions.length - 1].date; -} - -export function postHasAnyUpdates(page: { revisions: Revision[] }): boolean { - return 2 <= page.revisions.filter((rev) => !rev.isInternal).length; -} - -export async function generatePostPage( - doc: Document, - config: Config, -): Promise { - const html = await renderToDOM( - PostPage(doc, config), - ); - - const cwd = Deno.cwd(); - const contentDir = join(cwd, config.locations.contentDir); - const destFilePath = join( - doc.sourceFilePath.replace(contentDir, "").replace(".dj", ""), - "index.html", - ); - return { - root: html, - renderer: "html", - destFilePath: destFilePath, - href: destFilePath.replace("index.html", ""), - title: doc.title, - description: doc.description, - tags: doc.tags, - revisions: doc.revisions, - published: getPostPublishedDate(doc), - updated: getPostUpdatedDate(doc), - uuid: doc.uuid, - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/post_list.ts b/vhosts/blog/nuldoc-src/generators/post_list.ts deleted file mode 100644 index b05f7ee6..00000000 --- a/vhosts/blog/nuldoc-src/generators/post_list.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { renderToDOM } from "../jsx/render.ts"; -import PostListPage from "../pages/PostListPage.tsx"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; -import { PostPage } from "./post.ts"; - -export type PostListPage = Page; - -export async function generatePostListPages( - posts: PostPage[], - config: Config, -): Promise { - const postsPerPage = config.blog.postsPerPage; - const totalPages = Math.ceil(posts.length / postsPerPage); - const pages: PostListPage[] = []; - - for (let pageIndex = 0; pageIndex < totalPages; pageIndex++) { - const pagePosts = posts.slice( - pageIndex * postsPerPage, - (pageIndex + 1) * postsPerPage, - ); - - const page = await generatePostListPage( - pagePosts, - config, - pageIndex + 1, - totalPages, - ); - - pages.push(page); - } - - return pages; -} - -async function generatePostListPage( - posts: PostPage[], - config: Config, - currentPage: number, - totalPages: number, -): Promise { - const html = await renderToDOM( - PostListPage( - posts, - config, - currentPage, - totalPages, - ), - ); - - const destFilePath = currentPage === 1 - ? "/posts/index.html" - : `/posts/${currentPage}/index.html`; - - const href = currentPage === 1 ? "/posts/" : `/posts/${currentPage}/`; - - return { - root: html, - renderer: "html", - destFilePath, - href, - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/slide.ts b/vhosts/blog/nuldoc-src/generators/slide.ts deleted file mode 100644 index cd28879f..00000000 --- a/vhosts/blog/nuldoc-src/generators/slide.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { join } from "@std/path"; -import { renderToDOM } from "../jsx/render.ts"; -import SlidePage from "../pages/SlidePage.tsx"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; -import { Date, 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 { - const html = await renderToDOM( - SlidePage(slide, 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: 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, - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/slide_list.ts b/vhosts/blog/nuldoc-src/generators/slide_list.ts deleted file mode 100644 index abebe109..00000000 --- a/vhosts/blog/nuldoc-src/generators/slide_list.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { renderToDOM } from "../jsx/render.ts"; -import SlideListPage from "../pages/SlideListPage.tsx"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; -import { SlidePage } from "./slide.ts"; - -export type SlideListPage = Page; - -export async function generateSlideListPage( - slides: SlidePage[], - config: Config, -): Promise { - const html = await renderToDOM( - SlideListPage(slides, config), - ); - - return { - root: html, - renderer: "html", - destFilePath: "/slides/index.html", - href: "/slides/", - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/tag.ts b/vhosts/blog/nuldoc-src/generators/tag.ts deleted file mode 100644 index dbd8ef93..00000000 --- a/vhosts/blog/nuldoc-src/generators/tag.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { renderToDOM } from "../jsx/render.ts"; -import TagPage from "../pages/TagPage.tsx"; -import { Config, getTagLabel } from "../config.ts"; -import { Page } from "../page.ts"; -import { TaggedPage } from "./tagged_page.ts"; - -export interface TagPage extends Page { - tagSlug: string; - tagLabel: string; - numOfPosts: number; - numOfSlides: number; -} - -export async function generateTagPage( - tagSlug: string, - pages: TaggedPage[], - config: Config, -): Promise { - const html = await renderToDOM( - TagPage(tagSlug, pages, config), - ); - - return { - root: html, - renderer: "html", - destFilePath: `/tags/${tagSlug}/index.html`, - href: `/tags/${tagSlug}/`, - tagSlug: tagSlug, - tagLabel: getTagLabel(config, tagSlug), - numOfPosts: pages.filter((p) => !("event" in p)).length, - numOfSlides: pages.filter((p) => "event" in p).length, - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/tag_list.ts b/vhosts/blog/nuldoc-src/generators/tag_list.ts deleted file mode 100644 index 7baad8cf..00000000 --- a/vhosts/blog/nuldoc-src/generators/tag_list.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { renderToDOM } from "../jsx/render.ts"; -import TagListPage from "../pages/TagListPage.tsx"; -import { Config } from "../config.ts"; -import { Page } from "../page.ts"; -import { TagPage } from "./tag.ts"; - -export type TagListPage = Page; - -export async function generateTagListPage( - tags: TagPage[], - config: Config, -): Promise { - const html = await renderToDOM( - TagListPage(tags, config), - ); - - return { - root: html, - renderer: "html", - destFilePath: "/tags/index.html", - href: "/tags/", - }; -} diff --git a/vhosts/blog/nuldoc-src/generators/tagged_page.ts b/vhosts/blog/nuldoc-src/generators/tagged_page.ts deleted file mode 100644 index 23de8cb4..00000000 --- a/vhosts/blog/nuldoc-src/generators/tagged_page.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PostPage } from "./post.ts"; -import { SlidePage } from "./slide.ts"; - -export type TaggedPage = PostPage | SlidePage; -- cgit v1.2.3-70-g09d2