mirror of
https://github.com/storytold/spark.git
synced 2026-10-09 00:09:53 +00:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { execSync } from "node:child_process";
|
|
import {
|
|
readFileSync,
|
|
readdirSync,
|
|
renameSync,
|
|
statSync,
|
|
writeFileSync,
|
|
} from "node:fs";
|
|
import { extname, join } from "node:path";
|
|
|
|
const siteDirectory = "site";
|
|
const oldAssets = join(siteDirectory, "assets");
|
|
const newAssets = join(siteDirectory, "static");
|
|
|
|
// Rename assets directory
|
|
console.log(`Renaming ${oldAssets} → ${newAssets}...`);
|
|
renameSync(oldAssets, newAssets);
|
|
replaceInHtmlFiles(siteDirectory);
|
|
|
|
function replaceInHtmlFiles(dir) {
|
|
for (const entry of readdirSync(dir)) {
|
|
const fullPath = join(dir, entry);
|
|
const stat = statSync(fullPath);
|
|
|
|
if (stat.isDirectory()) {
|
|
replaceInHtmlFiles(fullPath);
|
|
} else if (stat.isFile() && extname(fullPath) === ".html") {
|
|
const html = readFileSync(fullPath, "utf-8");
|
|
|
|
// Replace relative/local asset references ONLY (exclude external URLs like https://sparkjs.dev/..)
|
|
const updated = html.replace(
|
|
/(["'(=])((?:\.\.\/)*|\.\/|\/)assets\//g,
|
|
(_, prefix, rel) => `${prefix}${rel}static/`,
|
|
);
|
|
if (updated !== html) {
|
|
writeFileSync(fullPath, updated);
|
|
}
|
|
}
|
|
}
|
|
}
|