diff --git a/README.md b/README.md index a1ffffb8..f3fe9563 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,6 @@ keep it useful for others. Amongst other things, I: Adapt Pelican's `publishconf.py` for local development. E.g. `RELATIVE_URLS = False` -### Install Tailwind 3 (for now) - -```shell -npm install -D tailwindcss@3 -``` - ### Install Tailwind CSS Typography plugin Typography enables sane defaults for longer texts. In this case, we use it for diff --git a/package-lock.json b/package-lock.json index 9d5c0ee1..6f5d9f44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "devDependencies": { "@tailwindcss/typography": "^0.5.15", - "tailwindcss": "^3.4.19" + "tailwindcss": "^3.4.17" } }, "node_modules/@alloc/quick-lru": { @@ -1324,9 +1324,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", - "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, "license": "MIT", "dependencies": { @@ -1338,7 +1338,7 @@ "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.7", + "jiti": "^1.21.6", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", @@ -1347,7 +1347,7 @@ "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-load-config": "^4.0.2", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", diff --git a/package.json b/package.json index 5fe6fef4..1710bb14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "@tailwindcss/typography": "^0.5.15", - "tailwindcss": "^3.4.19" + "@tailwindcss/typography": "^0.5.16", + "tailwindcss": "^4.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 2cbc97f7..00000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,624 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - '@tailwindcss/typography': - specifier: ^0.5.15 - version: 0.5.20(tailwindcss@3.4.19) - tailwindcss: - specifier: ^3.4.19 - version: 3.4.19 - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@tailwindcss/typography@0.5.20': - resolution: {integrity: sha512-hwbzQuNUfcPvbegQFatVPl/MY/tcM9KLl963hQ5laJKPh81TEZ1+dNG9PirGvcaDBkp+BCshExAyKVPW91dozw==} - peerDependencies: - tailwindcss: '>=3.0.0 || >=4.0.0 || insiders' - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.13: - resolution: {integrity: sha512-sPdqC6ByMVVGvF1ynvvMo0/o+oD1VX7DaHhijt1bFgjvBkHBib4t49GoNDhf2NDta4oeUNlaGbSt5K7qjZ955Q==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} - - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.1.0: - resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - - postcss-selector-parser@6.1.4: - resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} - engines: {node: ^10 || ^12 || >=14} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} - engines: {node: '>= 0.4'} - hasBin: true - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tailwindcss@3.4.19: - resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - tinyglobby@0.2.17: - resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} - engines: {node: '>=12.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@tailwindcss/typography@0.5.20(tailwindcss@3.4.19)': - dependencies: - postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.19 - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.2 - - arg@5.0.2: {} - - binary-extensions@2.3.0: {} - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - camelcase-css@2.0.1: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - commander@4.1.1: {} - - cssesc@3.0.0: {} - - didyoumean@1.2.2: {} - - dlv@1.1.3: {} - - es-errors@1.3.0: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.16.2: - dependencies: - hasown: 2.0.4 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - jiti@1.21.7: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.2 - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.13: {} - - normalize-path@3.0.0: {} - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - path-parse@1.0.7: {} - - picocolors@1.1.1: {} - - picomatch@2.3.2: {} - - picomatch@4.0.4: {} - - pify@2.3.0: {} - - pirates@4.0.7: {} - - postcss-import@15.1.0(postcss@8.5.15): - dependencies: - postcss: 8.5.15 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.12 - - postcss-js@4.1.0(postcss@8.5.15): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.15 - - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 1.21.7 - postcss: 8.5.15 - - postcss-nested@6.2.0(postcss@8.5.15): - dependencies: - postcss: 8.5.15 - postcss-selector-parser: 6.1.4 - - postcss-selector-parser@6.0.10: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@6.1.4: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} - - postcss@8.5.15: - dependencies: - nanoid: 3.3.13 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - queue-microtask@1.2.3: {} - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.2 - - resolve@1.22.12: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.2 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.1.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - source-map-js@1.2.1: {} - - sucrase@3.35.1: - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - commander: 4.1.1 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - tinyglobby: 0.2.17 - ts-interface-checker: 0.1.13 - - supports-preserve-symlinks-flag@1.0.0: {} - - tailwindcss@3.4.19: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.15 - postcss-import: 15.1.0(postcss@8.5.15) - postcss-js: 4.1.0(postcss@8.5.15) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15) - postcss-nested: 6.2.0(postcss@8.5.15) - postcss-selector-parser: 6.1.4 - resolve: 1.22.12 - sucrase: 3.35.1 - transitivePeerDependencies: - - tsx - - yaml - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - tinyglobby@0.2.17: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-interface-checker@0.1.13: {} - - util-deprecate@1.0.2: {} diff --git a/static/css/in.css b/static/css/in.css index c6396063..81a35e8f 100644 --- a/static/css/in.css +++ b/static/css/in.css @@ -1,6 +1,6 @@ -@tailwind base; /* Preflight is injected here */ -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; /* Preflight is injected here */ +@plugin "@tailwindcss/typography"; +@config "../../tailwind.config.js"; @layer base { @font-face { @@ -52,60 +52,13 @@ ul { @apply pl-4 list-disc; } - - /* pelican tag_cloud */ - ul.tagcloud { - @apply list-none p-0; - } - ul.tagcloud li { - @apply inline-block p-1; - } } @layer components { /*This does not seem to affect prismjs which is good*/ - code:not(pre code) { - @apply px-0.5 bg-rp-dawn-highlight-med dark:bg-rp-moon-highlight-med; + code { + @apply bg-rp-dawn-highlight-low dark:bg-rp-moon-highlight-low; } - .badge { - @apply inline-block px-1.5 py-0.5 text-xs font-mono font-semibold bg-rp-dawn-highlight-low dark:bg-rp-moon-highlight-med text-rp-dawn-gold dark:text-rp-moon-gold align-middle ml-1; - } - .badge a { - @apply no-underline hover:no-underline; - } - /* copy-to-clipboard button, positioned inside the code block. - NOTE: Pelican's fenced_code puts language-* on , not
,
-     so we target pre that contains a language-* code element. */
-  pre:has(code[class*="language-"]) {
-    @apply relative;
-  }
-  .copy-to-clipboard-button {
-    @apply absolute top-2 right-2 font-mono rounded bg-rp-dawn-highlight-med px-2 py-0.5 text-xs text-rp-dawn-text
-           opacity-0
-           hover:bg-rp-dawn-highlight-high hover:z-50
-           dark:bg-rp-moon-highlight-med dark:text-rp-moon-text dark:hover:bg-rp-moon-highlight-high;
-  }
-  pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
-    @apply opacity-100 z-50;
-  }
-}
-
-/*Hide heading anchor links unless hovering over them*/
-.headerlink {
-  /*@apply no-underline text-rp-dawn-love ml-1 md:ml-2 hover:no-underline;*/
-  @apply no-underline text-rp-dawn-love ml-1 md:ml-2 hover:no-underline opacity-0 transition-opacity duration-150;
-  visibility: hidden;
-}
-
-h1:hover .headerlink,
-h2:hover .headerlink,
-h3:hover .headerlink,
-h4:hover .headerlink,
-h5:hover .headerlink,
-h6:hover .headerlink,
-.headerlink:focus-visible {
-  @apply opacity-100;
-  visibility: visible;
 }
 
 .note {
@@ -115,14 +68,6 @@ h6:hover .headerlink,
   @apply bg-rp-dawn-text text-rp-dawn-base dark:bg-rp-moon-text dark:text-rp-moon-base m-8 p-4;
 }
 
-/*Attempt to only float thumbnails to the right*/
-.image-process-article-image,
-.image-process-thumb,
-.image-process-responsive {
-  /*@apply lg:float-right p-2 lg:p-4;*/
-  @apply lg:float-right px-1 lg:px-3;
-}
-
 #skiptocontent a {
   position: absolute;
   top: -40px;
diff --git a/static/css/out.css b/static/css/out.css
index b84e3f14..edc93ef0 100644
--- a/static/css/out.css
+++ b/static/css/out.css
@@ -107,7 +107,7 @@
 }
 
 /*
-! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
+! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
 */
 
 /*
@@ -243,7 +243,7 @@ code,
 kbd,
 samp,
 pre {
-  font-family: ui-monospace, monospace;
+  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
   /* 1 */
   font-feature-settings: normal;
   /* 2 */
