aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/nuldoc-src/generators
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-11-02 22:03:42 +0900
committernsfisis <nsfisis@gmail.com>2025-11-02 22:03:42 +0900
commitfc651662cb9dd86dcb3010ba6cf35399b7c25587 (patch)
tree2bc54e43cf8ada8a0250ce997e7cc86a58fd913a /services/nuldoc/nuldoc-src/generators
parent4536c5ebaea16c291e8e1cd932b934302d7620ac (diff)
downloadnsfisis.dev-fc651662cb9dd86dcb3010ba6cf35399b7c25587.tar.gz
nsfisis.dev-fc651662cb9dd86dcb3010ba6cf35399b7c25587.tar.zst
nsfisis.dev-fc651662cb9dd86dcb3010ba6cf35399b7c25587.zip
feat(nuldoc): Update generator for multi-site structure
Diffstat (limited to 'services/nuldoc/nuldoc-src/generators')
-rw-r--r--services/nuldoc/nuldoc-src/generators/about.ts5
-rw-r--r--services/nuldoc/nuldoc-src/generators/atom.ts16
-rw-r--r--services/nuldoc/nuldoc-src/generators/home.ts1
-rw-r--r--services/nuldoc/nuldoc-src/generators/not_found.ts2
-rw-r--r--services/nuldoc/nuldoc-src/generators/post.ts1
-rw-r--r--services/nuldoc/nuldoc-src/generators/post_list.ts1
-rw-r--r--services/nuldoc/nuldoc-src/generators/slide.ts1
-rw-r--r--services/nuldoc/nuldoc-src/generators/slide_list.ts1
-rw-r--r--services/nuldoc/nuldoc-src/generators/tag.ts4
-rw-r--r--services/nuldoc/nuldoc-src/generators/tag_list.ts2
10 files changed, 26 insertions, 8 deletions
diff --git a/services/nuldoc/nuldoc-src/generators/about.ts b/services/nuldoc/nuldoc-src/generators/about.ts
index 6663a19..711c167 100644
--- a/services/nuldoc/nuldoc-src/generators/about.ts
+++ b/services/nuldoc/nuldoc-src/generators/about.ts
@@ -17,7 +17,8 @@ export async function generateAboutPage(
return {
root: html,
renderer: "html",
- destFilePath: "/about/index.html",
- href: "/about/",
+ site: "about",
+ destFilePath: "/index.html",
+ href: "/",
};
}
diff --git a/services/nuldoc/nuldoc-src/generators/atom.ts b/services/nuldoc/nuldoc-src/generators/atom.ts
index 6ad07b4..bcd9ba0 100644
--- a/services/nuldoc/nuldoc-src/generators/atom.ts
+++ b/services/nuldoc/nuldoc-src/generators/atom.ts
@@ -33,13 +33,16 @@ export async function generateFeedPageFromEntries(
feedSlug: string,
feedTitle: string,
entries: Array<PostPage | SlidePage>,
+ site: "default" | "blog" | "slides",
config: Config,
): Promise<Page> {
const entries_: Entry[] = [];
for (const entry of entries) {
entries_.push({
id: `urn:uuid:${entry.uuid}`,
- linkToAlternate: `https://${config.blog.fqdn}${entry.href}`,
+ linkToAlternate: `https://${
+ "event" in entry ? config.sites.slides.fqdn : config.sites.blog.fqdn
+ }${entry.href}`,
title: entry.title,
summary: entry.description,
published: dateToRfc3339String(entry.published),
@@ -58,10 +61,12 @@ export async function generateFeedPageFromEntries(
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}`,
+ icon: `https://${config.sites[site].fqdn}/favicon.svg`,
+ id: `tag:${
+ config.sites[site].fqdn
+ },${config.site.copyrightYear}:${feedSlug}`,
+ linkToSelf: `https://${config.sites[site].fqdn}${feedPath}`,
+ linkToAlternate: `https://${config.sites[site].fqdn}${alternateLink}`,
title: feedTitle,
updated: entries_.reduce(
(latest, entry) => entry.updated > latest ? entry.updated : latest,
@@ -73,6 +78,7 @@ export async function generateFeedPageFromEntries(
return {
root: await renderToDOM(AtomPage({ feed: feed })),
renderer: "xml",
+ site,
destFilePath: feedPath,
href: feedPath,
};
diff --git a/services/nuldoc/nuldoc-src/generators/home.ts b/services/nuldoc/nuldoc-src/generators/home.ts
index 679dd39..ac91637 100644
--- a/services/nuldoc/nuldoc-src/generators/home.ts
+++ b/services/nuldoc/nuldoc-src/generators/home.ts
@@ -13,6 +13,7 @@ export async function generateHomePage(config: Config): Promise<HomePage> {
return {
root: html,
renderer: "html",
+ site: "default",
destFilePath: "/index.html",
href: "/",
};
diff --git a/services/nuldoc/nuldoc-src/generators/not_found.ts b/services/nuldoc/nuldoc-src/generators/not_found.ts
index f5a81c8..81fdb35 100644
--- a/services/nuldoc/nuldoc-src/generators/not_found.ts
+++ b/services/nuldoc/nuldoc-src/generators/not_found.ts
@@ -6,6 +6,7 @@ import { Page } from "../page.ts";
export type NotFoundPage = Page;
export async function generateNotFoundPage(
+ site: "default" | "about" | "blog" | "slides",
config: Config,
): Promise<NotFoundPage> {
const html = await renderToDOM(
@@ -15,6 +16,7 @@ export async function generateNotFoundPage(
return {
root: html,
renderer: "html",
+ site,
destFilePath: "/404.html",
href: "/404.html",
};
diff --git a/services/nuldoc/nuldoc-src/generators/post.ts b/services/nuldoc/nuldoc-src/generators/post.ts
index 0e2a955..4e08f88 100644
--- a/services/nuldoc/nuldoc-src/generators/post.ts
+++ b/services/nuldoc/nuldoc-src/generators/post.ts
@@ -50,6 +50,7 @@ export async function generatePostPage(
return {
root: html,
renderer: "html",
+ site: "blog",
destFilePath: destFilePath,
href: destFilePath.replace("index.html", ""),
title: doc.title,
diff --git a/services/nuldoc/nuldoc-src/generators/post_list.ts b/services/nuldoc/nuldoc-src/generators/post_list.ts
index b05f7ee..6a21dd8 100644
--- a/services/nuldoc/nuldoc-src/generators/post_list.ts
+++ b/services/nuldoc/nuldoc-src/generators/post_list.ts
@@ -57,6 +57,7 @@ async function generatePostListPage(
return {
root: html,
renderer: "html",
+ site: "blog",
destFilePath,
href,
};
diff --git a/services/nuldoc/nuldoc-src/generators/slide.ts b/services/nuldoc/nuldoc-src/generators/slide.ts
index cd28879..feab583 100644
--- a/services/nuldoc/nuldoc-src/generators/slide.ts
+++ b/services/nuldoc/nuldoc-src/generators/slide.ts
@@ -37,6 +37,7 @@ export async function generateSlidePage(
return {
root: html,
renderer: "html",
+ site: "slides",
destFilePath: destFilePath,
href: destFilePath.replace("index.html", ""),
title: slide.title,
diff --git a/services/nuldoc/nuldoc-src/generators/slide_list.ts b/services/nuldoc/nuldoc-src/generators/slide_list.ts
index abebe10..9f766ed 100644
--- a/services/nuldoc/nuldoc-src/generators/slide_list.ts
+++ b/services/nuldoc/nuldoc-src/generators/slide_list.ts
@@ -17,6 +17,7 @@ export async function generateSlideListPage(
return {
root: html,
renderer: "html",
+ site: "slides",
destFilePath: "/slides/index.html",
href: "/slides/",
};
diff --git a/services/nuldoc/nuldoc-src/generators/tag.ts b/services/nuldoc/nuldoc-src/generators/tag.ts
index dbd8ef9..11335c6 100644
--- a/services/nuldoc/nuldoc-src/generators/tag.ts
+++ b/services/nuldoc/nuldoc-src/generators/tag.ts
@@ -14,15 +14,17 @@ export interface TagPage extends Page {
export async function generateTagPage(
tagSlug: string,
pages: TaggedPage[],
+ site: "blog" | "slides",
config: Config,
): Promise<TagPage> {
const html = await renderToDOM(
- TagPage(tagSlug, pages, config),
+ TagPage(tagSlug, pages, site, config),
);
return {
root: html,
renderer: "html",
+ site,
destFilePath: `/tags/${tagSlug}/index.html`,
href: `/tags/${tagSlug}/`,
tagSlug: tagSlug,
diff --git a/services/nuldoc/nuldoc-src/generators/tag_list.ts b/services/nuldoc/nuldoc-src/generators/tag_list.ts
index 7baad8c..76b0fe5 100644
--- a/services/nuldoc/nuldoc-src/generators/tag_list.ts
+++ b/services/nuldoc/nuldoc-src/generators/tag_list.ts
@@ -8,6 +8,7 @@ export type TagListPage = Page;
export async function generateTagListPage(
tags: TagPage[],
+ site: "blog" | "slides",
config: Config,
): Promise<TagListPage> {
const html = await renderToDOM(
@@ -17,6 +18,7 @@ export async function generateTagListPage(
return {
root: html,
renderer: "html",
+ site,
destFilePath: "/tags/index.html",
href: "/tags/",
};