Content-addressed version deploy system for Diffuse elements.diffuse.sh
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 8b14ccb07fcec92bda706dd43baa37f06cd33567 99 lines 1.9 kB view raw
1import lume from "lume/mod.ts"; 2 3import date from "lume/plugins/date.ts"; 4import postcss from "lume/plugins/postcss.ts"; 5 6const site = lume({ 7 dest: "./dist", 8 src: "./site", 9 server: { 10 debugBar: false, 11 }, 12}); 13 14export default site; 15 16site.use(date()); 17site.use(postcss()); 18 19site.add([".css"]); 20site.add([".woff2"]); 21 22site.add("favicons/"); 23 24site.add("images/background/7.jpg"); 25site.add("images/maxx-gong-yER6L9sRPXM-unsplash.jpg"); 26site.add("images/diffuse-current.svg"); 27 28// DIFFUSE DEPENDENCIES 29 30site.remote( 31 "_components/diffuse/", 32 import.meta.resolve("./diffuse/src/_components/diffuse/"), 33 ["**/*"], 34); 35 36site.remote( 37 "_includes/diffuse/", 38 import.meta.resolve("./diffuse/src/_includes/"), 39 ["**/*"], 40); 41 42site.remote( 43 "favicons/", 44 import.meta.resolve("./diffuse/src/favicons/"), 45 ["**/*"], 46); 47 48site.remote( 49 "fonts/", 50 import.meta.resolve("./diffuse/src/fonts/"), 51 ["**/*"], 52); 53 54site.remote( 55 "images/", 56 import.meta.resolve("./diffuse/src/images/"), 57 ["**/*"], 58); 59 60site.remote( 61 "styles/", 62 import.meta.resolve("./diffuse/src/styles/"), 63 ["**/*"], 64); 65 66// PHOSPHOR ICONS 67 68function phosphor(path: string) { 69 site.remoteFile( 70 `styles/vendor/phosphor/${path}`, 71 import.meta.resolve( 72 `./diffuse/node_modules/@phosphor-icons/web/src/${path}`, 73 ), 74 ); 75 76 site.add(`styles/vendor/phosphor/${path}`); 77} 78 79phosphor("fill/style.css"); 80phosphor("fill/Phosphor-Fill.svg"); 81phosphor("fill/Phosphor-Fill.ttf"); 82phosphor("fill/Phosphor-Fill.woff"); 83phosphor("fill/Phosphor-Fill.woff2"); 84 85// Post-build copies 86site.addEventListener("afterBuild", async () => { 87 const faviconsDir = site.dest("favicons"); 88 89 for await (const entry of Deno.readDir(faviconsDir)) { 90 if (entry.isFile) { 91 await Deno.copyFile( 92 `${faviconsDir}/${entry.name}`, 93 site.dest(entry.name), 94 ); 95 } 96 } 97 98 await Deno.remove(faviconsDir, { recursive: true }); 99});