import lume from "lume/mod.ts"; import date from "lume/plugins/date.ts"; import postcss from "lume/plugins/postcss.ts"; const site = lume({ dest: "./dist", src: "./site", server: { debugBar: false, }, }); export default site; site.use(date()); site.use(postcss()); site.add([".css"]); site.add([".woff2"]); site.add("favicons/"); site.add("images/background/7.jpg"); site.add("images/maxx-gong-yER6L9sRPXM-unsplash.jpg"); site.add("images/diffuse-current.svg"); // DIFFUSE DEPENDENCIES site.remote( "_components/diffuse/", import.meta.resolve("./diffuse/src/_components/diffuse/"), ["**/*"], ); site.remote( "_includes/diffuse/", import.meta.resolve("./diffuse/src/_includes/"), ["**/*"], ); site.remote( "favicons/", import.meta.resolve("./diffuse/src/favicons/"), ["**/*"], ); site.remote( "fonts/", import.meta.resolve("./diffuse/src/fonts/"), ["**/*"], ); site.remote( "images/", import.meta.resolve("./diffuse/src/images/"), ["**/*"], ); site.remote( "styles/", import.meta.resolve("./diffuse/src/styles/"), ["**/*"], ); // PHOSPHOR ICONS function phosphor(path: string) { site.remoteFile( `styles/vendor/phosphor/${path}`, import.meta.resolve( `./diffuse/node_modules/@phosphor-icons/web/src/${path}`, ), ); site.add(`styles/vendor/phosphor/${path}`); } phosphor("fill/style.css"); phosphor("fill/Phosphor-Fill.svg"); phosphor("fill/Phosphor-Fill.ttf"); phosphor("fill/Phosphor-Fill.woff"); phosphor("fill/Phosphor-Fill.woff2"); // Post-build copies site.addEventListener("afterBuild", async () => { const faviconsDir = site.dest("favicons"); for await (const entry of Deno.readDir(faviconsDir)) { if (entry.isFile) { await Deno.copyFile( `${faviconsDir}/${entry.name}`, site.dest(entry.name), ); } } await Deno.remove(faviconsDir, { recursive: true }); });