diff options
Diffstat (limited to 'services/nuldoc/nuldoc-src')
| -rw-r--r-- | services/nuldoc/nuldoc-src/commands/build.ts | 24 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/components/StaticScript.ts | 10 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/components/StaticStylesheet.ts | 13 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/AboutPage.ts | 1 | ||||
| -rw-r--r-- | services/nuldoc/nuldoc-src/pages/SlidePage.ts | 1 |
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, |
