Content-addressed version deploy system for Diffuse
elements.diffuse.sh
1import lume from "lume/mod.ts";
2import postcss from "lume/plugins/postcss.ts";
3import purgecss from "lume/plugins/purgecss.ts";
4
5const site = lume({
6 dest: "./dist",
7 src: "./index",
8 server: {
9 debugBar: false,
10 },
11});
12
13export default site;
14
15site.use(postcss());
16// site.use(purgecss());
17
18site.add([".css"]);
19site.add([".woff2"]);
20
21site.add("favicons/");
22
23site.add("images/background/7.jpg");
24site.add("images/maxx-gong-yER6L9sRPXM-unsplash.jpg");
25site.add("images/diffuse-current.svg");
26
27// DIFFUSE DEPENDENCIES
28
29site.remote(
30 "_components/diffuse/",
31 import.meta.resolve("./diffuse/src/_components/diffuse/"),
32 ["**/*"],
33);
34
35site.remote(
36 "_includes/diffuse/",
37 import.meta.resolve("./diffuse/src/_includes/"),
38 ["**/*"],
39);
40
41site.remote(
42 "favicons/",
43 import.meta.resolve("./diffuse/src/favicons/"),
44 ["**/*"],
45);
46
47site.remote(
48 "fonts/",
49 import.meta.resolve("./diffuse/src/fonts/"),
50 ["**/*"],
51);
52
53site.remote(
54 "images/",
55 import.meta.resolve("./diffuse/src/images/"),
56 ["**/*"],
57);
58
59site.remote(
60 "styles/",
61 import.meta.resolve("./diffuse/src/styles/"),
62 ["**/*"],
63);
64
65// PHOSPHOR ICONS
66
67function phosphor(path: string) {
68 site.remoteFile(
69 `styles/vendor/phosphor/${path}`,
70 import.meta.resolve(
71 `./diffuse/node_modules/@phosphor-icons/web/src/${path}`,
72 ),
73 );
74
75 site.add(`styles/vendor/phosphor/${path}`);
76}
77
78phosphor("fill/style.css");
79phosphor("fill/Phosphor-Fill.svg");
80phosphor("fill/Phosphor-Fill.ttf");
81phosphor("fill/Phosphor-Fill.woff");
82phosphor("fill/Phosphor-Fill.woff2");