diff --git a/composer.json b/composer.json index 5e7777b..2c1a7eb 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,8 @@ "guzzlehttp/guzzle": "^7.9", "kaoken/markdown-it-php": "^14.1", "sokil/php-isocodes": "^4.2", - "sokil/php-isocodes-db-only": "^4.0" + "sokil/php-isocodes-db-only": "^4.0", + "voku/html-min": "^4.5" }, "scripts": { "start": [ diff --git a/composer.lock b/composer.lock index a6f256d..dbe2da7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6f62ebb63bb51c04310e829e19beeab5", + "content-hash": "9998c1c4f0bcc7d5e58abc25de979750", "packages": [ { "name": "guzzlehttp/guzzle", @@ -686,6 +686,71 @@ }, "time": "2024-02-02T08:24:43+00:00" }, + { + "name": "symfony/css-selector", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, { "name": "symfony/deprecation-contracts", "version": "v3.5.1", @@ -752,6 +817,154 @@ } ], "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "voku/html-min", + "version": "4.5.1", + "source": { + "type": "git", + "url": "https://github.com/voku/HtmlMin.git", + "reference": "872dac444652d30791ca5d0c23fbe1e6b9cab5bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/HtmlMin/zipball/872dac444652d30791ca5d0c23fbe1e6b9cab5bc", + "reference": "872dac444652d30791ca5d0c23fbe1e6b9cab5bc", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.0.0", + "voku/simple_html_dom": "~4.8.5" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "https://www.moelleken.org/" + } + ], + "description": "HTML Compressor and Minifier", + "homepage": "https://github.com/voku/HtmlMin", + "keywords": [ + "compress", + "compression", + "compressor", + "html", + "minifier" + ], + "support": { + "issues": "https://github.com/voku/HtmlMin/issues", + "source": "https://github.com/voku/HtmlMin/tree/4.5.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + } + ], + "time": "2024-05-25T08:01:45+00:00" + }, + { + "name": "voku/simple_html_dom", + "version": "4.8.10", + "source": { + "type": "git", + "url": "https://github.com/voku/simple_html_dom.git", + "reference": "716822ed52ed3a1881542be07a786270de390e99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/simple_html_dom/zipball/716822ed52ed3a1881542be07a786270de390e99", + "reference": "716822ed52ed3a1881542be07a786270de390e99", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-simplexml": "*", + "php": ">=7.0.0", + "symfony/css-selector": "~3.0 || ~4.0 || ~5.0 || ~6.0 || ~7.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "voku/portable-utf8": "If you need e.g. UTF-8 fixed output." + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\helper\\": "src/voku/helper/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "dimabdc", + "email": "support@titor.ru", + "homepage": "https://github.com/dimabdc", + "role": "Developer" + }, + { + "name": "Lars Moelleken", + "homepage": "https://www.moelleken.org/", + "role": "Fork-Maintainer" + } + ], + "description": "Simple HTML DOM package.", + "homepage": "https://github.com/voku/simple_html_dom", + "keywords": [ + "HTML Parser", + "dom", + "php dom" + ], + "support": { + "issues": "https://github.com/voku/simple_html_dom/issues", + "source": "https://github.com/voku/simple_html_dom/tree/4.8.10" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/simple_html_dom", + "type": "tidelift" + } + ], + "time": "2024-07-03T16:05:14+00:00" } ], "packages-dev": [], diff --git a/config/plugins/html-config.js b/config/plugins/html-config.js new file mode 100644 index 0000000..7595846 --- /dev/null +++ b/config/plugins/html-config.js @@ -0,0 +1,17 @@ +import htmlmin from 'html-minifier-terser'; + +export const htmlConfig = (eleventyConfig) => { + eleventyConfig.addTransform('html-minify', (content, path) => { + if (path && (path.endsWith('.html') || path.endsWith('.php'))) { + return htmlmin.minify(content, { + collapseBooleanAttributes: true, + collapseWhitespace: true, + decodeEntities: true, + includeAutoGeneratedTags: false, + removeComments: true + }); + } + + return content; + }); +}; diff --git a/config/plugins/index.js b/config/plugins/index.js index 754afe3..787e27a 100644 --- a/config/plugins/index.js +++ b/config/plugins/index.js @@ -1,4 +1,5 @@ import { cssConfig } from "./css-config.js"; +import { htmlConfig } from "./html-config.js"; import { markdownLib } from "./markdown.js"; -export default { cssConfig, markdownLib }; +export default { cssConfig, htmlConfig, markdownLib }; diff --git a/eleventy.config.js b/eleventy.config.js index e3607ad..805e0a9 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -12,6 +12,7 @@ const appVersion = require("./package.json").version; export default async function (eleventyConfig) { eleventyConfig.addPlugin(tablerIcons); eleventyConfig.addPlugin(plugins.cssConfig); + eleventyConfig.addPlugin(plugins.htmlConfig); eleventyConfig.setQuietMode(true); eleventyConfig.configureErrorReporting({ allowMissingExtensions: true }); diff --git a/package-lock.json b/package-lock.json index 8838cc3..97e95dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,15 @@ { "name": "coryd.dev", - "version": "1.6.2", + "version": "1.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "1.6.2", + "version": "1.7.0", "license": "MIT", "dependencies": { + "html-minifier-terser": "7.2.0", "minisearch": "^7.1.2", "youtube-video-element": "^1.5.1" }, @@ -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" @@ -1035,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": { @@ -1049,6 +1042,16 @@ "keyv": "^5.3.2" } }, + "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": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -1293,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", @@ -1324,7 +1339,6 @@ "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" @@ -1738,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", @@ -2216,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", @@ -2681,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", @@ -2952,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", @@ -3097,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", @@ -3170,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", @@ -3992,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", @@ -4226,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" @@ -4246,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", @@ -4488,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", @@ -4507,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": { @@ -4603,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 5f4d9d0..a54f4b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "1.6.2", + "version": "1.7.0", "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" }, diff --git a/src/assets/styles/base/vars.css b/src/assets/styles/base/vars.css index f4f01bd..5b2967a 100644 --- a/src/assets/styles/base/vars.css +++ b/src/assets/styles/base/vars.css @@ -59,7 +59,7 @@ --music: light-dark(#3d7099, #76b8cc); --newsletter: light-dark(#37b0b0, #91fffa); --now: light-dark(#cc1076, #ff82d5); - --search: light-dark(#ff6b6b, #ffa5a5); + --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 ffadf94..4a082fa 100644 --- a/src/assets/styles/components/buttons.css +++ b/src/assets/styles/components/buttons.css @@ -17,14 +17,10 @@ button:not([data-modal-button]), overflow: hidden; color: var(--text-color-inverted); 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: - font-size var(--transition-duration-default) var(--transition-ease-in-out), - background-color var(--transition-duration-default) var(--transition-ease-in-out), - border var(--transition-duration-default) var(--transition-ease-in-out); + transform: translateY(var(--button-offset-hover)); } &.active { 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/includes/fetchers/artist.php.liquid b/src/includes/fetchers/artist.php.liquid index cfb4413..42ac003 100644 --- a/src/includes/fetchers/artist.php.liquid +++ b/src/includes/fetchers/artist.php.liquid @@ -3,6 +3,7 @@ require __DIR__ . "/../../server/utils/init.php"; use GuzzleHttp\Client; + use voku\helper\HtmlMin; $requestUri = $_SERVER["REQUEST_URI"]; $url = trim(parse_url($requestUri, PHP_URL_PATH), "/"); @@ -75,6 +76,8 @@ $ogImage = htmlspecialchars($artist["image"] . "?class=w800", ENT_QUOTES, "UTF-8"); $fullUrl = "https://www.coryd.dev" . $requestUri; + ob_start(); + header("Cache-Control: public, max-age=3600"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); ?> diff --git a/src/includes/fetchers/book.php.liquid b/src/includes/fetchers/book.php.liquid index 254f24f..7bc0a25 100644 --- a/src/includes/fetchers/book.php.liquid +++ b/src/includes/fetchers/book.php.liquid @@ -98,6 +98,8 @@ $ogImage = htmlspecialchars($book["image"] . "?class=w800", ENT_QUOTES, "UTF-8"); $fullUrl = "https://www.coryd.dev" . $requestUri; + ob_start(); + header("Cache-Control: public, max-age=3600"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); ?> diff --git a/src/includes/fetchers/genre.php.liquid b/src/includes/fetchers/genre.php.liquid index 6333b04..b6db675 100644 --- a/src/includes/fetchers/genre.php.liquid +++ b/src/includes/fetchers/genre.php.liquid @@ -66,6 +66,8 @@ $ogImage = htmlspecialchars($genre["artists"][0]["image"] . "?class=w800", ENT_QUOTES, "UTF-8"); $fullUrl = "https://www.coryd.dev" . $requestUri; + ob_start(); + header("Cache-Control: public, max-age=3600"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); ?> diff --git a/src/includes/fetchers/movie.php.liquid b/src/includes/fetchers/movie.php.liquid index 6e4053d..4e84b87 100644 --- a/src/includes/fetchers/movie.php.liquid +++ b/src/includes/fetchers/movie.php.liquid @@ -75,6 +75,8 @@ $ogImage = htmlspecialchars($movie["backdrop"] . "?class=w800", ENT_QUOTES, "UTF-8"); $fullUrl = "https://www.coryd.dev" . $requestUri; + ob_start(); + header("Cache-Control: public, max-age=3600"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); ?> diff --git a/src/includes/fetchers/show.php.liquid b/src/includes/fetchers/show.php.liquid index 5520d84..5a87cdf 100644 --- a/src/includes/fetchers/show.php.liquid +++ b/src/includes/fetchers/show.php.liquid @@ -66,6 +66,8 @@ $ogImage = htmlspecialchars($show["image"] . "?class=w800", ENT_QUOTES, "UTF-8"); $fullUrl = "https://www.coryd.dev" . $requestUri; + ob_start(); + header("Cache-Control: public, max-age=3600"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); ?> diff --git a/src/includes/layout/header.liquid b/src/includes/layout/header.liquid index 7487651..8e68154 100644 --- a/src/includes/layout/header.liquid +++ b/src/includes/layout/header.liquid @@ -1,5 +1,5 @@ {%- capture headerContent -%} - + {{ globals.site_name }} Cory Dransfeldt {%- endcapture -%}
diff --git a/src/pages/dynamic/artist.php.liquid b/src/pages/dynamic/artist.php.liquid index 70f3596..2b86511 100644 --- a/src/pages/dynamic/artist.php.liquid +++ b/src/pages/dynamic/artist.php.liquid @@ -133,3 +133,13 @@ schema: artist +doOptimizeAttributes(true); + $htmlMin->doRemoveComments(true); + $htmlMin->doSumUpWhitespace(true); + $htmlMin->doRemoveWhitespaceAroundTags(true); + $htmlMin->doOptimizeViaHtmlDomParser(true); + echo $htmlMin->minify($html); +?> diff --git a/src/pages/dynamic/book.php.liquid b/src/pages/dynamic/book.php.liquid index a262042..a72a009 100644 --- a/src/pages/dynamic/book.php.liquid +++ b/src/pages/dynamic/book.php.liquid @@ -64,3 +64,13 @@ schema: book +doOptimizeAttributes(true); + $htmlMin->doRemoveComments(true); + $htmlMin->doSumUpWhitespace(true); + $htmlMin->doRemoveWhitespaceAroundTags(true); + $htmlMin->doOptimizeViaHtmlDomParser(true); + echo $htmlMin->minify($html); +?> diff --git a/src/pages/dynamic/genre.php.liquid b/src/pages/dynamic/genre.php.liquid index d842bae..00f11fc 100644 --- a/src/pages/dynamic/genre.php.liquid +++ b/src/pages/dynamic/genre.php.liquid @@ -40,3 +40,13 @@ schema: genre +doOptimizeAttributes(true); + $htmlMin->doRemoveComments(true); + $htmlMin->doSumUpWhitespace(true); + $htmlMin->doRemoveWhitespaceAroundTags(true); + $htmlMin->doOptimizeViaHtmlDomParser(true); + echo $htmlMin->minify($html); +?> diff --git a/src/pages/dynamic/movie.php.liquid b/src/pages/dynamic/movie.php.liquid index a252fe1..ea3d707 100644 --- a/src/pages/dynamic/movie.php.liquid +++ b/src/pages/dynamic/movie.php.liquid @@ -56,3 +56,13 @@ schema: movie +doOptimizeAttributes(true); + $htmlMin->doRemoveComments(true); + $htmlMin->doSumUpWhitespace(true); + $htmlMin->doRemoveWhitespaceAroundTags(true); + $htmlMin->doOptimizeViaHtmlDomParser(true); + echo $htmlMin->minify($html); +?> diff --git a/src/pages/dynamic/show.php.liquid b/src/pages/dynamic/show.php.liquid index e4ce3e3..b4d9578 100644 --- a/src/pages/dynamic/show.php.liquid +++ b/src/pages/dynamic/show.php.liquid @@ -56,3 +56,13 @@ schema: show +doOptimizeAttributes(true); + $htmlMin->doRemoveComments(true); + $htmlMin->doSumUpWhitespace(true); + $htmlMin->doRemoveWhitespaceAroundTags(true); + $htmlMin->doOptimizeViaHtmlDomParser(true); + echo $htmlMin->minify($html); +?>