diff --git a/astro.config.mjs b/astro.config.mjs index c5707ce..dc2d202 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -26,6 +26,10 @@ export default defineConfig({ 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", diff --git a/package-lock.json b/package-lock.json index e8ac8c3..0dd61b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "badmanners.xyz", - "version": "2.1.12", + "version": "2.1.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "badmanners.xyz", - "version": "2.1.12", + "version": "2.1.13", "hasInstallScript": true, "dependencies": { "@astrojs/check": "^0.9.3", diff --git a/package.json b/package.json index 798df1c..1369b5f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "badmanners.xyz", "type": "module", - "version": "2.1.12", + "version": "2.1.13", "scripts": { "postinstall": "astro sync", "dev": "astro dev", diff --git a/src/components/icons/SVGIcon.astro b/src/components/icons/SVGIcon.astro index 2bcef24..ffa9e94 100644 --- a/src/components/icons/SVGIcon.astro +++ b/src/components/icons/SVGIcon.astro @@ -6,11 +6,20 @@ type Props = { class?: string; fill?: string; children: any; + "aria-label"?: string; }; -const { width, height, class: className, fill = "currentColor", viewBox } = Astro.props; +const { width, height, class: className, fill = "currentColor", viewBox, "aria-label": ariaLabel } = Astro.props; --- -
+
diff --git a/src/pages/about.astro b/src/pages/about.astro index 2605dc4..60fea85 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -16,10 +16,12 @@ import { ImageSamStickerJuicebox } from "@assets/images"; class="p-nickname font-semibold">Briefcase... many choices to pick from! My pronouns are he/himhe/him or they/themthey/them. The term "bad manners" comes from gaming, referencing when someone acts in a purposefully disrespectful and taunting manner towards other players – and I chose this moniker as it has plenty of personal meanings attached to it. @@ -67,11 +69,11 @@ import { ImageSamStickerJuicebox } from "@assets/images"; import tippy from "tippy.js"; import "tippy.js/dist/tippy.css"; - const initTooltips = () => { - tippy("[data-tippy-content]", { - theme: "bm", - }); - }; - - initTooltips(); + const tooltipItems = document.querySelectorAll("[title][data-tooltip]"); + tooltipItems.forEach((el) => el.setAttribute("data-tooltip", el.title)); + tippy(tooltipItems, { + content: (el) => (el as HTMLElement).dataset.tooltip!, + theme: "bm", + }); + tooltipItems.forEach((el) => el.removeAttribute("title")); diff --git a/src/pages/feed.xml.ts b/src/pages/feed.xml.ts index 61b704c..91761d4 100644 --- a/src/pages/feed.xml.ts +++ b/src/pages/feed.xml.ts @@ -4,10 +4,15 @@ import { set as dateSet, subMinutes } from "date-fns"; import { TOS_FEED } from "@data/tos"; export const GET: APIRoute = ({ site }) => { + if (!site) { + throw new Error("site is required."); + } return rss({ title: "Bad Manners", description: "Bad Manners status updates", - site: site!, + site, + xmlns: { atom: "http://www.w3.org/2005/Atom" }, + customData: ``, items: TOS_FEED.map(({ status, updatedAt }) => ({ title: { CLOSED: "Story commissions are closed.", @@ -15,7 +20,7 @@ export const GET: APIRoute = ({ site }) => { SEMI_OPEN: "Story commissions are semi-open, and I may accept them less frequently.", PRIVATE: "Story commissions are private; they are only open to select commissioners.", }[status], - link: "https://badmanners.xyz/terms_of_service", + link: new URL("terms_of_service", site).toString(), pubDate: subMinutes(dateSet(updatedAt, { hours: 12, minutes: 0, seconds: 0 }), updatedAt.getTimezoneOffset()), })), }); diff --git a/src/pages/index.astro b/src/pages/index.astro index 126d1d2..7eab12f 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -51,11 +51,11 @@ const sshKey = await readFile("./public/ssh.pub", { encoding: "utf-8" }); title="Gallery feed" /> -
+

Hi, I'm Bad Manners!

-
+
I'm a safe vore enthusiast, a furry, a programmer, and occasional writer.

-
+ + diff --git a/src/pages/work.astro b/src/pages/work.astro index 8242ee1..42ab220 100644 --- a/src/pages/work.astro +++ b/src/pages/work.astro @@ -56,7 +56,15 @@ import { SUBSCRIBESTAR_ENABLED } from "@data/subscribestar"; >, as part of Strawberry Jam 8 (a game jam hosted by eevee on Feb. 2024). It's been my biggest project so far, and I'm very proud of it! Check it out if you have an hour to spare and the subject matters interest you.

-

+ +

You can find my galleries through any of the links below. Aside from the first link, these also include some of the art that I got from others (commissions, gifts, etc.).

diff --git a/src/styles/base.css b/src/styles/base.css index 615191f..ab7eb8b 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -24,11 +24,11 @@ @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; } - .button-close { - @apply rounded-full p-[6px] text-stone-800 hover:bg-stone-300 hover:text-stone-800 focus:bg-stone-300 focus:text-stone-800 sm:p-2 dark:text-zinc-300 dark:hover:bg-zinc-500 dark:hover:text-zinc-800 dark:focus:bg-zinc-500 dark:focus:text-zinc-800; - } - .contact-icon { @apply inline transition-transform group-hover:scale-150 group-focus:scale-150 motion-reduce:transition-none motion-reduce:group-hover:scale-100 motion-reduce:group-focus:scale-100; } + + .contact-link { + @apply text-link block w-full py-2 transition-colors motion-reduce:transition-none; + } }