diff --git a/package-lock.json b/package-lock.json
index c8a9567d..35a9ce0b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,7 +16,7 @@
         "@11ty/eleventy-plugin-rss": "^1.2.0",
         "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
         "@catppuccin/tailwindcss": "^0.1.6",
-        "@commitlint/cli": "^18.2.0",
+        "@commitlint/cli": "^18.4.0",
         "@commitlint/config-conventional": "^18.4.0",
         "@quasibit/eleventy-plugin-schema": "^1.11.0",
         "@sherby/eleventy-plugin-files-minifier": "^1.1.1",
@@ -538,16 +538,16 @@
       }
     },
     "node_modules/@commitlint/cli": {
-      "version": "18.2.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.2.0.tgz",
-      "integrity": "sha512-F/DCG791kMFmWg5eIdogakuGeg4OiI2kD430ed1a1Hh3epvrJdeIAgcGADAMIOmF+m0S1+VlIYUKG2dvQQ1Izw==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.4.0.tgz",
+      "integrity": "sha512-iz3KJtmsRRFm6OlyrORxRR6qcrznuoFDzcvMXTMpl6E/wj9Vr2crolDk6cG3bFpJCjWd9C7KidXerRha6hh1kQ==",
       "dev": true,
       "dependencies": {
-        "@commitlint/format": "^18.1.0",
-        "@commitlint/lint": "^18.1.0",
-        "@commitlint/load": "^18.2.0",
-        "@commitlint/read": "^18.1.0",
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/format": "^18.4.0",
+        "@commitlint/lint": "^18.4.0",
+        "@commitlint/load": "^18.4.0",
+        "@commitlint/read": "^18.4.0",
+        "@commitlint/types": "^18.4.0",
         "execa": "^5.0.0",
         "lodash.isfunction": "^3.0.9",
         "resolve-from": "5.0.0",
@@ -574,12 +574,12 @@
       }
     },
     "node_modules/@commitlint/config-validator": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.1.0.tgz",
-      "integrity": "sha512-kbHkIuItXn93o2NmTdwi5Mk1ujyuSIysRE/XHtrcps/27GuUKEIqBJp6TdJ4Sq+ze59RlzYSHMKuDKZbfg9+uQ==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.0.tgz",
+      "integrity": "sha512-1y6qHMU3o4cYQSK+Y9EnmH6H1GRiwQGjnLIUOIKlekrmfc8MrMk1ByNmb8od4vK3qHJAaL/77/5n+1uyyIF5dA==",
       "dev": true,
       "dependencies": {
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/types": "^18.4.0",
         "ajv": "^8.11.0"
       },
       "engines": {
@@ -587,12 +587,12 @@
       }
     },
     "node_modules/@commitlint/ensure": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.1.0.tgz",
-      "integrity": "sha512-CkPzJ9UBumIo54VDcpmBlaVX81J++wzEhN3DJH9+6PaLeiIG+gkSx8t7C2gfwG7PaiW4HzQtdQlBN5ab+c4vFQ==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.4.0.tgz",
+      "integrity": "sha512-N5cJo/n61ULSwz3W5Iz/IZJ0I9H/PaHc+OMcF2XcRVbLa6B3YwzEW66XGCRKVULlsBNSrIH6tk5un9ayXAXIdw==",
       "dev": true,
       "dependencies": {
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/types": "^18.4.0",
         "lodash.camelcase": "^4.3.0",
         "lodash.kebabcase": "^4.1.1",
         "lodash.snakecase": "^4.1.1",
@@ -604,21 +604,21 @@
       }
     },
     "node_modules/@commitlint/execute-rule": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.1.0.tgz",
-      "integrity": "sha512-w3Vt4K+O7+nSr9/gFSEfZ1exKUOPSlJaRpnk7Y+XowEhvwT7AIk1HNANH+gETf0zGZ020+hfiMW/Ome+SNCUsg==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.0.tgz",
+      "integrity": "sha512-g013SWki6ZWhURBLOSXTaVQGWHdA0QlPJGiW4a+YpThezmJOemvc4LiKVpn13AjSKQ40QnmBqpBrxujOaSo+3A==",
       "dev": true,
       "engines": {
         "node": ">=v18"
       }
     },
     "node_modules/@commitlint/format": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.1.0.tgz",
