From 85c11bc02a0ab9446f443722ea1f5f1887eab480 Mon Sep 17 00:00:00 2001 From: Bad Manners Date: Wed, 25 Sep 2024 12:36:10 -0300 Subject: [PATCH] Migrate some scripts to Alpine --- astro.config.mjs | 351 +++++++++--------- package-lock.json | 181 +++++---- package.json | 5 +- src/components/AgeRestrictedModal.astro | 137 +++---- .../AgeRestrictedScriptInline.astro | 2 +- src/components/DarkModeScript.astro | 33 -- src/components/DarkModeScriptInline.astro | 2 +- src/layouts/BaseLayout.astro | 38 +- src/pages/index.astro | 82 ++-- src/styles/base.css | 5 + 10 files changed, 408 insertions(+), 428 deletions(-) delete mode 100644 src/components/DarkModeScript.astro diff --git a/astro.config.mjs b/astro.config.mjs index dc2d202..4618b4b 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -3,184 +3,183 @@ import tailwindIntegration from "@astrojs/tailwind"; import htaccessIntegration from "astro-htaccess"; import { AI_BOTS } from "./src/data/ai_bots"; +import alpinejs from "@astrojs/alpinejs"; + // https://astro.build/config export default defineConfig({ site: "https://badmanners.xyz", - integrations: [ - tailwindIntegration({ - applyBaseStyles: false, - }), - htaccessIntegration({ - generateHtaccessFile: import.meta.env.APACHE_CONFIG === "true", - customRules: [ - // Block AI bots - "", - " RewriteEngine on", - " RewriteBase /", - ` RewriteCond %{HTTP_USER_AGENT} ${AI_BOTS.map((bot) => `^${bot}$`).join("|")} [NC]`, - " RewriteRule ^ – [F]", - "", - ], - redirects: [ - { - match: /^\/@\/(aryion|ekas?(portal)?)\b/, - url: "https://aryion.com/g4/user/BadManners", - }, - { - match: /^\/@\/blog\b/, - url: "https://gallery.badmanners.xyz/blog", - }, - { - match: /^\/@\/(blue[_-]?sky|bsky)\b/, - url: "https://bsky.app/profile/badmanners.xyz", - }, - { - match: /^\/@\/(buymeacoffee|buy_me_a_coffee|buy-me-a-coffee|bmac)\b/, - url: "https://www.buymeacoffee.com/BadMannersXYZ", - }, - { - match: /^\/@\/carrd\b/, - url: "https://badmanners.carrd.co", - }, - { - match: /^\/@\/code[_-]?berg\b/, - url: "https://codeberg.org/BadManners", - }, - { - match: /^\/@\/discord\b/, - url: "/#discord", - }, - { - match: /^\/@\/e[_-]?mail\b/, - url: "/#e-mail", - }, - { - match: /^\/@\/(fur[_-]?affinity|fa)\b/, - url: "https://www.furaffinity.net/user/badmanners", - }, - { - match: /^\/@\/(gallery|stor(y|ies)|games?)\b/, - url: "https://gallery.badmanners.xyz", - }, - { - match: /^\/@\/(git[_-]?hub|gh)\b/, - url: "https://github.com/BadMannersXYZ", - }, - { - match: /^\/@\/git[_-]?lab\b/, - url: "https://gitlab.com/Bad_Manners", - }, - { - match: /^\/@\/(git[_-]?gud|sapp?hire)\b/, - url: "https://gitgud.io/BadMannersXYZ", - }, - { - match: /^\/@\/(google|g[_-]?mail)\b/, - url: "/#gmail", - }, - { - match: /^\/@\/(gpg|pgp)\b/, - url: "/gpg.pub", - }, - { - match: /^\/@\/gum[_-]?road\b/, - url: "https://badmanners.gumroad.com", - }, - { - match: /^\/@\/(ink[_-]?bunny|ib)\b/, - url: "https://inkbunny.net/BadManners", - }, - { - match: /^\/@\/itaku\b/, - url: "https://itaku.ee/profile/badmanners", - }, - { - match: /^\/@\/itch\b/, - url: "https://bad-manners.itch.io", - }, - { - match: /^\/@\/keybase\b/, - url: "https://keybase.io/badmanners", - }, - { - match: /^\/@\/keyoxide\b/, - url: "https://keyoxide.org/aspe:keyoxide.org:UWYBVFCBFXTVUF2U6FS6AYJHLU", - }, - { - match: /^\/@\/ko[._-]?fi\b/, - url: "https://ko-fi.com/badmanners", - }, - { - match: /^\/@\/(mastodon|meow[._-]?social|gulp[._-]?cafe)\b/, - url: "https://meow.social/@BadManners", - }, - { - match: /^\/@\/neo[_-]?cities\b/, - url: "https://badmanners.neocities.org", - }, - { - match: /^\/@\/picarto\b/, - url: "https://www.picarto.tv/BadManners", - }, - { - match: /^\/@\/pillow[_-]?fort\b/, - url: "https://www.pillowfort.social/BadManners", - }, - { - match: /^\/@\/pronouns?\b/, - url: "https://pronouns.cc/@BadManners", - }, - { - match: /^\/@\/redd\.?it\b/, - url: "https://www.reddit.com/user/BadManners_", - }, - { - match: /^\/@\/resetera\b/, - url: "https://www.resetera.com/members/bad-manners.181209/", - }, - { - match: /^\/@\/signal\b/, - url: "https://signal.me/#eu/ytt_rk0fFmAB2JAW-x2PbUiJyc_H3kYmfL_Pq4QNh5QIDsiFtjdFHaqFRs1D36tB", - }, - { - match: /^\/@\/(so[_-]?furry|sf)\b/, - url: "https://bad-manners.sofurry.com", - }, - { - match: /^\/@\/ssh\b/, - url: "/ssh.pub", - }, - { - match: /^\/@\/steam(community|powered)?\b/, - url: "https://steamcommunity.com/id/badmanners_", - }, - { - match: /^\/@\/subscribe[_-]?star\b/, - url: "https://subscribestar.adult/bad-manners", - }, - { - match: /^\/@\/(telegram|t\.me)\b/, - url: "https://t.me/bad_manners", - }, - { - match: /^\/@\/tumblr\b/, - url: "https://www.tumblr.com/badmannersxyz", - }, - { - match: /^\/@\/twitch\b/, - url: "https://www.twitch.tv/bad__manners", - }, - { - match: /^\/@\/weasyl\b/, - url: "https://www.weasyl.com/~badmanners", - }, - { - match: /^\/@\/(you[_-]?tube|youtu\.be|yt)\b/, - url: "https://www.youtube.com/@BadMannersXYZ", - }, - ], - }), - ], + integrations: [tailwindIntegration({ + applyBaseStyles: false, + }), htaccessIntegration({ + generateHtaccessFile: import.meta.env.APACHE_CONFIG === "true", + customRules: [ + // Block AI bots + "", + " RewriteEngine on", + " RewriteBase /", + ` RewriteCond %{HTTP_USER_AGENT} ${AI_BOTS.map((bot) => `^${bot}$`).join("|")} [NC]`, + " RewriteRule ^ – [F]", + "", + ], + redirects: [ + { + match: /^\/@\/(aryion|ekas?(portal)?)\b/, + url: "https://aryion.com/g4/user/BadManners", + }, + { + match: /^\/@\/blog\b/, + url: "https://gallery.badmanners.xyz/blog", + }, + { + match: /^\/@\/(blue[_-]?sky|bsky)\b/, + url: "https://bsky.app/profile/badmanners.xyz", + }, + { + match: /^\/@\/(buymeacoffee|buy_me_a_coffee|buy-me-a-coffee|bmac)\b/, + url: "https://www.buymeacoffee.com/BadMannersXYZ", + }, + { + match: /^\/@\/carrd\b/, + url: "https://badmanners.carrd.co", + }, + { + match: /^\/@\/code[_-]?berg\b/, + url: "https://codeberg.org/BadManners", + }, + { + match: /^\/@\/discord\b/, + url: "/#discord", + }, + { + match: /^\/@\/e[_-]?mail\b/, + url: "/#e-mail", + }, + { + match: /^\/@\/(fur[_-]?affinity|fa)\b/, + url: "https://www.furaffinity.net/user/badmanners", + }, + { + match: /^\/@\/(gallery|stor(y|ies)|games?)\b/, + url: "https://gallery.badmanners.xyz", + }, + { + match: /^\/@\/(git[_-]?hub|gh)\b/, + url: "https://github.com/BadMannersXYZ", + }, + { + match: /^\/@\/git[_-]?lab\b/, + url: "https://gitlab.com/Bad_Manners", + }, + { + match: /^\/@\/(git[_-]?gud|sapp?hire)\b/, + url: "https://gitgud.io/BadMannersXYZ", + }, + { + match: /^\/@\/(google|g[_-]?mail)\b/, + url: "/#gmail", + }, + { + match: /^\/@\/(gpg|pgp)\b/, + url: "/gpg.pub", + }, + { + match: /^\/@\/gum[_-]?road\b/, + url: "https://badmanners.gumroad.com", + }, + { + match: /^\/@\/(ink[_-]?bunny|ib)\b/, + url: "https://inkbunny.net/BadManners", + }, + { + match: /^\/@\/itaku\b/, + url: "https://itaku.ee/profile/badmanners", + }, + { + match: /^\/@\/itch\b/, + url: "https://bad-manners.itch.io", + }, + { + match: /^\/@\/keybase\b/, + url: "https://keybase.io/badmanners", + }, + { + match: /^\/@\/keyoxide\b/, + url: "https://keyoxide.org/aspe:keyoxide.org:UWYBVFCBFXTVUF2U6FS6AYJHLU", + }, + { + match: /^\/@\/ko[._-]?fi\b/, + url: "https://ko-fi.com/badmanners", + }, + { + match: /^\/@\/(mastodon|meow[._-]?social|gulp[._-]?cafe)\b/, + url: "https://meow.social/@BadManners", + }, + { + match: /^\/@\/neo[_-]?cities\b/, + url: "https://badmanners.neocities.org", + }, + { + match: /^\/@\/picarto\b/, + url: "https://www.picarto.tv/BadManners", + }, + { + match: /^\/@\/pillow[_-]?fort\b/, + url: "https://www.pillowfort.social/BadManners", + }, + { + match: /^\/@\/pronouns?\b/, + url: "https://pronouns.cc/@BadManners", + }, + { + match: /^\/@\/redd\.?it\b/, + url: "https://www.reddit.com/user/BadManners_", + }, + { + match: /^\/@\/resetera\b/, + url: "https://www.resetera.com/members/bad-manners.181209/", + }, + { + match: /^\/@\/signal\b/, + url: "https://signal.me/#eu/ytt_rk0fFmAB2JAW-x2PbUiJyc_H3kYmfL_Pq4QNh5QIDsiFtjdFHaqFRs1D36tB", + }, + { + match: /^\/@\/(so[_-]?furry|sf)\b/, + url: "https://bad-manners.sofurry.com", + }, + { + match: /^\/@\/ssh\b/, + url: "/ssh.pub", + }, + { + match: /^\/@\/steam(community|powered)?\b/, + url: "https://steamcommunity.com/id/badmanners_", + }, + { + match: /^\/@\/subscribe[_-]?star\b/, + url: "https://subscribestar.adult/bad-manners", + }, + { + match: /^\/@\/(telegram|t\.me)\b/, + url: "https://t.me/bad_manners", + }, + { + match: /^\/@\/tumblr\b/, + url: "https://www.tumblr.com/badmannersxyz", + }, + { + match: /^\/@\/twitch\b/, + url: "https://www.twitch.tv/bad__manners", + }, + { + match: /^\/@\/weasyl\b/, + url: "https://www.weasyl.com/~badmanners", + }, + { + match: /^\/@\/(you[_-]?tube|youtu\.be|yt)\b/, + url: "https://www.youtube.com/@BadMannersXYZ", + }, + ], + }), alpinejs()], build: { assets: "assets", }, @@ -196,4 +195,4 @@ export default defineConfig({ }, }, }, -}); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 357b8c0..6ff068c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,20 @@ { "name": "badmanners.xyz", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "badmanners.xyz", - "version": "2.1.15", + "version": "2.1.16", "hasInstallScript": true, "dependencies": { + "@astrojs/alpinejs": "^0.4.0", "@astrojs/check": "^0.9.3", "@astrojs/rss": "^4.0.7", "@astrojs/tailwind": "^5.1.0", + "@types/alpinejs": "^3.13.10", + "alpinejs": "^3.14.1", "astro": "^4.15.5", "astro-htaccess": "^0.2.0", "astro-loading-indicator": "^0.6.0", @@ -78,6 +81,16 @@ "node": ">=6.0.0" } }, + "node_modules/@astrojs/alpinejs": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/alpinejs/-/alpinejs-0.4.0.tgz", + "integrity": "sha512-68BY1CA0XuielLW3WdX2sfh9F4sSTnFqQ//IE9AditbiYJ77HJDb4uZx07pTFDtr1jOMU7lCvH+iS9gmNafM1g==", + "license": "MIT", + "peerDependencies": { + "@types/alpinejs": "^3.0.0", + "alpinejs": "^3.0.0" + } + }, "node_modules/@astrojs/check": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.3.tgz", @@ -1647,9 +1660,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", - "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -1660,9 +1673,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", - "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -1673,9 +1686,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", - "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -1686,9 +1699,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", - "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -1699,9 +1712,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", - "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -1712,9 +1725,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", - "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -1725,9 +1738,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", - "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -1738,9 +1751,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", - "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -1751,9 +1764,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", - "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -1764,9 +1777,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", - "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -1777,9 +1790,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", - "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -1790,9 +1803,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", - "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -1803,9 +1816,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", - "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -1816,9 +1829,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", - "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -1829,9 +1842,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", - "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -1842,9 +1855,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", - "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -1949,6 +1962,12 @@ "optional": true, "peer": true }, + "node_modules/@types/alpinejs": { + "version": "3.13.10", + "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.10.tgz", + "integrity": "sha512-ah53tF6mWuuwerpDE7EHwbZErNDJQlsLISPqJhYj2RZ9nuTYbRknSkqebUd3igkhLIZKkPa7IiXjSn9qsU9O2w==", + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2151,6 +2170,21 @@ "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", "license": "MIT" }, + "node_modules/@vue/reactivity": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz", + "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.1.5" + } + }, + "node_modules/@vue/shared": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", + "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", + "license": "MIT" + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -2189,6 +2223,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/alpinejs": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.1.tgz", + "integrity": "sha512-ICar8UsnRZAYvv/fCNfNeKMXNoXGUfwHrjx7LqXd08zIP95G2d9bAOuaL97re+1mgt/HojqHsfdOLo/A5LuWgQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "~3.1.1" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -6032,9 +6075,9 @@ } }, "node_modules/rollup": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", - "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "license": "MIT", "dependencies": { "@types/estree": "1.0.5" @@ -6047,22 +6090,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.3", - "@rollup/rollup-android-arm64": "4.21.3", - "@rollup/rollup-darwin-arm64": "4.21.3", - "@rollup/rollup-darwin-x64": "4.21.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", - "@rollup/rollup-linux-arm-musleabihf": "4.21.3", - "@rollup/rollup-linux-arm64-gnu": "4.21.3", - "@rollup/rollup-linux-arm64-musl": "4.21.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", - "@rollup/rollup-linux-riscv64-gnu": "4.21.3", - "@rollup/rollup-linux-s390x-gnu": "4.21.3", - "@rollup/rollup-linux-x64-gnu": "4.21.3", - "@rollup/rollup-linux-x64-musl": "4.21.3", - "@rollup/rollup-win32-arm64-msvc": "4.21.3", - "@rollup/rollup-win32-ia32-msvc": "4.21.3", - "@rollup/rollup-win32-x64-msvc": "4.21.3", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index 9dd75f0..505e89c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "badmanners.xyz", "type": "module", - "version": "2.1.15", + "version": "2.1.16", "scripts": { "postinstall": "astro sync", "dev": "astro dev", @@ -15,9 +15,12 @@ "deploy-lftp": "dotenv tsx scripts/deploy-lftp.ts --" }, "dependencies": { + "@astrojs/alpinejs": "^0.4.0", "@astrojs/check": "^0.9.3", "@astrojs/rss": "^4.0.7", "@astrojs/tailwind": "^5.1.0", + "@types/alpinejs": "^3.13.10", + "alpinejs": "^3.14.1", "astro": "^4.15.5", "astro-htaccess": "^0.2.0", "astro-loading-indicator": "^0.6.0", diff --git a/src/components/AgeRestrictedModal.astro b/src/components/AgeRestrictedModal.astro index 5b3fd81..09ce1ff 100644 --- a/src/components/AgeRestrictedModal.astro +++ b/src/components/AgeRestrictedModal.astro @@ -3,99 +3,56 @@ import AgeRestrictedScriptInline from "./AgeRestrictedScriptInline.astro"; import { IconTriangleExclamation } from "./icons"; --- - - + - - diff --git a/src/components/AgeRestrictedScriptInline.astro b/src/components/AgeRestrictedScriptInline.astro index 8a6164a..87c3d3f 100644 --- a/src/components/AgeRestrictedScriptInline.astro +++ b/src/components/AgeRestrictedScriptInline.astro @@ -1,4 +1,4 @@ --- --- - + diff --git a/src/components/DarkModeScript.astro b/src/components/DarkModeScript.astro deleted file mode 100644 index 89d1820..0000000 --- a/src/components/DarkModeScript.astro +++ /dev/null @@ -1,33 +0,0 @@ ---- -import DarkModeScriptInline from "./DarkModeScriptInline.astro"; ---- - - - - diff --git a/src/components/DarkModeScriptInline.astro b/src/components/DarkModeScriptInline.astro index a53cf7b..7a8db30 100644 --- a/src/components/DarkModeScriptInline.astro +++ b/src/components/DarkModeScriptInline.astro @@ -1,4 +1,4 @@ --- --- - + diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 9f59cd8..c64bead 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -1,7 +1,7 @@ --- import { ViewTransitions } from "astro:transitions"; import LoadingIndicator from "astro-loading-indicator/component"; -import DarkModeScript from "@components/DarkModeScript.astro"; +import DarkModeScriptInline from "@components/DarkModeScriptInline.astro"; import NavHeader from "@components/NavHeader.astro"; import { IconSun, IconMoon } from "@components/icons"; import AgeRestrictedModal from "@components/AgeRestrictedModal.astro"; @@ -36,9 +36,24 @@ const title = pageTitle ? `${pageTitle} | Bad Manners` : "Bad Manners"; + - -
+ +
- © © Bad Manners - Licenses
- + diff --git a/src/pages/index.astro b/src/pages/index.astro index bc5f6d9..b1cec5b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -80,7 +80,7 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" }); > { Astro.site ? ( -
  • +
  • Gallery on https://gallery.badmanners.xyz

  • -
  • +
  • Gallery feed

  • -
  • +
  • they/them/their/theirs/themself

  • -
  • +
  • me@badmanners.xyz

  • -
  • +
  • @badmanners.xyz on Bluesky

  • -
  • +
  • BadManners on Codeberg

  • -
  • +
  • -
  • +
  • BadManners on Eka's Portal

  • -
  • +
  • BadManners on Fur Affinity

  • -
  • +
  • BadMannersXYZ on GitGud

  • -
  • +
  • BadMannersXYZ on GitHub

  • -
  • +
  • Bad_Manners on GitLab

  • -
  • +
  • google@badmanners.xyz

  • -
  • +
  • GPG public key

  • -
  • +
  • BadManners on Inkbunny

  • -
  • +
  • badmanners on Itaku

  • -
  • +
  • Bad Manners on Itch.io

  • -
  • +
  • badmanners on Keybase

  • -
  • +
  • aspe:keyoxide.org:UWYBVFCBFXTVUF2U6FS6AYJHLU

  • -
  • +
  • badmanners on Ko-fi

  • -
  • +
  • @BadManners@meow.social on Mastodon

  • -
  • +
  • badmanners.neocities.org on Neocities

  • -
  • +
  • BadManners on Picarto

  • -
  • +
  • badmanners.10 on Signal

  • -
  • +
  • Bad Manners on SoFurry

  • -
  • +
  • SSH public key

  • -
  • +
  • badmanners_ on Steam

  • -
  • +
  • Bad Manners on SubscribeStar

  • -
  • +
  • @bad_manners on Telegram

  • -
  • +
  • bad__manners on Twitch

  • -
  • +
  • BadManners on Weasyl

  • -
  • +
  • :not(a, button)").forEach((el) => { - console.warn("Element with unknown type found in #links list:", el); - }); - indexLinks.querySelectorAll("li > :is(a, button):not([aria-label])").forEach((el) => { - console.warn("Element with missing aria-label found in #links list:", el); - }); - // Instantiate hover tooltips const tooltipItems = document.querySelectorAll("[title][data-tooltip]"); tooltipItems.forEach((el) => el.setAttribute("data-tooltip", el.title)); @@ -599,9 +591,7 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" }); // Add functionality to custom clipboard items if ("clipboard" in navigator) { - const customClipboardItems = indexLinks.querySelectorAll( - "li > :is(a, button)[data-clipboard]", - ); + const customClipboardItems = document.querySelectorAll("ul#links li[data-link] [data-clipboard]"); if (!customClipboardItems.length) { console.warn("Missing custom clipboard elements in #links list."); } @@ -633,8 +623,8 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" }); element.addEventListener("click", onClickElement); }); } else { - const customClipboardButtons = indexLinks.querySelectorAll( - "li > button[data-clipboard][disabled]", + const customClipboardButtons = document.querySelectorAll( + "ul#links li[data-link] button[data-clipboard]", ); customClipboardButtons.forEach((element) => { element.removeAttribute("disabled"); diff --git a/src/styles/base.css b/src/styles/base.css index ab7eb8b..123e398 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -19,6 +19,11 @@ @apply border-r-stone-800 dark:border-r-zinc-900; } +/* Alpine.js */ +[x-cloak] { + display: none !important; +} + @layer components { .text-link { @apply text-stone-800 hover:text-bm-500 focus:text-bm-500 dark:text-zinc-300 dark:hover:text-bm-400 dark:focus:text-bm-400;