add gzip and move config to environment files

pyrox.dev 1e28d4df 407c8d61

verified
Changed files
+38 -6
.forgejo
workflows
+2
.env.dev
··· 1 + export LUME_DRAFTS="true" 2 + export BROTLI_LEVEL=6
+2
.env.prod
··· 1 + export LUME_DRAFTS="false" 2 + export BROTLI_LEVEL=11
-1
.envrc
··· 3 3 fi 4 4 PATH_add $HOME/.deno/bin 5 5 export ROOT="$PWD" 6 - export LUME_DRAFTS="true" 7 6 use flake . --impure
+1 -1
.forgejo/workflows/deploy.yaml
··· 13 13 submodules: true 14 14 15 15 - name: Run Lume Build 16 - run: nix run nixpkgs#deno -- task build 16 + run: nix run nixpkgs#deno -- task prod 17 17 18 18 - name: Deploy 19 19 uses: https://git.pyrox.dev/actions/pages-action@v3
+19 -1
_config.ts
··· 17 17 18 18 // Optimization 19 19 import brotli from "lume/plugins/brotli.ts"; 20 + import gzip from "lume/plugins/gzip.ts"; 20 21 import minify_html from "lume/plugins/minify_html.ts"; 21 22 import svgo from "lume/plugins/svgo.ts"; 22 23 import transform_images from "lume/plugins/transform_images.ts"; ··· 195 196 }), 196 197 ); 197 198 198 - // Compress everything with Brotli 199 + // Compress everything with Brotli/Gzip 199 200 site.use( 200 201 brotli({ 202 + quality: Deno.env.get("BROTLI_LEVEL"), 203 + extensions: [ 204 + ".html", 205 + ".css", 206 + ".js", 207 + ".mjs", 208 + ".svg", 209 + ".json", 210 + ".xml", 211 + ".txt", 212 + ".rss", 213 + ".map", 214 + ], 215 + }), 216 + ); 217 + site.use( 218 + gzip({ 201 219 extensions: [ 202 220 ".html", 203 221 ".css",
+3 -2
deno.json
··· 8 8 "sharp": "npm:sharp@0.33.5" 9 9 }, 10 10 "tasks": { 11 - "lume": "echo \"import 'lume/cli.ts'\" | deno run -A -", 11 + "lume": "echo \"import 'lume/cli.ts'\" | deno run --env-file=.env.dev -A -", 12 + "prod": "echo \"import 'lume/cli.ts'\" | deno run --env-file=.env.prod -A -", 12 13 "build": "deno task lume", 13 - "serve": "deno task lume -s", 14 + "serve": "deno task lume -s ", 14 15 "fmt": "deno task dprint fmt", 15 16 "fmt:check": "deno task dprint check", 16 17 "dprint": "deno run -A npm:dprint"
+11 -1
deno.lock
··· 3 3 "specifiers": { 4 4 "jsr:@davidbonnet/astring@1.8.6": "1.8.6", 5 5 "jsr:@hono/hono@4.6.16": "4.6.16", 6 + "jsr:@std/bytes@^1.0.5": "1.0.5", 6 7 "jsr:@std/cli@1.0.11": "1.0.11", 7 8 "jsr:@std/cli@1.0.12": "1.0.12", 8 9 "jsr:@std/cli@1.0.13": "1.0.13", ··· 43 44 "jsr:@std/net@^1.0.4": "1.0.4", 44 45 "jsr:@std/path@1.0.8": "1.0.8", 45 46 "jsr:@std/path@^1.0.8": "1.0.8", 47 + "jsr:@std/streams@1.0.9": "1.0.9", 46 48 "jsr:@std/streams@^1.0.8": "1.0.9", 47 49 "jsr:@std/streams@^1.0.9": "1.0.9", 48 50 "jsr:@std/tar@0.1.4": "0.1.4", ··· 96 98 }, 97 99 "@hono/hono@4.6.16": { 98 100 "integrity": "b540c6b1352d73142895f7bb6bfd0b6cc514ede61c12940338c4ae5dd06cb326" 101 + }, 102 + "@std/bytes@1.0.5": { 103 + "integrity": "4465dd739d7963d964c809202ebea6d5c6b8e3829ef25c6a224290fbb8a1021e" 99 104 }, 100 105 "@std/cli@1.0.11": { 101 106 "integrity": "ec219619fdcd31bcf0d8e53bee1e2706ec9a02f70255365a094f69755dadd340" ··· 232 237 "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be" 233 238 }, 234 239 "@std/streams@1.0.9": { 235 - "integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035" 240 + "integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035", 241 + "dependencies": [ 242 + "jsr:@std/bytes" 243 + ] 236 244 }, 237 245 "@std/tar@0.1.4": { 238 246 "integrity": "1bc1f1f9bfd557e849b31d6521348fdf5848886d87c851f1f0f992d002fe0ff5", ··· 2187 2195 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/purgecss.ts": "524914d3311933aaeb8052c89c361efdc4656bf6fb8aeec9d1b3d7750dbf8d3f", 2188 2196 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/remove-markdown.ts": "c975349bb4b0a325384b8171b1648d5b79366efc8814413c8e93bfeded3280e3", 2189 2197 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/sharp.ts": "b0692f7293a33a6b191ef672420e3eb37c308ccbe5cf55d15231254e2972a8e0", 2198 + "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/streams.ts": "e78fdd0a968390117fb3d6bd83de09b72f54eec27d8ef873aea9ad03c1087c3b", 2190 2199 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/svg2png.ts": "d761fb39c37e5c5ba4ac2db25768cf0c2ff34643d3d1847a9fe736449175d5ec", 2191 2200 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/svgo.ts": "688d1272b1a2113d8ad35e70854a189d6c238b04b8237529acdaa8028abc40d6", 2192 2201 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/deps/tailwindcss.ts": "f3103ddcb10e234f33d9cdb0a776bfaacceae93d93fbdfb990372b7bcfed4836", ··· 2207 2216 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/date.ts": "cbf280a28f8aef6f2c9ab9b5234875ab5994fe68e0f977798043e056dfc9a56f", 2208 2217 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/feed.ts": "914702397b3dc533a4cb7bd7e88f04f9f379390780ea6990a511e2390c57ab4b", 2209 2218 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/google_fonts.ts": "773c5d5855407ef127a97817c84f521a8006596bde04fb47231ec20900378a72", 2219 + "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/gzip.ts": "0026c36672db566ebc7dc0d48d0b94ad21063c9b7ebf691ab9d78aa62ed88784", 2210 2220 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/json.ts": "5c49499e56b919ec848d4118ec97dd4fe0a323a6cc4c648dc45ab55297614c12", 2211 2221 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/lightningcss.ts": "2006c712b89e9f0b88852127efc7f4c856eefec565941c5ab9ea362d35ae996a", 2212 2222 "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/markdown.ts": "7e82d897c1e35bf119dcd18b6aec7a6ba5aa06848897b34ff9cd161ec7c8757e",