-      "integrity": "sha512-So/w217tGWMZZb1yXcUFNF2qFLyYtSVqbnGoMbX8a+JKcG4oB11Gc1adS0ssUOMivtiNpaLtkSHFynyiwtJtiQ==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.4.0.tgz",
+      "integrity": "sha512-MiAe4D5/ahty38CzULdQbpRa3ReKZtx0kyigOWcntq+N5uqez+Ac4/MO7H+3j1kC4G7nfJVfBu6TqcXeyNvhCQ==",
       "dev": true,
       "dependencies": {
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/types": "^18.4.0",
         "chalk": "^4.1.0"
       },
       "engines": {
@@ -626,12 +626,12 @@
       }
     },
     "node_modules/@commitlint/is-ignored": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.1.0.tgz",
-      "integrity": "sha512-fa1fY93J/Nx2GH6r6WOLdBOiL7x9Uc1N7wcpmaJ1C5Qs6P+rPSUTkofe2IOhSJIJoboHfAH6W0ru4xtK689t0Q==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.4.0.tgz",
+      "integrity": "sha512-vyBKBj3Q4N3Xe4ZQcJXW9ef6gVrDL9Fl2HXnnC3F0Qt/F6E4runhJkEuUh5DB3WCXTJUHIJkByKPqrnz4RNrZw==",
       "dev": true,
       "dependencies": {
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/types": "^18.4.0",
         "semver": "7.5.4"
       },
       "engines": {
@@ -639,30 +639,30 @@
       }
     },
     "node_modules/@commitlint/lint": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.1.0.tgz",
-      "integrity": "sha512-LGB3eI5UYu5LLayibNrRM4bSbowr1z9uyqvp0c7+0KaSJi+xHxy/QEhb6fy4bMAtbXEvygY0sUu9HxSWg41rVQ==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.4.0.tgz",
+      "integrity": "sha512-Wkkf1DPVeLdHYGqtzMBfWoMbUtCojvlzDR89OKVic1rid41iZbb0FzTcwgMYs/1TNWNxoIq9PVVwY7ovLX1aJQ==",
       "dev": true,
       "dependencies": {
-        "@commitlint/is-ignored": "^18.1.0",
-        "@commitlint/parse": "^18.1.0",
-        "@commitlint/rules": "^18.1.0",
-        "@commitlint/types": "^18.1.0"
+        "@commitlint/is-ignored": "^18.4.0",
+        "@commitlint/parse": "^18.4.0",
+        "@commitlint/rules": "^18.4.0",
+        "@commitlint/types": "^18.4.0"
       },
       "engines": {
         "node": ">=v18"
       }
     },
     "node_modules/@commitlint/load": {
-      "version": "18.2.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.2.0.tgz",
-      "integrity": "sha512-xjX3d3CRlOALwImhOsmLYZh14/+gW/KxsY7+bPKrzmGuFailf9K7ckhB071oYZVJdACnpY4hDYiosFyOC+MpAA==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.4.0.tgz",
+      "integrity": "sha512-7unGl1HGRNMgWrUPmj8OFkJyuNUMb6xA1i53/OAFKd9l+U3C4WTfoJe3t/TUz8vKZLCaDcWWR/b2cw5HveBBFg==",
       "dev": true,
       "dependencies": {
-        "@commitlint/config-validator": "^18.1.0",
-        "@commitlint/execute-rule": "^18.1.0",
-        "@commitlint/resolve-extends": "^18.1.0",
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/config-validator": "^18.4.0",
+        "@commitlint/execute-rule": "^18.4.0",
+        "@commitlint/resolve-extends": "^18.4.0",
+        "@commitlint/types": "^18.4.0",
         "@types/node": "^18.11.9",
         "chalk": "^4.1.0",
         "cosmiconfig": "^8.0.0",
@@ -677,30 +677,30 @@
       }
     },
     "node_modules/@commitlint/load/node_modules/@types/node": {
-      "version": "18.18.7",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.7.tgz",
-      "integrity": "sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==",
+      "version": "18.18.9",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz",
+      "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==",
       "dev": true,
       "dependencies": {
         "undici-types": "~5.26.4"
       }
     },
     "node_modules/@commitlint/message": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.1.0.tgz",