@@ -718,54 +718,8 @@ ul {
   padding-left: 1rem;
 }
 
-/* pelican tag_cloud */
-
-ul.tagcloud {
-  list-style-type: none;
-  padding: 0px;
-}
-
-ul.tagcloud li {
-  display: inline-block;
-  padding: 0.25rem;
-}
-
 /* Preflight is injected here */
 
-.container {
-  width: 100%;
-}
-
-@media (min-width: 640px) {
-  .container {
-    max-width: 640px;
-  }
-}
-
-@media (min-width: 768px) {
-  .container {
-    max-width: 768px;
-  }
-}
-
-@media (min-width: 1024px) {
-  .container {
-    max-width: 1024px;
-  }
-}
-
-@media (min-width: 1280px) {
-  .container {
-    max-width: 1280px;
-  }
-}
-
-@media (min-width: 1536px) {
-  .container {
-    max-width: 1536px;
-  }
-}
-
 .prose {
   color: #575279;
   max-width: 80ch;
@@ -1243,123 +1197,18 @@ ul.tagcloud li {
 
 /*This does not seem to affect prismjs which is good*/
 
-code:not(pre code) {
-  --tw-bg-opacity: 1;
-  background-color: rgb(223 218 217 / var(--tw-bg-opacity, 1));
-  padding-left: 0.125rem;
-  padding-right: 0.125rem;
-}
-
-@media (prefers-color-scheme: dark) {
-  code:not(pre code) {
-    --tw-bg-opacity: 1;
-    background-color: rgb(68 65 90 / var(--tw-bg-opacity, 1));
-  }
-}
-
-.badge {
-  margin-left: 0.25rem;
-  display: inline-block;
+code {
   --tw-bg-opacity: 1;
   background-color: rgb(244 237 232 / var(--tw-bg-opacity, 1));
-  padding-left: 0.375rem;
-  padding-right: 0.375rem;
-  padding-top: 0.125rem;
-  padding-bottom: 0.125rem;
-  vertical-align: middle;
-  font-family: ui-monospace, monospace;
-  font-size: 0.75rem;
-  line-height: 1rem;
-  font-weight: 600;
-  --tw-text-opacity: 1;
-  color: rgb(234 157 52 / var(--tw-text-opacity, 1));
 }
 
 @media (prefers-color-scheme: dark) {
-  .badge {
+  code {
     --tw-bg-opacity: 1;
-    background-color: rgb(68 65 90 / var(--tw-bg-opacity, 1));
-    --tw-text-opacity: 1;
-    color: rgb(246 193 119 / var(--tw-text-opacity, 1));
+    background-color: rgb(42 40 62 / var(--tw-bg-opacity, 1));
   }
 }
 
-.badge a {
-  text-decoration-line: none;
-}
-
-.badge a:hover {
-  text-decoration-line: none;
-}
-
-/* copy-to-clipboard button, positioned inside the code block.
-     NOTE: Pelican's fenced_code puts language-* on , not 
,
-     so we target pre that contains a language-* code element. */
-
-pre:has(code[class*="language-"]) {
-  position: relative;
-}
-
-.copy-to-clipboard-button {
-  position: absolute;
-  top: 0.5rem;
-  right: 0.5rem;
-  border-radius: 0.25rem;
-  --tw-bg-opacity: 1;
-  background-color: rgb(223 218 217 / var(--tw-bg-opacity, 1));
-  padding-left: 0.5rem;
-  padding-right: 0.5rem;
-  padding-top: 0.125rem;
-  padding-bottom: 0.125rem;
-  font-family: ui-monospace, monospace;
-  font-size: 0.75rem;
-  line-height: 1rem;
-  --tw-text-opacity: 1;
-  color: rgb(87 82 121 / var(--tw-text-opacity, 1));
-  opacity: 0;
-}
-
-.copy-to-clipboard-button:hover {
-  z-index: 50;
-  --tw-bg-opacity: 1;
-  background-color: rgb(206 202 205 / var(--tw-bg-opacity, 1));
-}
-
-@media (prefers-color-scheme: dark) {
-  .copy-to-clipboard-button {
-    --tw-bg-opacity: 1;
-    background-color: rgb(68 65 90 / var(--tw-bg-opacity, 1));
-    --tw-text-opacity: 1;
-    color: rgb(224 222 244 / var(--tw-text-opacity, 1));
-  }
-
-  .copy-to-clipboard-button:hover {
-    --tw-bg-opacity: 1;
-    background-color: rgb(86 82 110 / var(--tw-bg-opacity, 1));
-  }
-}
-
-pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
-  z-index: 50;
-  opacity: 1;
-}
-
-.absolute {
-  position: absolute;
-}
-
-.relative {
-  position: relative;
-}
-
-.z-10 {
-  z-index: 10;
-}
-
-.z-20 {
-  z-index: 20;
-}
-
 .col-span-1 {
   grid-column: span 1 / span 1;
 }
@@ -1368,8 +1217,8 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   grid-column: span 2 / span 2;
 }
 
-.col-span-3 {
-  grid-column: span 3 / span 3;
+.col-span-7 {
+  grid-column: span 7 / span 7;
 }
 
 .col-span-9 {
@@ -1384,8 +1233,8 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   margin: 1rem;
 }
 
-.-mt-11 {
-  margin-top: -2.75rem;
+.-mt-9 {
+  margin-top: -2.25rem;
 }
 
 .mb-2 {
@@ -1416,10 +1265,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   display: flex;
 }
 
-.table {
-  display: table;
-}
-
 .grid {
   display: grid;
 }
@@ -1428,10 +1273,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   display: inline-grid;
 }
 
-.hidden {
-  display: none;
-}
-
 .size-5 {
   width: 1.25rem;
   height: 1.25rem;
@@ -1445,15 +1286,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   width: 2rem;
 }
 
-.-rotate-3 {
-  --tw-rotate: -3deg;
-  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.resize {
-  resize: both;
-}
-
 .list-outside {
   list-style-position: outside;
 }
@@ -1478,12 +1310,12 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   grid-template-columns: repeat(9, minmax(0, 1fr));
 }
 
-.grid-cols-\[max-content_max-content_max-content_max-content_max-content\] {
-  grid-template-columns: max-content max-content max-content max-content max-content;
+.grid-cols-\[max-content_max-content_max-content\] {
+  grid-template-columns: max-content max-content max-content;
 }
 
-.grid-cols-\[max-content_max-content_max-content_max-content_max-content_max-content\] {
-  grid-template-columns: max-content max-content max-content max-content max-content max-content;
+.grid-cols-\[max-content_max-content_max-content_max-content_max-content\] {
+  grid-template-columns: max-content max-content max-content max-content max-content;
 }
 
 .items-center {
@@ -1498,21 +1330,11 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   gap: 2rem;
 }
 
-.truncate {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
 .hyphens-auto {
   -webkit-hyphens: auto;
           hyphens: auto;
 }
 
-.rounded-full {
-  border-radius: 9999px;
-}
-
 .border-b-2 {
   border-bottom-width: 2px;
 }
@@ -1536,11 +1358,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   background-color: rgb(250 244 237 / var(--tw-bg-opacity, 1));
 }
 
-.bg-rp-dawn-gold {
-  --tw-bg-opacity: 1;
-  background-color: rgb(234 157 52 / var(--tw-bg-opacity, 1));
-}
-
 .bg-rp-dawn-overlay {
   --tw-bg-opacity: 1;
   background-color: rgb(242 233 225 / var(--tw-bg-opacity, 1));
@@ -1551,28 +1368,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   background-color: rgb(255 250 243 / var(--tw-bg-opacity, 1));
 }
 
-.bg-gradient-to-r {
-  background-image: linear-gradient(to right, var(--tw-gradient-stops));
-}
-
-.from-rp-dawn-gold {
-  --tw-gradient-from: #ea9d34 var(--tw-gradient-from-position);
-  --tw-gradient-to: rgb(234 157 52 / 0) var(--tw-gradient-to-position);
-  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
-.from-10\% {
-  --tw-gradient-from-position: 10%;
-}
-
-.to-rp-dawn-pine {
-  --tw-gradient-to: #286983 var(--tw-gradient-to-position);
-}
-
-.to-90\% {
-  --tw-gradient-to-position: 90%;
-}
-
 .p-1 {
   padding: 0.25rem;
 }
@@ -1585,19 +1380,14 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   padding: 1rem;
 }
 
+.p-5 {
+  padding: 1.25rem;
+}
+
 .p-8 {
   padding: 2rem;
 }
 
-.px-2 {
-  padding-left: 0.5rem;
-  padding-right: 0.5rem;
-}
-
-.pb-4 {
-  padding-bottom: 1rem;
-}
-
 .pb-60 {
   padding-bottom: 15rem;
 }
@@ -1633,16 +1423,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   line-height: 2.5rem;
 }
 
-.text-base {
-  font-size: 1rem;
-  line-height: 1.5rem;
-}
-
-.text-sm {
-  font-size: 0.875rem;
-  line-height: 1.25rem;
-}
-
 .text-xl {
   font-size: 1.25rem;
   line-height: 1.75rem;
@@ -1656,10 +1436,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   text-transform: uppercase;
 }
 
-.capitalize {
-  text-transform: capitalize;
-}
-
 .italic {
   font-style: italic;
 }
@@ -1669,6 +1445,11 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   color: rgb(86 148 159 / var(--tw-text-opacity, 1));
 }
 
+.text-rp-dawn-love {
+  --tw-text-opacity: 1;
+  color: rgb(180 99 122 / var(--tw-text-opacity, 1));
+}
+
 .text-rp-dawn-overlay {
   --tw-text-opacity: 1;
   color: rgb(242 233 225 / var(--tw-text-opacity, 1));
@@ -1694,49 +1475,6 @@ pre:has(code[class*="language-"]):hover .copy-to-clipboard-button {
   box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
 }
 
-.filter {
-  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
-}
-
-/*Hide heading anchor links unless hovering over them*/
-
-.headerlink {
-  /*@apply no-underline text-rp-dawn-love ml-1 md:ml-2 hover:no-underline;*/
-  margin-left: 0.25rem;
-  --tw-text-opacity: 1;
-  color: rgb(180 99 122 / var(--tw-text-opacity, 1));
-  text-decoration-line: none;
-  opacity: 0;
-  transition-property: opacity;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-duration: 150ms;
-}
-
-.headerlink:hover {
-  text-decoration-line: none;
-}
-
-@media (min-width: 768px) {
-  .headerlink {
-    margin-left: 0.5rem;
-  }
-}
-
-.headerlink {
-  visibility: hidden;
-}
-
-h1:hover .headerlink,
-h2:hover .headerlink,
-h3:hover .headerlink,
-h4:hover .headerlink,
-h5:hover .headerlink,
-h6:hover .headerlink,
-.headerlink:focus-visible {
-  opacity: 1;
-  visibility: visible;
-}
-
 .note {
   margin: 2rem;
   --tw-bg-opacity: 1;
@@ -1769,26 +1507,6 @@ h6:hover .headerlink,
   }
 }
 
-/*Attempt to only float thumbnails to the right*/
-
-.image-process-article-image,
-.image-process-thumb,
-.image-process-responsive {
-  /*@apply lg:float-right p-2 lg:p-4;*/
-  padding-left: 0.25rem;
-  padding-right: 0.25rem;
-}
-
-@media (min-width: 1024px) {
-  .image-process-article-image,
-.image-process-thumb,
-.image-process-responsive {
-    float: right;
-    padding-left: 0.75rem;
-    padding-right: 0.75rem;
-  }
-}
-
 #skiptocontent a {
   position: absolute;
   top: -40px;
@@ -2352,11 +2070,6 @@ h6:hover .headerlink,
   text-decoration-line: none;
 }
 
-.prose-img\:mx-auto :is(:where(img):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
-  margin-left: auto;
-  margin-right: auto;
-}
-
 .prose-img\:rounded :is(:where(img):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
   border-radius: 0.25rem;
 }
@@ -2370,18 +2083,19 @@ h6:hover .headerlink,
     grid-column: span 6 / span 6;
   }
 
-  .md\:col-span-7 {
-    grid-column: span 7 / span 7;
-  }
-
-  .md\:grid-cols-6 {
-    grid-template-columns: repeat(6, minmax(0, 1fr));
+  .md\:grid-cols-5 {
+    grid-template-columns: repeat(5, minmax(0, 1fr));
   }
 
   .md\:border-l-4 {
     border-left-width: 4px;
   }
 
+  .md\:text-2xl {
+    font-size: 1.5rem;
+    line-height: 2rem;
+  }
+
   .md\:text-3xl {
     font-size: 1.875rem;
     line-height: 2.25rem;
@@ -2401,11 +2115,6 @@ h6:hover .headerlink,
     font-size: 1rem;
     line-height: 1.5rem;
   }
-
-  .md\:text-xl {
-    font-size: 1.25rem;
-    line-height: 1.75rem;
-  }
 }
 
 @media (min-width: 1024px) {
@@ -2441,11 +2150,6 @@ h6:hover .headerlink,
     background-color: rgb(57 53 82 / var(--tw-bg-opacity, 1));
   }
 
-  .dark\:bg-rp-moon-pine {
-    --tw-bg-opacity: 1;
-    background-color: rgb(62 143 176 / var(--tw-bg-opacity, 1));
-  }
-
   .dark\:bg-rp-moon-surface {
     --tw-bg-opacity: 1;
     background-color: rgb(42 39 63 / var(--tw-bg-opacity, 1));
@@ -2456,11 +2160,6 @@ h6:hover .headerlink,
     color: rgb(156 207 216 / var(--tw-text-opacity, 1));
   }
 
-  .dark\:text-rp-moon-highlight-med {
-    --tw-text-opacity: 1;
-    color: rgb(68 65 90 / var(--tw-text-opacity, 1));
-  }
-
   .dark\:text-rp-moon-iris {
     --tw-text-opacity: 1;
     color: rgb(196 167 231 / var(--tw-text-opacity, 1));
@@ -2471,11 +2170,6 @@ h6:hover .headerlink,
     color: rgb(234 154 151 / var(--tw-text-opacity, 1));
   }
 
-  .dark\:text-rp-moon-surface {
-    --tw-text-opacity: 1;
-    color: rgb(42 39 63 / var(--tw-text-opacity, 1));
-  }
-
   .dark\:text-rp-moon-text {
     --tw-text-opacity: 1;
     color: rgb(224 222 244 / var(--tw-text-opacity, 1));
diff --git a/static/css/prism-rose-pine-dawn-alt.css b/static/css/prism-rose-pine-dawn-alt.css
deleted file mode 100644
index 7b6551cc..00000000
--- a/static/css/prism-rose-pine-dawn-alt.css
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * MIT License
- * Rosé Pine Theme
- * https://github.com/rose-pine
- * Ported for PrismJS by fvrests [@fvrests]
- */
-
-code[class*="language-"],
-pre[class*="language-"] {
-	color: #575279;
-	background: #fffaf3;
-	font-family: "Cartograph CF", ui-monospace, SFMono-Regular, Menlo, Monaco,
-		Consolas, "Liberation Mono", "Courier New", monospace;
-	text-align: left;
-	white-space: pre;
-	word-spacing: normal;
-	word-break: normal;
-	word-wrap: normal;
-	line-height: 1.5;
-
-	-moz-tab-size: 4;
-	-o-tab-size: 4;
-	tab-size: 4;
-
-	-webkit-hyphens: none;
-	-moz-hyphens: none;
-	-ms-hyphens: none;
-	hyphens: none;
-
-	@media print {
-		text-shadow: none;
-	}
-}
-
-/* Selection */
-code[class*="language-"]::-moz-selection,
-pre[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection,
-pre[class*="language-"] ::-moz-selection {
-	background: #dfdad9;
-}
-
-code[class*="language-"]::selection,
-pre[class*="language-"]::selection,
-code[class*="language-"] ::selection,
-pre[class*="language-"] ::selection {
-	background: #dfdad9;
-}
-
-/* Code (block & inline) */
-:not(pre) > code[class*="language-"],
-pre[class*="language-"] {
-	color: #575279;
-	background: #fffaf3;
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-	padding: 1em;
-	margin: 0.5em 0;
-	overflow: auto;
-}
-
-/* Inline code */
-:not(pre) > code[class*="language-"] {
-	padding: 0.1em;
-	border-radius: 0.3em;
-	white-space: normal;
-	color: #575279;
-	background: #fffaf3;
-}
-
-/* Text style & opacity */
-.token.entity {
-	cursor: help;
-}
-
-.token.important,
-.token.bold {
-	font-weight: bold;
-}
-
-.token.italic,
-.token.selector,
-.token.doctype,
-.token.attr-name,
-.token.inserted,
-.token.deleted,
-.token.comment,
-.token.prolog,
-.token.cdata,
-.token.constant,
-.token.parameter,
-.token.url {
-	font-style: italic;
-}
-
-.token.url {
-	text-decoration: underline;
-}
-
-.namespace {
-	opacity: 0.7;
-}
-
-/* Syntax highlighting */
-.token.constant {
-	color: #575279;
-}
-
-.token.comment,
-.token.prolog,
-.token.cdata,
-.token.punctuation {
-	color: #797593;
-}
-
-.token.delimiter,
-.token.important,
-.token.atrule,
-.token.operator,
-.token.keyword {
-	color: #286983;
-}
-
-.token.tag,
-.token.tag .punctuation,
-.token.doctype,
-.token.variable,
-.token.regex,
-.token.class-name,
-.token.selector,
-.token.inserted {
-	color: #56949f;
-}
-
-.token.boolean,
-.token.entity,
-.token.number,
-.token.symbol,
-.token.function {
-	color: #d7827e;
-}
-
-.token.string,
-.token.char,
-.token.property,
-.token.attr-value,
-.token.attr-value .punctuation {
-	color: #ea9d34;
-}
-
-.token.parameter,
-.token.url,
-.token.name,
-.token.attr-name,
-.token.builtin {
-	color: #907aa9;
-}
-
-.token.deleted {
-	color: #b4637a;
-}
-
-/* Insertions & deletions */
-.token.inserted {
-	background: rgba(86 148 159 0.12);
-}
-
-.token.deleted {
-	background: rgba(180 99 122 0.12);
-}
-
-/* Line highlighting */
-pre[data-line] {
-	position: relative;
-}
-
-pre[class*="language-"] > code[class*="language-"] {
-	position: relative;
-	z-index: 1;
-}
-
-.line-highlight,
-.highlight-lines .highlighted {
-	position: absolute;
-	left: 0;
-	right: 0;
-	padding: inherit 0;
-	margin-top: 1em;
-
-	background: #dfdad9;
-	box-shadow: inset 5px 0 0 #575279;
-
-	z-index: 0;
-
-	pointer-events: none;
-
-	line-height: inherit;
-	white-space: pre;
-}
diff --git a/static/css/prism-rose-pine-dawn.css b/static/css/prism-rose-pine-dawn.css
deleted file mode 100644
index 2be14f62..00000000
--- a/static/css/prism-rose-pine-dawn.css
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * MIT License
- * Rosé Pine Theme
- * https://github.com/rose-pine
- * Ported for PrismJS by fvrests [@fvrests]
- */
-
-code[class*="language-"],
-pre[class*="language-"] {
-	color: #575279;
-	background: #faf4ed;
-	font-family: "Cartograph CF", ui-monospace, SFMono-Regular, Menlo, Monaco,
-		Consolas, "Liberation Mono", "Courier New", monospace;
-	text-align: left;
-	white-space: pre;
-	word-spacing: normal;
-	word-break: normal;
-	word-wrap: normal;
-	line-height: 1.5;
-
-	-moz-tab-size: 4;
-	-o-tab-size: 4;
-	tab-size: 4;
-
-	-webkit-hyphens: none;
-	-moz-hyphens: none;
-	-ms-hyphens: none;
-	hyphens: none;
-
-	@media print {
-		text-shadow: none;
-	}
-}
-
-/* Selection */
-code[class*="language-"]::-moz-selection,
-pre[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection,
-pre[class*="language-"] ::-moz-selection {
-	background: #dfdad9;
-}
-
-code[class*="language-"]::selection,
-pre[class*="language-"]::selection,
-code[class*="language-"] ::selection,
-pre[class*="language-"] ::selection {
-	background: #dfdad9;
-}
-
-/* Code (block & inline) */
-:not(pre) > code[class*="language-"],
-pre[class*="language-"] {
-	color: #575279;
-	background: #faf4ed;
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-	padding: 1em;
-	margin: 0.5em 0;
-	overflow: auto;
-}
-
-/* Inline code */
-:not(pre) > code[class*="language-"] {
-	padding: 0.1em;
-	border-radius: 0.3em;
-	white-space: normal;
-	color: #575279;
-	background: #faf4ed;
-}
-
-/* Text style & opacity */
-.token.entity {
-	cursor: help;
-}
-
-.token.important,
-.token.bold {
-	font-weight: bold;
-}
-
-.token.italic,
-.token.selector,
-.token.doctype,
-.token.attr-name,
-.token.inserted,
-.token.deleted,
-.token.comment,
-.token.prolog,
-.token.cdata,
-.token.constant,
-.token.parameter,
-.token.url {
-	font-style: italic;
-}
-
-.token.url {
-	text-decoration: underline;
-}
-
-.namespace {
-	opacity: 0.7;
-}
-
-/* Syntax highlighting */
-.token.constant {
-	color: #575279;
-}
-
-.token.comment,
-.token.prolog,
-.token.cdata,
-.token.punctuation {
-	color: #797593;
-}
-
-.token.delimiter,
-.token.important,
-.token.atrule,
-.token.operator,
-.token.keyword {
-	color: #286983;
-}
-
-.token.tag,
-.token.tag .punctuation,
-.token.doctype,
-.token.variable,
-.token.regex,
-.token.class-name,
-.token.selector,
-.token.inserted {
-	color: #56949f;
-}
-
-.token.boolean,
-.token.entity,
-.token.number,
-.token.symbol,
-.token.function {
-	color: #d7827e;
-}
-
-.token.string,
-.token.char,
-.token.property,
-.token.attr-value,
-.token.attr-value .punctuation {
-	color: #ea9d34;
-}
-
-.token.parameter,
-.token.url,
-.token.name,
-.token.attr-name,
-.token.builtin {
-	color: #907aa9;
-}
-
-.token.deleted {
-	color: #b4637a;
-}
-
-/* Insertions & deletions */
-.token.inserted {
-	background: rgba(86 148 159 0.12);
-}
-
-.token.deleted {
-	background: rgba(180 99 122 0.12);
-}
-
-/* Line highlighting */
-pre[data-line] {
-	position: relative;
-}
-
-pre[class*="language-"] > code[class*="language-"] {
-	position: relative;
-	z-index: 1;
-}
-
-.line-highlight,
-.highlight-lines .highlighted {
-	position: absolute;
-	left: 0;
-	right: 0;
-	padding: inherit 0;
-	margin-top: 1em;
-
-	background: #dfdad9;
-	box-shadow: inset 5px 0 0 #575279;
-
-	z-index: 0;
-
-	pointer-events: none;
-
-	line-height: inherit;
-	white-space: pre;
-}
diff --git a/static/css/prism.css b/static/css/prism.css
index d9b26c36..6d73b1fb 100644
--- a/static/css/prism.css
+++ b/static/css/prism.css
@@ -1,3 +1,3 @@
-/* PrismJS 1.30.0
-https://prismjs.com/download#themes=prism&languages=markup+css+clike+javascript+awk+bash+c+csv+diff+django+dns-zone-file+docker+dot+editorconfig+gettext+git+go+go-module+graphql+hcl+ini+jq+json+json5+jsonp+latex+lua+makefile+markdown+markup-templating+nginx+promql+properties+python+r+regex+rest+sparql+sql+systemd+toml+turtle+typescript+vim+yaml+zig */
+/* PrismJS 1.29.0
+https://prismjs.com/download.html?themes#themes=prism&languages=markup+css+clike+javascript+bash+diff+django+dns-zone-file+docker+dot+elixir+erlang+git+go+go-module+hcl+ini+jq+lua+makefile+markdown+markup-templating+nginx+properties+python+r+rest+sql+toml+vim+yaml */
 code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}
diff --git a/static/js/copy-code.js b/static/js/copy-code.js
deleted file mode 100644
index 42a03831..00000000
--- a/static/js/copy-code.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// NOTE: Pelican's fenced_code puts language-* on , not 
,
-// so we select the  elements and walk up to the 
.
-const codeBlocks = document.querySelectorAll('code[class*="language-"]');
-
-console.log("copy-code.js loaded, found:", codeBlocks.length);
-
-codeBlocks.forEach((code) => {
-  const pre = code.closest("pre");
-  if (!pre) return;
-
-  const button = document.createElement("button");
-  button.className = "copy-to-clipboard-button";
-  button.type = "button";
-  button.textContent = "Copy";
-
-  button.addEventListener("click", async () => {
-    try {
-      await navigator.clipboard.writeText(code.innerText);
-      button.textContent = "Copied";
-    } catch {
-      button.textContent = "Failed";
-    }
-    setTimeout(() => (button.textContent = "Copy"), 1500);
-  });
-
-  pre.appendChild(button);
-});
diff --git a/tailwind.config.js b/tailwind.config.js
index 324afaa1..b7b9c40d 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,6 +1,6 @@
 /** @type {import('tailwindcss').Config} */
 module.exports = {
-  content: ["./templates/*.html", "./static/js/*.js"],
+  content: ["./templates/*.html"],
   plugins: [require("@tailwindcss/typography")],
   variants: {
     typography: ["dark"],
@@ -9,7 +9,6 @@ module.exports = {
     fontFamily: {
       texts: ["Erode", "serif"],
       headings: ["Fira Sans", "sans-serif"],
-      mono: ["ui-monospace", "monospace"],
     },
     extend: {
       // NOTE: this is for non-prose (so not Markdown rendered with typography plugin)
@@ -124,6 +123,4 @@ module.exports = {
     // preflight: false,
     divideStyle: true,
   },
-  // needed to generate the .badge class from in.css
-  safelist: ["badge"],
 };
diff --git a/templates/archives.html b/templates/archives.html
index 9b15a164..131a095a 100644
--- a/templates/archives.html
+++ b/templates/archives.html
@@ -1,11 +1,12 @@
 {% extends "base.html" %}
 
-{% block title %}Blog archive - {{ SITENAME|striptags }}{% endblock %}
+{% block title %}{{ SITENAME|striptags }} - Archives{% endblock %}
 
 {% block content %}
 
-

Blog post archive

+

Blog archive

    + {% for article in dates %} {% set year = article.date.strftime('%Y') %} {% if loop.first %} diff --git a/templates/article.html b/templates/article.html index 5f0025e1..1f82af44 100644 --- a/templates/article.html +++ b/templates/article.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% block html_lang %}{{ article.lang }}{% endblock %} -{% block title %}{{ article.title|striptags }} - {{ SITENAME|striptags }}{% endblock %} +{% block title %}{{ SITENAME|striptags }} - {{ article.title|striptags }}{% endblock %} {% block head %} {{ super() }} @@ -17,11 +17,11 @@ {% endblock %} {% block content %} -
    +

    {{ article.title }} - # + #

    • @@ -29,7 +29,7 @@ -  {{ article.stats['read_mins']*1.5|round|int }} min. read ({{ article.stats['wc'] }} words) +  {{ article.stats['read_mins']*1.5|round|int }} min. read @@ -41,18 +41,16 @@
    • {% if article.modified %} @@ -109,31 +107,10 @@ Share this post on Bluesky, Mastodon, - Reddit, - Hacker News or + Reddit or Twitter.

{% endif %} -
-

- - -

-

-
{% endblock %} diff --git a/templates/authors.html b/templates/authors.html index 548421fb..9d68c972 100644 --- a/templates/authors.html +++ b/templates/authors.html @@ -1,13 +1,12 @@ {% extends "base.html" %} -{% block title %}Authors - {{ SITENAME|striptags }}{% endblock %} +{% block title %}{{ SITENAME|striptags }} - Authors{% endblock %} {% block content %} -

Authors

- It's all me, silly you. - - - - - +

Authors on {{ SITENAME }}

+
    + {% for author, articles in authors|sort %} +
  • {{ author }} ({{ articles|count }})
  • + {% endfor %} +
{% endblock %} diff --git a/templates/base.html b/templates/base.html index 6b74cddf..16016540 100644 --- a/templates/base.html +++ b/templates/base.html @@ -5,30 +5,10 @@ {% block title %}{{ SITENAME|striptags }}{% endblock title %} - + {% if SITESUBTITLE %} {% endif %} - - {% if article is defined %} - - - - - - {% elif page is defined %} - - - - - - {% else %} - - - - - - {% endif %} {% if STYLESHEET_URL %} {% endif %} @@ -56,9 +36,10 @@ {% if TAG_FEED_RSS and tag %} {% endif %} - - - + + + + {% endblock head %} @@ -97,9 +59,9 @@
-

{{ SITENAME }}

+

{{ SITENAME }}

{% if SITESUBTITLE %} -

{{ SITESUBTITLE }}

+

{{ SITESUBTITLE }}

{% endif %}
@@ -110,7 +72,7 @@ {% if DISPLAY_PAGES_ON_MENU %}
{% for p in pages %} -
  • {{ p.title }}
  • +
  • {{ p.title }}
  • {% endfor %}
    {% endif %} @@ -136,7 +98,7 @@
    -
    +
    {% block content %} {% endblock %} @@ -149,28 +111,27 @@
    -
    +