diff --git a/package-lock.json b/package-lock.json index 214b62e..53f2f14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,15 @@ { "name": "coryd.dev", - "version": "1.3.20", + "version": "1.6.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "1.3.20", + "version": "1.6.2", "license": "MIT", "dependencies": { + "html-minifier-terser": "7.2.0", "minisearch": "^7.1.2", "youtube-video-element": "^1.5.1" }, @@ -19,7 +20,7 @@ "cssnano": "^7.0.6", "dotenv": "16.5.0", "ics": "^3.8.1", - "jsdom": "26.0.0", + "jsdom": "26.1.0", "markdown-it": "^14.1.0", "markdown-it-anchor": "^9.2.0", "markdown-it-footnote": "^4.0.0", @@ -519,7 +520,6 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -534,7 +534,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -544,7 +543,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -554,7 +552,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -565,14 +562,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -730,7 +725,6 @@ "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -859,13 +853,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1042,7 +1029,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, "license": "MIT" }, "node_modules/cacheable": { @@ -1056,18 +1042,14 @@ "keyv": "^5.3.2" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, "node_modules/caniuse-api": { @@ -1314,6 +1296,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1341,24 +1335,10 @@ "dev": true, "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -1683,16 +1663,6 @@ "dev": true, "license": "MIT" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -1782,6 +1752,16 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dotenv": { "version": "16.5.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", @@ -1795,21 +1775,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -1874,55 +1839,6 @@ "errno": "cli.js" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -2146,22 +2062,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", @@ -2197,45 +2097,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/glob": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", @@ -2299,19 +2160,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2359,35 +2207,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -2421,6 +2240,39 @@ "node": ">=18" } }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/htmlparser2": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", @@ -2742,16 +2594,15 @@ } }, "node_modules/jsdom": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", - "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.1", + "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", @@ -2761,12 +2612,12 @@ "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", + "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.1.0", + "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, @@ -2887,6 +2738,15 @@ "dev": true, "license": "MIT" }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -2973,16 +2833,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/maximatch": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", @@ -3051,9 +2901,9 @@ } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", "engines": { @@ -3061,13 +2911,13 @@ } }, "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { "node": ">= 0.6" @@ -3168,6 +3018,16 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -3313,6 +3173,16 @@ "dev": true, "license": "BlueOak-1.0.0" }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", @@ -3386,6 +3256,16 @@ "node": ">= 0.8" } }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -4208,6 +4088,15 @@ "node": ">=8.10.0" } }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -4375,29 +4264,6 @@ "node": ">= 18" } }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -4465,7 +4331,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -4485,7 +4350,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -4727,7 +4591,6 @@ "version": "5.39.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -4746,7 +4609,6 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, "license": "MIT" }, "node_modules/tiny-case": { @@ -4842,6 +4704,12 @@ "cheerio": "1.0.0-rc.12" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", diff --git a/package.json b/package.json index 3bc4023..bda98bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "1.3.20", + "version": "1.6.2", "description": "The source for my personal site. Built using 11ty (and other tools).", "type": "module", "engines": { @@ -30,6 +30,7 @@ "author": "Cory Dransfeldt", "license": "MIT", "dependencies": { + "html-minifier-terser": "7.2.0", "minisearch": "^7.1.2", "youtube-video-element": "^1.5.1" }, @@ -40,7 +41,7 @@ "cssnano": "^7.0.6", "dotenv": "16.5.0", "ics": "^3.8.1", - "jsdom": "26.0.0", + "jsdom": "26.1.0", "markdown-it": "^14.1.0", "markdown-it-anchor": "^9.2.0", "markdown-it-footnote": "^4.0.0", diff --git a/queries/views/globals/index.psql b/queries/views/globals/index.psql index 312b691..bc7cef8 100644 --- a/queries/views/globals/index.psql +++ b/queries/views/globals/index.psql @@ -16,8 +16,10 @@ SELECT g.webfinger_username, g.webfinger_hostname, CONCAT('/', df.filename_disk) AS avatar, - CONCAT('/', df2.filename_disk) AS avatar_transparent + CONCAT('/', df2.filename_disk) AS avatar_transparent, + CONCAT('/', df3.filename_disk) AS avatar_header FROM globals g LEFT JOIN directus_files df ON g.avatar = df.id LEFT JOIN directus_files df2 ON g.avatar_transparent = df2.id + LEFT JOIN directus_files df3 ON g.avatar_header = df3.id diff --git a/queries/views/globals/nav.psql b/queries/views/globals/nav.psql index 26ed691..c967666 100644 --- a/queries/views/globals/nav.psql +++ b/queries/views/globals/nav.psql @@ -4,6 +4,7 @@ SELECT n.menu_location, n.permalink, n.icon, + n.section, n.title, n.sort, p.title AS page_title, diff --git a/src/assets/styles/base/index.css b/src/assets/styles/base/index.css index 2d1bde4..646f93d 100644 --- a/src/assets/styles/base/index.css +++ b/src/assets/styles/base/index.css @@ -239,13 +239,14 @@ a { transition: color var(--transition-duration-default) var(--transition-ease-in-out), text-underline-offset var(--transition-duration-default) var(--transition-ease-in-out); - img { + img:not(.icon) { border: var(--border-default); filter: var(--filter-image-default); transition: filter var(--transition-duration-default) var(--transition-ease-in-out); } - svg { + svg, + .icon { transform: var(--transform-icon-default); } @@ -266,7 +267,7 @@ a { color: var(--link-color-hover); text-underline-offset: var(--underline-offset-hover); - img { + img:not(.icon) { filter: var(--filter-image-light); @media (prefers-color-scheme: dark) { @@ -274,7 +275,8 @@ a { } } - svg { + svg, + .icon { transition: transform var(--transition-duration-default) var(--transition-ease-in-out); transform: var(--transform-icon-tilt); } @@ -341,6 +343,7 @@ hr { time { color: var(--gray-dark); font-size: var(--font-size-sm); + line-height: var(--sizing-sm); } article { @@ -453,40 +456,9 @@ td:first-of-type, border-inline-start: none; } -/* header */ -.main-title { - display: flex; - flex-direction: column; - gap: var(--spacing-base); - width: var(--sizing-full); - padding-top: var(--spacing-3xl); - - @media screen and (min-width: 768px) { - flex-direction: row; - align-items: center; - justify-content: space-between; - gap: 0; - } - - h1 { - margin: 0; - padding: 0; - white-space: nowrap; - } -} - -/* nav */ -.active, -.active svg { - --icon-color: var(--accent-color-active); - - cursor: not-allowed; - color: var(--accent-color-active); -} - /* layout */ .default-wrapper { - padding-top: var(--spacing-2xl); + padding-top: var(--spacing-base); } .main-wrapper { diff --git a/src/assets/styles/base/vars.css b/src/assets/styles/base/vars.css index 3288967..5b2967a 100644 --- a/src/assets/styles/base/vars.css +++ b/src/assets/styles/base/vars.css @@ -45,7 +45,7 @@ --brand-mastodon: light-dark(#563acc, #858afa); --brand-npm: #cb3837; --brand-rss: light-dark(#c24f19, #f26522); - --brand-stalwart: light-dark(#db2c53, #d999a7); + --brand-stalwart: light-dark(#db2c53, #ff4c6a); --article: light-dark(#007272, #00ffff); --about: light-dark(#e4513a, #ff967d); @@ -59,7 +59,7 @@ --music: light-dark(#3d7099, #76b8cc); --newsletter: light-dark(#37b0b0, #91fffa); --now: light-dark(#cc1076, #ff82d5); - --search: light-dark(#6b5e3a, #c0b594); + --search: light-dark(#007c9d, #3fd9ff); --tattoo: light-dark(#951b1b, #ff7373); --tv: light-dark(#cc3600, #d65f2b); --warning: light-dark(#cc6f00, #ffbf66); @@ -94,6 +94,7 @@ --underline-offset-default: 3px; --underline-offset-hover: 5px; + --button-offset-hover: 2px; /* sizing */ --sizing-xs: 0.25rem; diff --git a/src/assets/styles/components/buttons.css b/src/assets/styles/components/buttons.css index bacac5f..4a082fa 100644 --- a/src/assets/styles/components/buttons.css +++ b/src/assets/styles/components/buttons.css @@ -4,23 +4,27 @@ button:not([data-modal-button]), .button { appearance: none; - border: 2px solid var(--accent-color); - border-radius: var(--border-radius-full); + border: 2px solid var(--section-color, var(--accent-color)); + border-radius: var(--border-radius-slight); padding: var(--spacing-xs) var(--spacing-md); font-size: var(--font-size-base); font-weight: var(--font-weight-bold); - line-height: var(--line-height-base); + line-height: var(--line-height-md); + text-align: center; + text-decoration: none; white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; color: var(--text-color-inverted); - background-color: var(--accent-color); - transition: color var(--transition-duration-default) var(--transition-ease-in-out); + background-color: var(--section-color, var(--accent-color)); + transition: var(--transition-duration-default) var(--transition-ease-in-out); &:not(.active):is(:hover, :active, :focus, :focus-within) { - background-color: var(--accent-color-hover); - border: 2px solid var(--accent-color-hover); - transition: - background-color var(--transition-duration-default) var(--transition-ease-in-out), - border var(--transition-duration-default) var(--transition-ease-in-out), - color var(--transition-duration-default) var(--transition-ease-in-out); + transform: translateY(var(--button-offset-hover)); + } + + &.active { + background: transparent; + color: var(--accent-color); } } diff --git a/src/assets/styles/components/forms.css b/src/assets/styles/components/forms.css index 503b1c0..3a64796 100644 --- a/src/assets/styles/components/forms.css +++ b/src/assets/styles/components/forms.css @@ -26,6 +26,10 @@ textarea { textarea { resize: vertical; + + &:has(+ button) { + margin-bottom: var(--sizing-md); + } } .search__form { diff --git a/src/assets/styles/components/header.css b/src/assets/styles/components/header.css new file mode 100644 index 0000000..19e411b --- /dev/null +++ b/src/assets/styles/components/header.css @@ -0,0 +1,40 @@ +.main-title { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + gap: 0; + align-items: center; + width: var(--sizing-full); + padding-top: var(--spacing-3xl); + + h1, + h1 a { + margin: 0; + padding: 0; + white-space: nowrap; + display: flex; + align-items: center; + gap: var(--spacing-sm); + + img { + max-width: calc(var(--sizing-3xl) * 1.25); + } + + span { + display: none; + } + + @media screen and (min-width: 280px) { + span:first-of-type { + display: inline; + } + } + + @media screen and (min-width: 480px) { + span:last-of-type { + display: inline; + } + } + } +} diff --git a/src/assets/styles/components/nav.css b/src/assets/styles/components/nav.css new file mode 100644 index 0000000..a0d6388 --- /dev/null +++ b/src/assets/styles/components/nav.css @@ -0,0 +1,65 @@ +nav { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: var(--spacing-md); + padding: 0; + margin: 0; + + .icon > span, + .active > span { + display: none; + } + + .active, + .active svg { + --icon-color: var(--accent-color-active); + + cursor: not-allowed; + color: var(--accent-color-active); + } + + &.primary { + margin-top: var(--spacing-base); + display: grid; + grid-template-columns: var(--grid-columns-three); + + @media screen and (min-width: 768px) { + grid-template-columns: var(--grid-columns-six); + } + } + + &.icons { + justify-content: end; + } + + &.primary, + &.sub-pages { + gap: var(--sizing-sm); + } + + &.social, + &.sub-pages { + align-items: center; + justify-content: center; + } + + &.icons, + &.social { + gap: var(--spacing-md); + } + + &.social { + margin-bottom: var(--spacing-lg); + } + + &.primary, + &.social { + width: var(--sizing-full); + } + + &.sub-pages { + font-size: var(--font-size-sm); + padding-bottom: var(--spacing-3xl); + } +} diff --git a/src/assets/styles/components/nav/footer.css b/src/assets/styles/components/nav/footer.css deleted file mode 100644 index 98839a3..0000000 --- a/src/assets/styles/components/nav/footer.css +++ /dev/null @@ -1,31 +0,0 @@ -nav { - &.social, - &.sub-pages { - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items: center; - justify-content: center; - } - - &.social { - gap: var(--spacing-md); - margin-bottom: var(--spacing-lg); - width: var(--sizing-full); - - .icon > span, - .active > span { - display: none; - } - - .active { - display: flex; - } - } - - &.sub-pages { - font-size: var(--font-size-sm); - padding-bottom: var(--spacing-3xl); - gap: var(--sizing-sm); - } -} diff --git a/src/assets/styles/components/nav/primary.css b/src/assets/styles/components/nav/primary.css deleted file mode 100644 index 4f55be3..0000000 --- a/src/assets/styles/components/nav/primary.css +++ /dev/null @@ -1,25 +0,0 @@ -.nav-list { - display: flex; - flex-direction: row; - flex-wrap: wrap; - list-style: none; - gap: var(--spacing-md); - padding: 0; - margin: 0; - - @media screen and (min-width: 768px) { - justify-content: center; - } - - & > li { - margin-bottom: 0; - - :is(.icon, .active) svg { - display: block; - } - - :is(.icon, .active) span { - display: none; - } - } -} diff --git a/src/assets/styles/components/tab-buttons.css b/src/assets/styles/components/tab-buttons.css index ca4480a..dec702d 100644 --- a/src/assets/styles/components/tab-buttons.css +++ b/src/assets/styles/components/tab-buttons.css @@ -32,3 +32,7 @@ input[id="tracks-chart"] ~ .tracks-chart { #tracks-chart:not(:checked) ~ [for="tracks-chart"]:is(:hover, :active) { color: var(--accent-color-hover); } + +[for="tracks-recent"] { + margin-right: var(--sizing-xs); +} diff --git a/src/assets/styles/index.css b/src/assets/styles/index.css index b263bcb..cbf8125 100644 --- a/src/assets/styles/index.css +++ b/src/assets/styles/index.css @@ -27,9 +27,9 @@ @import url("./components/banners.css") layer(components); @import url("./components/buttons.css") layer(components); @import url("./components/forms.css") layer(components); +@import url("./components/header.css") layer(components); @import url("./components/media-grid.css") layer(components); -@import url("./components/nav/primary.css") layer(components); -@import url("./components/nav/footer.css") layer(components); +@import url("./components/nav.css") layer(components); @import url("./components/modal.css") layer(components); @import url("./components/music-chart.css") layer(components); @import url("./components/paginator.css") layer(components); diff --git a/src/data/nav.js b/src/data/nav.js index 02b6f62..16a7e91 100644 --- a/src/data/nav.js +++ b/src/data/nav.js @@ -24,6 +24,7 @@ const fetchAllNavigation = async () => { title: item.title || item.page_title, permalink: item.permalink || item.page_permalink, icon: item.icon, + section: item.section, sort: item.sort, }; diff --git a/src/includes/home/recent-activity.liquid b/src/includes/home/recent-activity.liquid index aeb264f..a37c6e3 100644 --- a/src/includes/home/recent-activity.liquid +++ b/src/includes/home/recent-activity.liquid @@ -3,12 +3,6 @@ {% tablericon "activity" %} Recent activity -
- Posts • - Links • - Watching • - Books -
{%- for item in items -%}