-      "integrity": "sha512-8dT/jJg73wf3o2Mut/fqEDTpBYSIEVtX5PWyuY/0uviEYeheZAczFo/VMIkeGzhJJn1IrcvAwWsvJ1lVGY2I/w==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.4.0.tgz",
+      "integrity": "sha512-3kg6NQO6pJ+VdBTWi51KInT8ngkxPJaW+iI7URtUALjKcO9K4XY3gf80ZPmS1hDessrjb7qCr1lau8eWMINAQw==",
       "dev": true,
       "engines": {
         "node": ">=v18"
       }
     },
     "node_modules/@commitlint/parse": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.1.0.tgz",
-      "integrity": "sha512-23yv8uBweXWYn8bXk4PjHIsmVA+RkbqPh2h7irupBo2LthVlzMRc4LM6UStasScJ4OlXYYaWOmuP7jcExUF50Q==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.4.0.tgz",
+      "integrity": "sha512-SxTCSUZH8CJNYWOlFg18YUQ2RLz8ubXKbpHUIiSNwCbiQx7UDCydp1JnhoB4sOYOxgV8d3nuDwYluRU5KnEY4A==",
       "dev": true,
       "dependencies": {
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/types": "^18.4.0",
         "conventional-changelog-angular": "^6.0.0",
         "conventional-commits-parser": "^5.0.0"
       },
@@ -709,13 +709,13 @@
       }
     },
     "node_modules/@commitlint/read": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.1.0.tgz",
-      "integrity": "sha512-rzfzoKUwxmvYO81tI5o1371Nwt3vhcQR36oTNfupPdU1jgSL3nzBIS3B93LcZh3IYKbCIMyMPN5WZ10BXdeoUg==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.4.0.tgz",
+      "integrity": "sha512-IpnABCbDeOw5npZ09SZZGLfd3T7cFtsxUYm6wT3aGmIB2fXKE3fMeuj3jxXjMibiGIyA3Z5voCMuOcKWpkNySA==",
       "dev": true,
       "dependencies": {
-        "@commitlint/top-level": "^18.1.0",
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/top-level": "^18.4.0",
+        "@commitlint/types": "^18.4.0",
         "fs-extra": "^11.0.0",
         "git-raw-commits": "^2.0.11",
         "minimist": "^1.2.6"
@@ -725,13 +725,13 @@
       }
     },
     "node_modules/@commitlint/resolve-extends": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.1.0.tgz",
-      "integrity": "sha512-3mZpzOEJkELt7BbaZp6+bofJyxViyObebagFn0A7IHaLARhPkWTivXdjvZHS12nAORftv88Yhbh8eCPKfSvB7g==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.0.tgz",
+      "integrity": "sha512-qhgU6ach+S6sJMD9NjCYiEycOObGhxzWQLQzqlScJCv9zkPs15Bg0ffLXTQ3z7ipXv46XEKYMnSJzjLRw2Tlkg==",
       "dev": true,
       "dependencies": {
-        "@commitlint/config-validator": "^18.1.0",
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/config-validator": "^18.4.0",
+        "@commitlint/types": "^18.4.0",
         "import-fresh": "^3.0.0",
         "lodash.mergewith": "^4.6.2",
         "resolve-from": "^5.0.0",
@@ -742,15 +742,15 @@
       }
     },
     "node_modules/@commitlint/rules": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.1.0.tgz",
