diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-02 22:03:42 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-02 22:03:42 +0900 |
| commit | fc651662cb9dd86dcb3010ba6cf35399b7c25587 (patch) | |
| tree | 2bc54e43cf8ada8a0250ce997e7cc86a58fd913a /services/nuldoc/nuldoc-src/generators | |
| parent | 4536c5ebaea16c291e8e1cd932b934302d7620ac (diff) | |
| download | nsfisis.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.ts | 5 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/atom.ts | 16 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/home.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/not_found.ts | 2 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/post.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/post_list.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/slide.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/slide_list.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/tag.ts | 4 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/generators/tag_list.ts | 2 |
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/", }; |
