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