-      "integrity": "sha512-VJNQ674CRv4znI0DbsjZLVnn647J+BTxHGcrDIsYv7c99gW7TUGeIe5kL80G7l8+5+N0se8v9yn+Prr8xEy6Yw==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.4.0.tgz",
+      "integrity": "sha512-T3ChRxQZ6g0iNCpVLc6KeQId0/86TnyQA8PFkng+dWElO2DAA5km/yirgKZV1Xlc+gF7Rf6d+a0ottxdKpOY+w==",
       "dev": true,
       "dependencies": {
-        "@commitlint/ensure": "^18.1.0",
-        "@commitlint/message": "^18.1.0",
-        "@commitlint/to-lines": "^18.1.0",
-        "@commitlint/types": "^18.1.0",
+        "@commitlint/ensure": "^18.4.0",
+        "@commitlint/message": "^18.4.0",
+        "@commitlint/to-lines": "^18.4.0",
+        "@commitlint/types": "^18.4.0",
         "execa": "^5.0.0"
       },
       "engines": {
@@ -758,18 +758,18 @@
       }
     },
     "node_modules/@commitlint/to-lines": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.1.0.tgz",
-      "integrity": "sha512-aHIoSDjG0ckxPLYDpODUeSLbEKmF6Jrs1B5JIssbbE9eemBtXtjm9yzdiAx9ZXcwoHlhbTp2fbndDb3YjlvJag==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.4.0.tgz",
+      "integrity": "sha512-bZXuCtfBPjNgtEnG3gwJrveIgfKK2UdhIhFvKpMTrQl/gAwoto/3mzmE7qGAHwmuP4eZ2U8X7iwMnqIlWmv2Tw==",
       "dev": true,
       "engines": {
         "node": ">=v18"
       }
     },
     "node_modules/@commitlint/top-level": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.1.0.tgz",
-      "integrity": "sha512-1/USHlolIxJlsfLKecSXH+6PDojIvnzaJGPYwF7MtnTuuXCNQ4izkeqDsRuNMe9nU2VIKpK9OT8Q412kGNmgGw==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.4.0.tgz",
+      "integrity": "sha512-TfulcA8UHF7MZ6tm4Ci3aqZgMBZa1OoCg4prccWHvwG/hsHujZ7+0FKbeKqDbcSli/YWm4NJwEjl4uh5itIJeA==",
       "dev": true,
       "dependencies": {
         "find-up": "^5.0.0"
@@ -779,9 +779,9 @@
       }
     },
     "node_modules/@commitlint/types": {
-      "version": "18.1.0",
-      "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.1.0.tgz",
-      "integrity": "sha512-65vGxZmbs+2OVwEItxhp3Ul7X2m2LyLfifYI/NdPwRqblmuES2w2aIRhIjb7cwUIBHHSTT8WXj4ixVHQibmvLQ==",
+      "version": "18.4.0",
+      "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.4.0.tgz",
+      "integrity": "sha512-MKeaFxt0I9fhqUb2E+YIzX/gZtmkuodJET/XKiZIMvXUff8Ee4Ih86eLg+yAm2jf1pwGBmU02uNOp0y094w2Uw==",
       "dev": true,
       "dependencies": {
         "chalk": "^4.1.0"
@@ -1357,9 +1357,9 @@
       "dev": true
     },
     "node_modules/@types/minimist": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz",
-      "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==",
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
       "dev": true
     },
     "node_modules/@types/node": {
@@ -1369,9 +1369,9 @@
       "dev": true
     },
     "node_modules/@types/normalize-package-data": {
-      "version": "2.4.3",
-      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz",
-      "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
+      "version": "2.4.4",
+      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+      "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
       "dev": true
     },
     "node_modules/@types/semver": {
@@ -11081,9 +11081,9 @@
       "dev": true
     },
     "node_modules/universalify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
-      "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
       "dev": true,
       "engines": {
         "node": ">= 10.0.0"
diff --git a/package.json b/package.json
index 65d761a2..ccde0953 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
     "@11ty/eleventy-plugin-rss": "^1.2.0",
     "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
     "@catppuccin/tailwindcss": "^0.1.6",
-    "@commitlint/cli": "^18.2.0",
+    "@commitlint/cli": "^18.4.0",
     "@commitlint/config-conventional": "^18.4.0",
     "@quasibit/eleventy-plugin-schema": "^1.11.0",
     "@sherby/eleventy-plugin-files-minifier": "^1.1.1",