diff --git a/_config.js b/_config.js index f2083db..0ef6297 100644 --- a/_config.js +++ b/_config.js @@ -5,6 +5,8 @@ import codeHighlight from "lume/plugins/code_highlight.ts"; import feed from "lume/plugins/feed.ts"; import sitemap from "lume/plugins/sitemap.ts"; import checkUrls from "lume/plugins/check_urls.ts"; +import brotli from "lume/plugins/brotli.ts"; +import gzip from "lume/plugins/gzip.ts"; import lang_xml from "npm:highlight.js/lib/languages/xml"; import lang_css from "npm:highlight.js/lib/languages/css"; @@ -19,6 +21,8 @@ const site = lume({ src: "./src", location: new URL('https://carlrafting.com') }); +site.use(gzip()); +site.use(brotli()); site.use(checkUrls()); site.use(redirects()); site.use(date({ diff --git a/deno.lock b/deno.lock index 984d5e0..ee7de60 100644 --- a/deno.lock +++ b/deno.lock @@ -9,6 +9,7 @@ "jsr:@std/assert@0.226": "0.226.0", "jsr:@std/assert@~0.225.1": "0.225.3", "jsr:@std/assert@~0.225.2": "0.225.3", + "jsr:@std/bytes@^1.0.3": "1.0.4", "jsr:@std/cli@0.224.5": "0.224.5", "jsr:@std/cli@0.224.7": "0.224.7", "jsr:@std/cli@1.0.6": "1.0.6", @@ -89,6 +90,7 @@ "jsr:@std/path@^1.0.7": "1.0.8", "jsr:@std/path@~0.225.1": "0.225.2", "jsr:@std/path@~0.225.2": "0.225.2", + "jsr:@std/streams@1.0.8": "1.0.8", "jsr:@std/streams@^1.0.6": "1.0.7", "jsr:@std/streams@^1.0.7": "1.0.8", "jsr:@std/streams@~0.224.3": "0.224.3", @@ -145,6 +147,9 @@ "@std/assert@0.226.0": { "integrity": "0dfb5f7c7723c18cec118e080fec76ce15b4c31154b15ad2bd74822603ef75b3" }, + "@std/bytes@1.0.4": { + "integrity": "11a0debe522707c95c7b7ef89b478c13fb1583a7cfb9a85674cd2cc2e3a28abc" + }, "@std/cli@0.224.5": { "integrity": "79f1b02ac18f6c26de3eb33fe6458c02447eaa21b9be1db1b6efb907f02acd7a", "dependencies": [ @@ -454,7 +459,10 @@ "integrity": "1a93917ca0c58c01b2bfb93647189229b1702677f169b6fb61ad6241cd2e499b" }, "@std/streams@1.0.8": { - "integrity": "b41332d93d2cf6a82fe4ac2153b930adf1a859392931e2a19d9fabfb6f154fb3" + "integrity": "b41332d93d2cf6a82fe4ac2153b930adf1a859392931e2a19d9fabfb6f154fb3", + "dependencies": [ + "jsr:@std/bytes" + ] }, "@std/toml@0.224.1": { "integrity": "c364b9ca3b18207223c4e2a1f652ef2970ff80967f7575ddf89b6b0565a17148", @@ -698,6 +706,7 @@ "https://cdn.jsdelivr.net/gh/lumeland/cms@v0.7.0/storage/transformers/json.ts": "eb5d664be2042cc266a4fc737bbeeb1b4eb586e2beab8ca1965b07c2b066ee68", "https://cdn.jsdelivr.net/gh/lumeland/cms@v0.7.0/storage/transformers/mod.ts": "d828136358c98c93b45b5a1f1c7f383f9788ec47ede04bcb03de8ee0b19c2b3c", "https://cdn.jsdelivr.net/gh/lumeland/cms@v0.7.0/storage/transformers/yaml.ts": "87ce4b914a91ecec833558c29a5bbe8ca33f5cdf05141ba5e9c4e497aace561c", + "https://deno.land/std@0.159.0/encoding/ascii85.ts": "f2b9cb8da1a55b3f120d3de2e78ac993183a4fd00dfa9cb03b51cf3a75bc0baa", "https://deno.land/std@0.170.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272", "https://deno.land/std@0.170.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934", "https://deno.land/std@0.170.0/encoding/base64.ts": "8605e018e49211efc767686f6f687827d7f5fd5217163e981d8d693105640d7a", @@ -801,6 +810,8 @@ "https://deno.land/std@0.224.0/semver/less_than.ts": "890eb36e6294d245934a33dbe6818164c4ec6fddf3aa585a590031393f781719", "https://deno.land/std@0.224.0/semver/parse.ts": "94c09f3486643853e7438e64f2c6741462fbeb84cf141ad5bfe88b73ec4cb0f3", "https://deno.land/x/astring@v1.8.6/src/astring.js": "457e5fd0b72da2a365c33059c8846d9cb37dc5e5f1010332d13afae540323da0", + "https://deno.land/x/brotli@0.1.7/mod.ts": "08b913e51488b6e7fa181f2814b9ad087fdb5520041db0368f8156bfa45fd73e", + "https://deno.land/x/brotli@0.1.7/wasm.js": "77771b89e89ec7ff6e3e0939a7fb4f9b166abec3504cec0532ad5c127d6f35d2", "https://deno.land/x/cliffy@v0.25.7/_utils/distance.ts": "02af166952c7c358ac83beae397aa2fbca4ad630aecfcd38d92edb1ea429f004", "https://deno.land/x/cliffy@v0.25.7/ansi/ansi.ts": "7f43d07d31dd7c24b721bb434c39cbb5132029fa4be3dd8938873065f65e5810", "https://deno.land/x/cliffy@v0.25.7/ansi/ansi_escapes.ts": "885f61f343223f27b8ec69cc138a54bea30542924eacd0f290cd84edcf691387", @@ -1326,6 +1337,7 @@ "https://deno.land/x/lume@v2.4.2/core/utils/read.ts": "e096b1f37f8f0a6820e6ee00af1832d133598d55c961b226d057a5467207c5cd", "https://deno.land/x/lume@v2.4.2/core/watcher.ts": "6c6c4b5feb540958bfd3ca78f420f4278d39eb317e9476aeec85d0ca69368873", "https://deno.land/x/lume@v2.4.2/core/writer.ts": "7c56cdae2fcbaebe3c4d66d6c75bc056906d82517d880ba8e02acbb464e6c6b6", + "https://deno.land/x/lume@v2.4.2/deps/brotli.ts": "7500a8ea7474fa73fae329b00974379de587b4fcdcc68449097e6504c49f19a1", "https://deno.land/x/lume@v2.4.2/deps/cli.ts": "76e87147c435c9b73932cd340bb0bc192e8ceef757693a10359d8c312f0c9636", "https://deno.land/x/lume@v2.4.2/deps/cliffy.ts": "faff0c2ca187ec9fd1ad8660141f85b9d05b5c36bab25b40eb5038c02590a310", "https://deno.land/x/lume@v2.4.2/deps/colors.ts": "8642f31364e8d1b7c3bba56cfee21f8abdd545b5e1c8350cfcc104531eca164c", @@ -1341,7 +1353,9 @@ "https://deno.land/x/lume@v2.4.2/deps/jsonc.ts": "e359eb0ef9f5f15518e6afe9bafb5b48bd5798dc000c8e210953c29cb319e607", "https://deno.land/x/lume@v2.4.2/deps/log.ts": "0906e1383988ebbfb6343a3692077e5d75ec1e649d93a0c0009c0c430b67eea3", "https://deno.land/x/lume@v2.4.2/deps/markdown_it.ts": "f68bb28890f77347ac7bc980026ea52e3cf0940278a3930428f5900be9e6491f", + "https://deno.land/x/lume@v2.4.2/deps/media_types.ts": "adcd882d24599448e9e29559472d05f64194e4a431bd716d2fe77696eebbab99", "https://deno.land/x/lume@v2.4.2/deps/path.ts": "2cb9b457032c687de61df71a5855a97d7de18386bfe3048c03377c733e96b3ab", + "https://deno.land/x/lume@v2.4.2/deps/streams.ts": "3dd288bb971449c4e31ec5291d374e1448df06d1993e90f336d780daa8e049c1", "https://deno.land/x/lume@v2.4.2/deps/temporal.ts": "1958b134c4186b0ab39316fa33ba19d1a4203e2ea445080429d60d296b91a552", "https://deno.land/x/lume@v2.4.2/deps/toml.ts": "8d103f6379d09750299ea91d71293a851f69b4cf011bdb7a1323409206eca59f", "https://deno.land/x/lume@v2.4.2/deps/vento.ts": "50bb794a4aa7a65c0394d585277bfe85f2c44fd19a0d848dfa54cba52cf55b62", @@ -1351,13 +1365,17 @@ "https://deno.land/x/lume@v2.4.2/middlewares/no_cache.ts": "0119e3ae3a596ab12c42df693b93e5b03dd9608e289d862242751a9739438f35", "https://deno.land/x/lume@v2.4.2/middlewares/no_cors.ts": "4d24619b5373c98bcc3baf404db47ba088c87ac8538ea1784e58d197b81d4d02", "https://deno.land/x/lume@v2.4.2/middlewares/not_found.ts": "4507842d422267062c34662dceab17affcaad01858a5890fda163a8ddeb31487", + "https://deno.land/x/lume@v2.4.2/middlewares/precompress.ts": "1fdc5048bbb801f94ddb0265a91ec374ef94cb409dd4c33892c281ead17b6cb9", "https://deno.land/x/lume@v2.4.2/middlewares/reload.ts": "ec723e917bd12c83f65fc39a66592add9ec2ab56a1ad17f429ba749d32c218f9", "https://deno.land/x/lume@v2.4.2/middlewares/reload_client.js": "992ac4a2f4a9fb4a1ab5f23f674ef202a43d73652cdebcf7b1552b482a7410ef", + "https://deno.land/x/lume@v2.4.2/middlewares/www.ts": "9127944978dfdab6ce2abbc27982d20eaab2388e4d1f1884d7a10fb6e7eb1b10", "https://deno.land/x/lume@v2.4.2/mod.ts": "f93dcbc0ccb7a9e6cab93d0e8f1f0643b112f3084bedc603379dc1b47d7d380d", + "https://deno.land/x/lume@v2.4.2/plugins/brotli.ts": "eae2e4c959bfa0d1e8d8cd43504269ed08a2b0597b6de229b57ca5c4afb5b4a7", "https://deno.land/x/lume@v2.4.2/plugins/check_urls.ts": "316851b70200446a573b4269ae2793d414fc8f8083800b3197f543376ed81784", "https://deno.land/x/lume@v2.4.2/plugins/code_highlight.ts": "723b114f98e97c3a2d65890638109d144e1adbd7f474f73d05dac5f47d0851c8", "https://deno.land/x/lume@v2.4.2/plugins/date.ts": "d92823f67326e4f5d73d8cda2e357d36c07a30f4824d95b9402ae4202b336e0c", "https://deno.land/x/lume@v2.4.2/plugins/feed.ts": "f95a77ec53b4e72b1d4fd5c952ec57281dbd16e2bb5ad7ec35c45f2f787def28", + "https://deno.land/x/lume@v2.4.2/plugins/gzip.ts": "788b80efaca4c01f44639defdb9fd3a8f5429e893d6ccea78d92b3a67885c133", "https://deno.land/x/lume@v2.4.2/plugins/json.ts": "67e5e2e00f8e8640f33c1f97a2bf82a7c97a67a838804637b87b16b72f9042e1", "https://deno.land/x/lume@v2.4.2/plugins/markdown.ts": "c7027605edee274762edb20f7040ccba6415c5fe656cc6e25ce91c448f467fd8", "https://deno.land/x/lume@v2.4.2/plugins/modules.ts": "e64197315d930e462aca24e444d0cfcefb37bfea168b2306122b892a1e1c5b8e", @@ -1399,6 +1417,8 @@ "https://deno.land/x/lume_init@v0.2.7/steps/update.ts": "1fb0c01bc376152f2831bbcae5b328858221adfffc8d08cdcab1dadc3f65c717", "https://deno.land/x/lume_init@v0.2.7/steps/utils.ts": "5a5fab5bc02b54cef575473308a8024f13710d45f9f6ba4e4c357ca36776784b", "https://deno.land/x/lume_init@v0.2.7/upgrade.ts": "2a5ca0b4ae0db1f6771e6ec4cede420b6c267e882a38e5647bc7218fda862483", + "https://deno.land/x/lz4@v0.1.2/mod.ts": "4decfc1a3569d03fd1813bd39128b71c8f082850fe98ecfdde20025772916582", + "https://deno.land/x/lz4@v0.1.2/wasm.js": "b9c65605327ba273f0c76a6dc596ec534d4cda0f0225d7a94ebc606782319e46", "https://deno.land/x/vento@v0.12.6/deps.ts": "430b31ecdc02c40c02168e8e5de7939b9f1c82335eda0fafcad7d8a04f20cb21", "https://deno.land/x/vento@v0.12.6/mod.ts": "1c226f165e6c995bcb0f68b7d78623c263ea7bc3e0dae131617fd053703bc742", "https://deno.land/x/vento@v0.12.6/plugins/echo.ts": "f7c064fb6d34b29852f46f6e01583ed87656dcbbc5cae51c8f29198d6951d0cf", diff --git a/serve.ts b/serve.ts index bf9453b..db8ccf3 100644 --- a/serve.ts +++ b/serve.ts @@ -1,5 +1,6 @@ import Server from "lume/core/server.ts"; import www from "lume/middlewares/www.ts"; +import precompress from "lume/middlewares/precompress.ts"; const port = 8080; const root = `${Deno.cwd()}/_site`; @@ -7,6 +8,7 @@ const server = new Server({ port, root, }); +server.use(precompress()); server.use(www({ add: false })); server.start();