aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/nuldoc-src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-11-30 01:59:41 +0900
committernsfisis <nsfisis@gmail.com>2025-11-30 01:59:41 +0900
commitb357037a9062d6ef6bd7034f8f9d5b03fec775de (patch)
treef41cae0b532fb76452c1d529be0f332778233a3e /services/nuldoc/nuldoc-src
parent08bf19ece284bf60b12c07b57abe66ee97dd8baf (diff)
downloadnsfisis.dev-b357037a9062d6ef6bd7034f8f9d5b03fec775de.tar.gz
nsfisis.dev-b357037a9062d6ef6bd7034f8f9d5b03fec775de.tar.zst
nsfisis.dev-b357037a9062d6ef6bd7034f8f9d5b03fec775de.zip
refactor(nuldoc): Do not copy unused files
Diffstat (limited to 'services/nuldoc/nuldoc-src')
-rw-r--r--services/nuldoc/nuldoc-src/commands/build.ts24
-rw-r--r--services/nuldoc/nuldoc-src/components/StaticScript.ts10
-rw-r--r--services/nuldoc/nuldoc-src/components/StaticStylesheet.ts13
-rw-r--r--services/nuldoc/nuldoc-src/pages/AboutPage.ts1
-rw-r--r--services/nuldoc/nuldoc-src/pages/SlidePage.ts1
5 files changed, 33 insertions, 16 deletions
diff --git a/services/nuldoc/nuldoc-src/commands/build.ts b/services/nuldoc/nuldoc-src/commands/build.ts
index 2a9295d..6185381 100644
--- a/services/nuldoc/nuldoc-src/commands/build.ts
+++ b/services/nuldoc/nuldoc-src/commands/build.ts
@@ -227,19 +227,19 @@ function collectTags(taggedPages: TaggedPage[]): [string, TaggedPage[]][] {
}
async function copyStaticFiles(config: Config) {
+ const staticDir = join(Deno.cwd(), config.locations.staticDir);
+
for (const site of Object.keys(config.sites)) {
- const globPattern = joinGlobs([
- Deno.cwd(),
- config.locations.staticDir,
- "*",
- ]);
- for await (const entry of expandGlob(globPattern)) {
- const src = entry.path;
- const dst = src.replace(
- config.locations.staticDir,
- join(config.locations.destDir, site),
- );
- await Deno.copyFile(src, dst);
+ const destDir = join(Deno.cwd(), config.locations.destDir, site);
+
+ // Copy files from static/_all/ to all sites
+ for await (const entry of expandGlob(join(staticDir, "_all", "*"))) {
+ await Deno.copyFile(entry.path, join(destDir, entry.name));
+ }
+
+ // Copy files from static/<site>/ to the corresponding site
+ for await (const entry of expandGlob(join(staticDir, site, "*"))) {
+ await Deno.copyFile(entry.path, join(destDir, entry.name));
}
}
}
diff --git a/services/nuldoc/nuldoc-src/components/StaticScript.ts b/services/nuldoc/nuldoc-src/components/StaticScript.ts
index b8dc95d..1a3431a 100644
--- a/services/nuldoc/nuldoc-src/components/StaticScript.ts
+++ b/services/nuldoc/nuldoc-src/components/StaticScript.ts
@@ -4,14 +4,20 @@ import { Element, script } from "../dom.ts";
import { calculateFileHash } from "./utils.ts";
export default async function StaticScript(
- { fileName, type, defer, config }: {
+ { site, fileName, type, defer, config }: {
+ site?: string;
fileName: string;
type?: string;
defer?: "true";
config: Config;
},
): Promise<Element> {
- const filePath = join(Deno.cwd(), config.locations.staticDir, fileName);
+ const filePath = join(
+ Deno.cwd(),
+ config.locations.staticDir,
+ site || "_all",
+ fileName,
+ );
const hash = await calculateFileHash(filePath);
const attrs: Record<string, string> = { src: `${fileName}?h=${hash}` };
if (type) attrs.type = type;
diff --git a/services/nuldoc/nuldoc-src/components/StaticStylesheet.ts b/services/nuldoc/nuldoc-src/components/StaticStylesheet.ts
index 065ee20..f2adb47 100644
--- a/services/nuldoc/nuldoc-src/components/StaticStylesheet.ts
+++ b/services/nuldoc/nuldoc-src/components/StaticStylesheet.ts
@@ -4,9 +4,18 @@ import { Element, link } from "../dom.ts";
import { calculateFileHash } from "./utils.ts";
export default async function StaticStylesheet(
- { fileName, config }: { fileName: string; config: Config },
+ { site, fileName, config }: {
+ site?: string;
+ fileName: string;
+ config: Config;
+ },
): Promise<Element> {
- const filePath = join(Deno.cwd(), config.locations.staticDir, fileName);
+ const filePath = join(
+ Deno.cwd(),
+ config.locations.staticDir,
+ site || "_all",
+ fileName,
+ );
const hash = await calculateFileHash(filePath);
return link({ rel: "stylesheet", href: `${fileName}?h=${hash}` });
}
diff --git a/services/nuldoc/nuldoc-src/pages/AboutPage.ts b/services/nuldoc/nuldoc-src/pages/AboutPage.ts
index 65a503d..5ae2ff5 100644
--- a/services/nuldoc/nuldoc-src/pages/AboutPage.ts
+++ b/services/nuldoc/nuldoc-src/pages/AboutPage.ts
@@ -51,6 +51,7 @@ export default async function AboutPage(
img({ src: "/favicon.svg" }),
),
await StaticScript({
+ site: "about",
fileName: "/my-icon.js",
defer: "true",
config,
diff --git a/services/nuldoc/nuldoc-src/pages/SlidePage.ts b/services/nuldoc/nuldoc-src/pages/SlidePage.ts
index 1c6709c..48e8037 100644
--- a/services/nuldoc/nuldoc-src/pages/SlidePage.ts
+++ b/services/nuldoc/nuldoc-src/pages/SlidePage.ts
@@ -89,6 +89,7 @@ export default async function SlidePage(
button({ id: "next", type: "button" }, "Next"),
),
await StaticScript({
+ site: "slides",
fileName: "/slide.js",
type: "module",
config,