Complete theme change, major additions and updates to info. Preparing for refactor and additional big changes later.

This commit is contained in:
Alexis Werefox 2022-01-20 03:56:01 +00:00
parent 3562b47453
commit 2065ec34b1
61 changed files with 395 additions and 212 deletions

View File

@ -10,8 +10,8 @@ export function renderBackButton(page_button_title, url) {
<PButton
title={page_button_title}
images={[
{ src: "/emoji/pixel_alexis.png", alt: "Pixel Alexis!" },
{ src: "/emoji/blue_heart.svg", alt: "Blue heart" },
{ src: "/emoji/western_dragon.svg", alt: "Western dragon emoji until I get an emoji" },
{ src: "/emoji/:black_heart:.svg", alt: "Black heart" },
]}
url={url}
/>
@ -32,7 +32,7 @@ export default function BasicPage({
const url = Boolean(back_url) ? back_url : "/";
return (
<div className="min-h-screen bg-skye-werefox-grey-light dark:bg-skye-werefox-grey font-nerd">
<div className="min-h-screen bg-alice-werefox-grey-light dark:bg-alice-werefox-grey font-nerd">
<Head>
<title>{page_title}</title>
<link rel="icon" href="/favicon.ico" />

View File

@ -6,7 +6,7 @@ export default function ContactsLink({ src, alt, url, description, url_text }) {
<div>
<Link href={url}>
<a target="_blank">
<div className="p-2 md:text-lg sm:text-md text-xs text-center rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink hover:animate-yip transition">
<div className="p-2 md:text-lg sm:text-md text-xs text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
<span className="animate-bounce relative inline-block w-6 h-6 align-middle">
<Image src={src} layout="fill" objectFit="contain" alt={alt} />
</span>{" "}

View File

@ -2,7 +2,7 @@ import FCard from "./faq-card";
export default function FAQBlock({ faqs }) {
return (
<div className="p-4 space-y-4 rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark">
<div className="p-4 space-y-4 rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark">
{Object.keys(faqs).map((faq) => (
<FCard
key={faq}

View File

@ -6,13 +6,13 @@ export default function TestimonialCard({ question, answer, src, alt }) {
return (
<div className="space-y-2">
<div className="ring-2 ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink">
<p className="p-8 text-center text-lg sm:text-xl text-skye-werefox-pink-dark dark:text-skye-werefox-pink">
<div className="ring-2 ring-alice-werefox-blue-dark dark:ring-alice-werefox-blue">
<p className="p-8 text-center text-lg sm:text-xl text-alice-werefox-blue-dark dark:text-alice-werefox-blue-light">
{question}
</p>
</div>
<div className=" ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink hover:animate-yip transition">
<Link href="https://vulpine.club/@shadow8t4">
<div className=" ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
<Link href="https://masto.werefox.dev/@skye">
<a target="_blank">
<div className="p-2 flex">
<div className="order-1 flex-shrink-0 relative inline sm:w-32 w-16 min-h-full items-center justify-center align-middle pt-4 pb-4 pl-4">
@ -26,7 +26,7 @@ export default function TestimonialCard({ question, answer, src, alt }) {
<div className="order-2 flex overflow-auto items-center justify-center animate-wiggle p-4 sm:text-lg text-xs text-center sm:min-h-full h-full">
{answer}
<br />
{"- @shadow8t4"}
{"- @skye"}
</div>
</div>
</a>

View File

@ -7,7 +7,7 @@ export default function footerButton({ url, inner_text, is_external }) {
<div className="flex-1 overflow-visible">
<Link href={url}>
<a target={target}>
<div className="ml-1 mr-1 rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-darker dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink transition">
<div className="ml-1 mr-1 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-darker dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light transition">
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
{inner_text}
</p>

View File

@ -1,8 +1,8 @@
import FButton from "./footer-button";
export default function FooterCard() {
return (
<footer className="p-4 space-y-2 rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark">
<div className="flex text-skye-werefox-blue-darker dark:text-skye-werefox-blue">
<footer className="p-4 space-y-2 rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark">
<div className="flex text-alice-werefox-red-darker dark:text-alice-werefox-red-light">
<div className="flex-1"></div>
<FButton
url="https://info.werefox.dev/contacts"
@ -16,7 +16,7 @@ export default function FooterCard() {
/>
<div className="flex-1"></div>
</div>
<div className="text-center text-xs text-skye-werefox-grey-darkest dark:text-skye-werefox-grey-lightest">
<div className="text-center text-xs text-alice-werefox-grey-darkest dark:text-alice-werefox-grey-lightest">
This site uses{" "}
<div className="inline-block pt-1 pb-1">
<FButton

View File

@ -4,7 +4,7 @@ import FCard from "../components/footer-card";
export default function HomePage({ page_title, card_title, children }) {
return (
<div className="min-h-screen bg-skye-werefox-grey-light dark:bg-skye-werefox-grey font-nerd">
<div className="min-h-screen bg-alice-werefox-grey-light dark:bg-alice-werefox-grey font-nerd">
<Head>
<title>{page_title}</title>
<link rel="icon" href="/favicon.ico" />

View File

@ -16,7 +16,7 @@ export default function IdentityButton({
<div className="animate-wiggle container max-w-sm mx-auto md:px-2 p-2">
<Link href={`${url}${maybeLocator}`}>
<a
className={`${extraClasses} block text-lg text-center rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink hover:animate-yip transition`}
className={`${extraClasses} block text-lg text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition`}
>
{images.map((source) => (
<span

View File

@ -5,7 +5,7 @@ export default function IdentityCardButton({ url, button_text }) {
<div>
<Link href={url}>
<a target="_blank">
<div className="p-4 hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink hover:animate-yip transition">
<div className="p-4 hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
{button_text}
</div>
</a>

View File

@ -1,3 +1,54 @@
import Image from "next/image";
export function replaceWithImageTags(index, str, emoji_path) {
if (index % 2 === 0) {
return <p className="inline">{`${str}`}</p>;
} else {
return (
<>
<span className="object-contain relative inline-block w-8 h-8 mb-1 align-middle">
<Image src={emoji_path} layout="fill" objectFit="contain" alt={str} />
</span>
</>
);
}
}
export function formatCustomEmoji(str, emoji_paths) {
const emoji_pattern = new RegExp(/(:[A-Za-z_-]+:)/, "g");
const values = emoji_pattern[Symbol.split](str);
if (Boolean(emoji_paths)) {
return (
<>
{Object.keys(values).map((v) =>
replaceWithImageTags(v, values[v], emoji_paths[values[v]])
)}
</>
);
} else {
return <></>;
}
}
export function renderPossibleInfo(info, emoji_paths) {
if (Boolean(info)) {
let infoarray = info.split("\n");
infoarray = infoarray.slice(0, infoarray.length - 1);
const infodict = Object.assign({}, infoarray);
return Object.keys(infodict).map((info) => (
<div key={info}>
{infodict[info] == "" ? (
<br />
) : (
formatCustomEmoji(infodict[info], emoji_paths)
)}
</div>
));
} else {
return <></>;
}
}
export default function IdentityCardTextBox({ info }) {
let infoarray = [];
let infodict = {};
@ -7,12 +58,8 @@ export default function IdentityCardTextBox({ info }) {
infodict = Object.assign({}, infoarray);
}
return (
<div className="p-4 text-center text-md sm:text-lg ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue">
{Object.keys(infodict).map((i) => (
<p className="overflow-auto" key={i}>
{infodict[i] == "" ? <br /> : infodict[i]}
</p>
))}
<div className="p-4 text-center text-md sm:text-lg ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
{renderPossibleInfo(info, {})}
</div>
);
}

View File

@ -2,7 +2,7 @@ import WCard from "./werefox-card";
export default function IdentityCard({ title, src, alt, children }) {
return (
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<WCard title={title} title_emoji={{ src: `${src}`, alt: `${alt}` }}>
{children}
</WCard>

View File

@ -1,14 +1,57 @@
export default function introductionCard({ introduction }) {
import Image from "next/image";
export function replaceWithImageTags(index, str, emoji_path) {
if (index % 2 === 0) {
return <p className="inline">{`${str}`}</p>;
} else {
return (
<>
<span className="object-contain relative inline-block w-8 h-8 mb-1 align-middle">
<Image src={emoji_path} layout="fill" objectFit="contain" alt={str} />
</span>
</>
);
}
}
export function formatCustomEmoji(str, emoji_paths) {
const emoji_pattern = new RegExp(/(:[A-Za-z_-]+:)/, "g");
const values = emoji_pattern[Symbol.split](str);
if (Boolean(emoji_paths)) {
return (
<>
{values.map((v, i) =>
replaceWithImageTags(i, v, emoji_paths[v])
)}
</>
);
} else {
return <></>;
}
}
export function renderPossibleInfo(info, emoji_paths) {
if (Boolean(info)) {
let infoarray = info.split("\n");
infoarray = infoarray.slice(0, infoarray.length - 1);
return infoarray.map((line) => (
<div key={line}>
{line == "" ? (
<br />
) : (
formatCustomEmoji(line, emoji_paths)
)}
</div>
));
} else {
return <></>;
}
}
export default function introductionCard({ introduction, emoji_paths }) {
return (
<div className="items-center justify-center space-y-4 p-8">
{Object.keys(introduction).map((info) => (
<p
key={info}
className="overflow-wrap w-full text-lg text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue"
>
{introduction[info]}
</p>
))}
<div className="items-center justify-center space-y-4 p-8 overflow-wrap w-full text-lg text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
{renderPossibleInfo(introduction, emoji_paths)}
</div>
);
}

View File

@ -4,11 +4,11 @@ export default function KofiDonationWidget({ title, url }) {
return (
<div className="pb-6 flex justify-center">
<details className="rounded-lg p-1 overflow-auto">
<summary className="p-2 pl-4 pr-4 rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker text-md text-center text-skye-werefox-grey-darker dark:text-skye-werefox-grey-lighter bg-skye-werefox-blue dark:bg-skye-werefox-blue-dark transition hover:bg-skye-werefox-blue-light dark:hover:bg-skye-werefox-blue-darker">
<summary className="p-2 pl-4 pr-4 rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker text-md text-center text-alice-werefox-grey-darker dark:text-alice-werefox-grey-lighter bg-alice-werefox-red dark:bg-alice-werefox-red-dark transition hover:bg-alice-werefox-red-light dark:hover:bg-alice-werefox-red-darker">
<strong>{title}</strong>
</summary>
<div className="pt-2">
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker overflow-auto">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker overflow-auto">
<Iframe
className="rounded-lg w-96 min-w-96"
url={url}

View File

@ -13,7 +13,7 @@ export default function PageButton({
<div>
<Link href={url}>
<a
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink focus:text-skye-werefox-pink-dark dark:focus:text-skye-werefox-pink hover:animate-yip transition`}
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light focus:text-alice-werefox-blue-dark dark:focus:text-alice-werefox-blue-light hover:animate-yip transition`}
target="_blank"
>
{images.map((source) => (
@ -39,7 +39,7 @@ export default function PageButton({
<div>
<Link href={url}>
<a
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink focus:text-skye-werefox-pink-dark dark:focus:text-skye-werefox-pink hover:animate-yip transition`}
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light focus:text-alice-werefox-blue-dark dark:focus:text-alice-werefox-blue-light hover:animate-yip transition`}
>
{images.map((source) => (
<span

View File

@ -49,7 +49,7 @@ export function renderPossibleURLField(field, emoji_paths) {
return (
<Link href={field}>
<a target="_blank">
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-werefox-pink-dark dark:ring-werefox-pink hover:ring-werefox-blue-dark dark:hover:ring-werefox-blue text-werefox-pink-dark dark:text-werefox-pink hover:text-werefox-blue-dark dark:hover:text-werefox-blue hover:animate-yip transition">
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
{field}
</div>
</a>
@ -57,7 +57,7 @@ export function renderPossibleURLField(field, emoji_paths) {
);
} else {
return (
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-werefox-pink-dark dark:ring-werefox-pink group-hover:ring-werefox-blue-dark dark:group-hover:ring-werefox-blue">
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-alice-werefox-red-dark dark:ring-alice-werefox-red group-hover:ring-alice-werefox-blue-dark dark:group-hover:ring-alice-werefox-blue">
{formatCustomEmoji(field, emoji_paths)}
</div>
);
@ -112,10 +112,10 @@ export default function PartnerCard({
const finalsrc = Boolean(src) ? src : "/images/logo.png";
return (
<div className="p-4 flex-column space-y-4 sm:break-normal break-all sm:text-sm text-xs text-center rounded-sm ring-2 ring-werefox-pink-dark dark:ring-werefox-pink">
<div className="p-4 flex-column space-y-4 sm:break-normal break-all sm:text-sm text-xs text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
<Link href={url}>
<a target="_blank">
<div className="p-4 flex group rounded-sm ring-2 ring-werefox-pink-dark dark:ring-werefox-pink hover:ring-werefox-blue-dark dark:hover:ring-werefox-blue text-werefox-pink-dark dark:text-werefox-pink hover:text-werefox-blue-dark dark:hover:text-werefox-blue hover:animate-yip transition">
<div className="p-4 flex group rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
<div className="order-1 flex-1 flex-shrink-0 relative items-center justify-center align-middle sm:w-32 w-16 min-h-full mr-4">
<Image
src={finalsrc}
@ -125,7 +125,7 @@ export default function PartnerCard({
/>
</div>
<div className="order-2 flex-5 space-y-4">
<div className="p-2 rounded-sm ring-2 ring-werefox-pink-dark dark:ring-werefox-pink group-hover:ring-werefox-blue-dark dark:group-hover:ring-werefox-blue">
<div className="p-2 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red group-hover:ring-alice-werefox-blue-dark dark:group-hover:ring-alice-werefox-blue">
{renderPossibleBio(bio, emoji_paths)}
{`- @${user}`}
</div>
@ -133,7 +133,7 @@ export default function PartnerCard({
</div>
</a>
</Link>
<div className="flex-column space-y-4 break-all text-werefox-pink-dark dark:text-werefox-pink">
<div className="flex-column space-y-4 break-all text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
{renderPossibleFields(fields, emoji_paths)}
</div>
</div>

View File

@ -14,7 +14,7 @@ export default function projectCard({
<div>
<Link href={url}>
<a target="_blank">
<li className="p-4 space-y-2 rounded-sm ring-2 text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink hover:animate-yip transition">
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
<div className="text-lg text-center">
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
<Image
@ -37,7 +37,7 @@ export default function projectCard({
<div>
<Link href={url}>
<a>
<li className="p-4 space-y-2 rounded-sm ring-2 text-skye-werefox-blue-dark dark:text-skye-werefox-blue hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue hover:ring-skye-werefox-pink-dark dark:hover:ring-skye-werefox-pink hover:animate-yip transition">
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
<div className="text-lg text-center">
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
<Image

View File

@ -4,21 +4,6 @@ import Link from "next/link";
export default function ServerBlock({ servers }) {
return (
<div className="p-4 w-full inline-flow align-middle justify-center space-y-8">
<div className="p-4 ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue">
<p>
All the stuff I run uses the following server machines with reverse
SSH connections to a{" "}
<Link href="https://www.linode.com/?r=61251dc51397edcfacadd7f3744b258b63ad4248">
<a
target="_blank"
className="transition hover:text-skye-werefox-pink-dark dark:hover:text-skye-werefox-pink"
>
Linode VPS
</a>
</Link>
{"."}
</p>
</div>
{Object.keys(servers).map((server) => (
<SCard
server={server}

View File

@ -1,6 +1,6 @@
export default function ServerCard({ server, model, cpu, gpu, ram, os }) {
return (
<div className="p-2 space-y-1 w-full inline-flow text-left ring-4 ring-skye-werefox-blue-darkest dark:ring-skye-werefox-blue bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-darker text-lg text-ada-werefox-cyan-dark dark:text-ada-werefox-cyan-light">
<div className="p-2 space-y-1 w-full inline-flow text-left ring-4 ring-ada-werefox-cyan-darkest dark:ring-ada-werefox-cyan bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-darker text-lg text-ada-werefox-cyan-dark dark:text-ada-werefox-cyan-light">
<p>
<code>{`System: ${server}`}</code>
</p>

View File

@ -9,7 +9,7 @@ export default function SupportBlock({ support }) {
support my way!! 💙"
>
<div className="p-4 space-y-4">
<p className="text-lg md:text-2xl text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue">
<p className="text-lg md:text-2xl text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
You could support me through Patreon, Ko-fi, or Liberapay
</p>
{Object.keys(support).map((sup) => (

View File

@ -8,7 +8,7 @@ export default function SupportButton({ title, alt, src, url }) {
<div className="w-full justify-center flex">
<Link href={url}>
<a target="_blank">
<p className="rounded-lg pt-2 pb-2 pl-4 pr-4 w-full w-max-60 ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker text-lg text-center text-skye-werefox-grey-darker dark:text-skye-werefox-grey-lightest bg-skye-werefox-blue dark:bg-skye-werefox-blue-dark transition hover:bg-skye-werefox-blue-light dark:hover:bg-skye-werefox-blue-darker">
<p className="rounded-lg pt-2 pb-2 pl-4 pr-4 w-full w-max-60 ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker text-lg text-center text-alice-werefox-grey-darker dark:text-alice-werefox-grey-lightest bg-alice-werefox-red dark:bg-alice-werefox-red-dark transition hover:bg-alice-werefox-red-light dark:hover:bg-alice-werefox-red-darker">
<span className="inline-block h-6">
<img alt={alt} src={src} className="inline-block h-6"></img>
</span>{" "}
@ -24,7 +24,7 @@ export default function SupportButton({ title, alt, src, url }) {
<Link href={url}>
<a
target="_blank"
className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker"
className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker"
>
<img
alt={alt}

View File

@ -8,7 +8,7 @@ export default function TestimonialCard({ src, alt, url, innerText, user }) {
const testimonialdict = Object.assign({}, testimonialarray);
return (
<div className="rounded-sm ring-2 ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-skye-werefox-pink-dark dark:text-skye-werefox-pink hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue hover:animate-yip transition">
<div className="rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
<Link href={url}>
<a target="_blank">
<div className="min-w-full flex overflow-hidden">

View File

@ -3,13 +3,13 @@ import Image from "next/image";
export default function TitleCard({ card_title }) {
return (
<div className="p-4 w-full rounded-sm ring-4 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark text-xl text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue">
<div className="p-4 w-full rounded-sm ring-4 ring-alice-werefox-red-dark dark:ring-alice-werefox-red bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark text-xl text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
<span className="animate-bounce align-middle inline-block w-6 h-6">
<Image
src="/emoji/pixel_alexis.png"
src="/emoji/western_dragon.svg"
layout="fill"
objectFit="contain"
alt="Pixel Alexis!"
alt="Mutant Standard western dragon emoji"
/>
</span>
{"- "}

View File

@ -3,7 +3,7 @@ import Image from "next/image";
export default function WerefoxCardTitle({ title, title_emoji }) {
if (Boolean(title_emoji)) {
return (
<div className="p-4 w-full items-center justify-center align-middle rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue ">
<div className="p-4 w-full items-center justify-center align-middle rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red ">
<span className="object-contain relative inline-block w-8 h-8 mb-1 align-middle">
<Image
src={title_emoji["src"]}
@ -12,15 +12,15 @@ export default function WerefoxCardTitle({ title, title_emoji }) {
alt={title_emoji["alt"]}
/>
</span>
<p className="inline text-md sm:text-lg text-skye-werefox-blue-dark dark:text-skye-werefox-blue">
<p className="inline text-md sm:text-lg text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
{` ${title}`}
</p>
</div>
);
} else {
return (
<div className="rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue">
<p className="p-4 text-center text-md sm:text-lg text-skye-werefox-blue-dark dark:text-skye-werefox-blue">
<div className="rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
<p className="p-4 text-center text-md sm:text-lg text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
{title}
</p>
</div>

View File

@ -3,18 +3,18 @@ import WCT from "./werefox-card-title";
export default function WerefoxCard({ title_emoji, title, children }) {
if (Boolean(title_emoji)) {
return (
<div className="p-4 space-y-4 text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark">
<div className="p-4 space-y-4 text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light rounded-lg ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark">
<WCT title={title} title_emoji={title_emoji} />
<div className="p-4 space-y-4 rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue">
<div className="p-4 space-y-4 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
{children}
</div>
</div>
);
} else {
return (
<div className="p-4 space-y-4 text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark">
<div className="p-4 space-y-4 text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light rounded-lg ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark">
<WCT title={title} />
<div className="p-4 space-y-4 rounded-sm ring-2 ring-skye-werefox-blue-dark dark:ring-skye-werefox-blue">
<div className="p-4 space-y-4 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
{children}
</div>
</div>

View File

@ -1,11 +1,23 @@
--- # Contacts YAML
"My public Mastodon":
"Our public Mastodon":
url: "https://vulpine.club/@shadow8t4"
src: "/emoji/mastodon-logo.png"
alt: "The Mastodon logo"
url_text: "@shadow8t4@vulpine.club"
"Alice's Mastodon":
url: "https://masto.werefox.dev/@alice"
src: "/emoji/mastodon-logo.png"
alt: "The Mastodon logo"
url_text: "@alice@masto.werefox.dev"
"Skye's Mastodon":
url: "https://masto.werefox.dev/@skye"
src: "/emoji/mastodon-logo.png"
alt: "The Mastodon logo"
url_text: "@skye@masto.werefox.dev"
"Ada's Mastodon":
url: "https://masto.werefox.dev/@ada"
src: "/emoji/mastodon-logo.png"
@ -13,19 +25,19 @@
url_text: "@ada@masto.werefox.dev"
"My Twitter":
url: "https://twitter.com/alexis_werefox"
url: "https://twitter.com/alice_werefox"
src: "/emoji/twitter-logo.png"
alt: "The Twitter logo"
url_text: "@alexis_werefox"
url_text: "@alice_werefox"
"My Twitch":
url: "https://twitch.tv/alexis_werefox"
url: "https://twitch.tv/alice_werefox"
src: "/emoji/twitch-logo.png"
alt: "The Twitch logo"
url_text: "@Alexis_Werefox"
url_text: "@alice_werefox"
"My e-mail":
url: "mailto:adh9694@gmail.com"
"Our e-mail":
url: "mailto:ada.werefox@tutanota.com"
src: "/emoji/inbox.svg"
alt: "An inbox emoji"
url_text: "adh9694@gmail.com"
url_text: "ada.werefox@tutanota.com"

View File

@ -1,4 +1,4 @@
--- # Introduction YAML
intro: |
Here's a simple little homepage for all the subdomains we host. 💙
Here's a simple little homepage for all the subdomains we host. 🖤

View File

@ -42,18 +42,17 @@ Lesbian:
Partners:
url: "/identities/partners"
images: [{ src: "/emoji/blue_heart.svg", alt: "Blue heart emoji" }]
images: [{ src: "/emoji/:black_heart:.svg", alt: "Black heart emoji" }]
extra_classes: ""
ADHD:
CPTSD:
url: "/identities/neuro"
images:
- { src: "/emoji/neurodiversity.svg", alt: "Neurodiversity symbol emoji" }
extra_classes: ""
"Fox witch":
"Dragon":
url: "/identities/fursona"
images:
- { src: "/emoji/fox.svg", alt: "Fox emoji" }
- { src: "/emoji/magic_wand.svg", alt: "Magic wand emoji" }
- { src: "/emoji/western_dragon.svg", alt: "Western dragon emoji" }
extra_classes: "xl:pt-1 xl:align-text-bottom xl:text-sm xl:min-h-full"

View File

@ -1,22 +1,18 @@
--- # Fursona YAML
Fursona:
page_title: "What's Gender?"
card_title: "I'm Transgender!"
title: "Alexis Werefox"
src: "/emoji/pixel_alexis.png"
alt: "It's me! Alexis Werefox!"
src2: "/images/alexis_witch.jpg"
alt2: "Some art of Alexis Werefox in a black corset and miniskirt and pink/black striped leggings and a witch hat, with magic effects surrounding her."
page_title: "lmao furry"
card_title: "I'm dergy."
title: "Alice Werefox"
src: "/emoji/western_dragon.svg"
alt: "Western dragn emoji until I get an emoji"
src2: "/images/alice_ref_sheet.jpg"
alt2: "It's a ref sheet of a black/red dragon anthro with blue eyes."
info: |
That's me, the witchy foxxo herself! 💙
So basically, I'm derg. 🖤
Despite making this whole website, I'm honestly not much for talking about myself most of the time, unless I'm feeling particularly good.
Hahaa, what's there to say? I stream Beat Saber and write poetry sometimes.
I'm a fox, though! I think originally based on a fennec, but I've kinda moved away from that design nowadays.
Rrrrrr... I mean, I'm pretty sure you can infer a lot else from the ref sheet itself, so here ya go.
Also, I'm a witch! I have magic powers, which have honestly been mostly used to indulge in kinks, but uhhhhhh... What were we talking about here again?
I know! I know! You came here to see some art, yes?! Well, here's a free one for ya!~
(this was done by the wonderful @ribbonfemale on Twitter!)
It was made by @ItsSailor@mastodon.art.

View File

@ -3,29 +3,13 @@
Neuro:
page_title: "Neurodiversity, Fam"
card_title: "I'm Neurodivergent!"
title: "ADHD"
url: "https://www.youtube.com/channel/UC-nPM1_kSZf91ZGkcgy_95Q"
title: "CPTSD"
url: "https://www.nhs.uk/mental-health/conditions/post-traumatic-stress-disorder-ptsd/complex/"
src: "/emoji/neurodiversity.svg"
alt: "The neurodiversity symbol"
info: |
This stands for "Attention-Deficit Hyperactivity Disorder".
CPTSD stands for: Complex Post-Traumatic Stress Disorder.
Addionally, the term "neurodivergent" is a general term meaning someone who lives with a form of mental disorder which may impair or alter the way they act and react to the world around them.
Please just visit the link if you wanna know more.
While the term ADHD does address the attention and hyperactive aspects of the disorder, there are actually many other aspects that often go unaddressed. The main ones, however, are:
- Lack of focus, and conversely, hyperfocus!
- Impulsiveness
- Impaired ability to multitask
- Time management issues
- Executive dysfunction (complicated, but basically an inability to do things right away)
- Difficulty remembering things (especially details and things we don't find stimulating)
- Emotional dysregularity (we have trouble regulating our emotions!)
- Last, but not least, is something called "rejection sensitivity", which can be hard to explain, but is essentially an extreme sensitivity to isolation, to the point where we will make up (often harmful and incorrect) reasons for why others must be avoiding us.
It isn't technically medically accepted, but is proven to be a common symptom among ADHD folks!
Two basic things you should recgonize about why we are this way is that for one, we don't receive enough Dopamine for accomplishing things compared to neurotypicals, and it makes doing things we don't like incredibly dreadful, and gives us a bit of a dependence on receiving more Dopamine constantly.
Second, the part of our brain that manages emotional regulation is underdeveloped, which makes our capacity for controlling emotions comparable sometimes to that of a child.
There's a lot more I wish I could say, but I can genuinely recommend the following link to the YouTube channel "How to ADHD" if you want to learn more, especially if you believe you have this disorder yourself!
I'll probably fill this out another time, but it's difficult for me to talk about.

View File

@ -4,7 +4,7 @@ lindsays:
url: "https://hackers.town/@lindsays"
avi: "/images/lindsays.png"
fields:
with!: "@Kitredgrave@vulpine.club, @muggle@hackers.town, @autumnal@hackers.town (when she is around), @moonbolt@mst3k.interlinked.me::*, @alexis@masto.werefox.dev, $RO, $BUN, $EM | polysaturated"
with!: "@Kitredgrave@vulpine.club, @muggle@hackers.town, @autumnal@hackers.town (when she is around), @moonbolt@mst3k.interlinked.me::*, @alice@masto.werefox.dev, @doubleDensity@beach.city, $RO, $BUN, $EM, $RAR, $FN | polysaturated"
"Matrix: ask!": "discord: no!"
queeeeer: ":qhTrans: :qhPolyro: :qhPolyam:"
LiberaPay: "https://liberapay.com/Lindsayschmocker"
@ -21,8 +21,9 @@ karma:
url: "https://awoo.space/@karma"
avi: "/images/karma.png"
fields:
age: 29
age: 30
pronouns: "she/her"
"discord / telegram": "Karma#0528 / Karma_dragoness"
bio: |
Karma / Beatrice / Bea
@ -30,14 +31,12 @@ karma:
Pan trans polyam demi dragoness in the PNW.
💜Melly/Cherry @deejvalen@plush.city
💜Trysdyn @trysdyn@marf.space
💜Alexis @alexis@masto.werefox.dev
Follow requests are OK!
(posts older than 90 days are deleted)
I'm less active on masto and don't post as much here any more - please feel free to contact me through other means if you want to talk 💜
plausocks:
url: "https://masto.werefox.dev/@plausocks"
avi: "/images/plausocks.png"
@ -52,9 +51,8 @@ plausocks:
Please don't follow me if you're under 18 🔞
Taken by 4 Partners~
- @alexis@masto.werefox.dev 💙 :alexis:
- @aowora@vulpine.club 💜 :Elizafox:
Taken by 3 Partners~
- @alice@masto.werefox.dev 🖤 :dragncoolmlem:
- @violet@vulpine.club 💜 :violet_bat:
- @cdmnky@vulpine.club 💚 :sierra:

View File

@ -1,7 +1,7 @@
--- # Introduction YAML
intro: |
I'd describe myself as somewhere between a hot date and a hot mess. Just a witchy foxxo programmer trying to make it in the world tbh.
Feel free to click/tap any of the cute buttons above this to learn more about my different aspects of personality.
:dragncoolmlem: A pop punk dragon on the Internet. I'd describe myself as somewhere between a hot date and a hot mess.
Feel free to click/tap any of the buttons above this to learn more about my different aspects of personality.
Down below, I've got some more neat little pages and useful info you can look at.
Please do look around and enjoy your stay!~ 💙
Please do look around and enjoy your stay!~ :black_heart:

View File

@ -1,4 +1,4 @@
--- # Introduction YAML
intro: |
Here's a simple little site with links to all the services on the local network. 💙
Here's a simple little site with links to all the services on the local network. 🖤

View File

@ -2,17 +2,17 @@
"So is Werefox like a species or...?":
answer: >
That's a good question! No, my fursona's full name is Alexis Werefox,
That's a good question! No, my fursona's full name is Skye Werefox,
so Werefox is just a last name. I am just a fox!
src: "/images/alexis_heart.png"
alt: "Alexis giving a heart emoji"
alt: "Skye giving a heart emoji"
"How can you be Pansexual and a Lesbian?":
answer: >
I believe I've been told the proper term is "sapphic",
it just means I *am* Pansexual, but I prefer those who identify more femme."
src: "/images/alexis_wink.png"
alt: "Alexis winking and giving a peace sign"
alt: "Skye winking and giving a peace sign"
"How do I get those Xenia stickers?":
answer: >
@ -20,7 +20,7 @@
I first started giving those out, I was in a good financial position, among
other things. Now I'm not! I will get to it when I do.
src: "/images/alexis_annoyed.png"
alt: "Alexis looking annoyed and crossing her arms"
alt: "Skye looking annoyed and crossing her arms"
"Where are you, anyway?":
answer: >
@ -28,7 +28,7 @@
for obvious reasons. If you're in the area, consider hitting me up! I might
not want to meet up right away, but I'm always looking for more friendos. 💙
src: "/images/alexis_coffee.png"
alt: "Alexis sipping on some coffee"
alt: "Skye sipping on some coffee"
# 'What is "Werefox Isekai"?':
# answer: >
@ -38,7 +38,7 @@
# girl from a foreign land falls from the sky and moves in with you temporarily,
# and there's potentially a ton of sexual tension the entire time."
# src: "/images/alexis_wink.png"
# alt: "Alexis winking and giving a peace sign"
# alt: "Skye winking and giving a peace sign"
"What do you do?":
answer: >
@ -48,7 +48,7 @@
know more about what I do, you can check out "Stuff I do!" from the main
page, and "Support Me?" if you wanna toss me some funds!
src: "/images/alexis_shrug.png"
alt: "Alexis shrugging"
alt: "Skye shrugging"
'What happened to "Werefox Isekai"?':
answer: >
@ -57,21 +57,21 @@
There are still more folks I want to visit, and I am going to be making trips to
see my partners again eventually as well, but for now I need a break."
src: "/images/alexis_coffee.png"
alt: "Alexis sipping on some coffee"
alt: "Skye sipping on some coffee"
# "Are you accepting more partners?":
# answer: >
# Hhaaa,,, Uhh, not at the moment? Anything can happen, though! Just don't
# make it your main goal to try and date me, yeah? 💙
# src: "/images/alexis_coffee.png"
# alt: "Alexis sipping on some coffee"
# alt: "Skye sipping on some coffee"
"Are you accepting more partners?":
answer: >
I wouldn't say I'm looking, but I'm certainly open to the idea right now!
Just don't make it your main goal to try and date me, yeah? 💙
src: "/images/alexis_wink.png"
alt: "Alexis winking and giving a peace sign"
alt: "Skye winking and giving a peace sign"
"... Wait, don't I know you?":
answer: >
@ -81,4 +81,4 @@
reaching out, in most cases I'm willing to catch up. If that's the case,
your best bets are Twitter DM, e-mail, or a text if you still have my number.
src: "/images/alexis_shrug.png"
alt: "Alexis shrugging"
alt: "Skye shrugging"

View File

@ -26,15 +26,6 @@ Poetry:
happiest, but I am proud of it. It would mean a lot to me if
you took a look!
Blog:
url: "https://werefox.dev"
new_tab: true
src: "/emoji/page_with_pencil.svg"
alt: "Paper with a pencil emoji"
description: >
I don't update it too often, but I do also maintain
a blog! You can follow it to keep up with what I'm doing as well!
Programming:
url: "https://gitea.werefox.dev/shadow8t4"
new_tab: true

View File

@ -18,23 +18,6 @@ Pinafore:
description: >
An alternative web client for Mastodon, focused on speed and simplicity.
Halcyon:
url: "https://halcyon.werefox.dev/"
new_tab: true
src: "/emoji/halcyon_logo.png"
alt: "The Halcyon logo"
description: >
Halcyon is standard Twitter like client of Mastodon, And you can use it just
by login to your instance. Let's Toot like a tweet.
Brutaldon:
url: "https://brutal.werefox.dev/"
new_tab: true
src: "/emoji/brutaldon_logo.png"
alt: "The Brutaldon logo"
description: >
Brutaldon is a brutalist, Web 1.0 web interface for Mastodon and Pleroma.
PeerTube:
url: "https://vid.werefox.dev/"
new_tab: true

View File

@ -1,7 +1,7 @@
--- # Streaming YAML
Twitch:
url: "https://twitch.tv/alexis_werefox"
url: "https://twitch.tv/alice_werefox"
new_tab: true
src: "/emoji/twitch-logo.png"
alt: "The Twtich logo"

View File

@ -14,7 +14,7 @@
ram: "32 Gb"
os: "Ubuntu Server 20.10"
"Raspberry Pi 4 (x2)":
"Raspberry Pi 4":
model: "B Rev 1.4"
cpu: "BCM2835 four-core @1.5Ghz"
gpu: "N/A"

View File

@ -2,13 +2,13 @@
Patreon:
title: "Become a Patron!"
alt: "Subscribe to Alexis' Patreon"
alt: "Subscribe to Alice's Patreon"
src: "/images/patreon_logo.png"
url: "https://www.patreon.com/bePatron?u=16333959"
Kofi:
title: "Buy me a Coffee!"
alt: "Buy Alexis a Coffee"
alt: "Buy Alice a Coffee"
src: "/images/kofi_logo.png"
url: "https://ko-fi.com/O5O61UAY1"

View File

@ -9,7 +9,8 @@ module.exports = {
"functional.cafe",
"dragon.style",
"masto.werefox.dev",
"hackers.town"
"hackers.town",
"pool.jortage.com"
],
},
};

View File

@ -1,5 +1,5 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default (req, res) => {
res.status(200).json({ name: 'Alexis Werefox' })
res.status(200).json({ name: 'Alice Werefox' })
}

View File

@ -24,7 +24,7 @@ export default function FAQ({ FAQ }) {
return (
<BasicPage
page_title="FAQ"
card_title="Frequently Asked Questions!"
card_title="Here's Skye with some FAQs"
page_button_title="Take me back home!"
>
<FBlock faqs={FAQ} />

View File

@ -31,14 +31,14 @@ export async function getStaticProps() {
}
export default function Home({ INTRODUCTION, SUBDOMAINS, OTHER }) {
let introarray = INTRODUCTION["intro"].split("\n");
introarray = introarray.slice(0, introarray.length - 1);
const introdict = Object.assign({}, introarray);
// let introarray = INTRODUCTION["intro"].split("\n");
// introarray = introarray.slice(0, introarray.length - 1);
// const introdict = Object.assign({}, introarray);
return (
<HomePage page_title="Werefox Homepage" card_title="Werefox Homepage">
<WCard title="Welcome to werefox.dev">
<ICard introduction={introdict} />
<ICard introduction={INTRODUCTION.intro} emoji_paths={{}} />
</WCard>
<WCard title="Subdomains">
<PBlock pages={SUBDOMAINS} />

View File

@ -42,12 +42,12 @@ export default function HRT({ startTimes }) {
return (
<BasicPage
page_title="Alexis Werefox HRT Tracker"
page_title="Alice Werefox HRT Tracker"
card_title="Track my HRT progress!"
page_button_title="Take me back home!"
>
<WCard title={`I'm so glad you're interested!!`}>
<div className="p-2 sm:text-xl text-lg text-center text-skye-werefox-blue-dark dark:text-skye-werefox-blue grid grid-cols-1 grid-rows-4 gap-2">
<div className="p-2 sm:text-xl text-lg text-center text-alice-werefox-red-dark dark:text-alice-werefox-red-light grid grid-cols-1 grid-rows-4 gap-2">
<p>I've been on HRT for:</p>
{Object.keys(timesArray).map((t) => (
<p key={t}>{timesArray[t]}</p>

View File

@ -0,0 +1,44 @@
import BasicPage from "../../../components/basic-page";
import IDCard from "../../../components/identity-card";
import IDCardText from "../../../components/identity-card-textbox";
import IDCardButton from "../../../components/identity-card-button";
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let NEURO = "";
try {
let fileContent = fs.readFileSync("./data/identities/neuro.yml", "utf8");
NEURO = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
NEURO,
},
};
}
export default function Neurodiversity({ NEURO }) {
return (
<BasicPage
page_title={NEURO["Neuro"].page_title}
card_title={NEURO["Neuro"].card_title}
page_button_title="Take me back home!"
>
{Object.keys(NEURO).map((neuro) => (
<IDCard
key={neuro}
title={NEURO[neuro].title}
src={NEURO[neuro].src}
alt={NEURO[neuro].alt}
>
<IDCardText info={NEURO[neuro].info} />
<IDCardButton url={NEURO[neuro].url} button_text="Learn More" />
</IDCard>
))}
</BasicPage>
);
}

View File

@ -38,7 +38,7 @@ export default function Fursona({ FURSONA }) {
>
<IDCardText info={FURSONA[fursona].info} />
<div className="rounded-lg hover:animate-yip transition">
<Link href="https://twitter.com/ribbonfemale">
<Link href="https://mastodon.art/@ItsSailor">
<a target="_blank">
<span className="relative inline-flex align-middle">
<Image

View File

@ -62,7 +62,7 @@ export default function Partners({ PARTNERS, emoji_paths }) {
>
<IDCard
title="My loves!"
src="/emoji/blue_heart.svg"
src="/emoji/:black_heart:.svg"
alt="Blue heart emoji"
>
{Object.keys(PARTNERS).map((partner) => (
@ -85,7 +85,7 @@ export default function Partners({ PARTNERS, emoji_paths }) {
<BasicPage page_title="Partners" card_title="Partners!">
<IDCard
title="My loves!"
src="/emoji/blue_heart.svg"
src="/emoji/:black_heart:.svg"
alt="Blue heart emoji"
>
<IDCardText

View File

@ -0,0 +1,60 @@
import BasicPage from "../../../components/basic-page";
import IDCard from "../../../components/identity-card";
import IDCardText from "../../../components/identity-card-textbox";
import Link from "next/link";
import Image from "next/image";
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let FURSONA = "";
try {
let fileContent = fs.readFileSync("./data/identities/fursona.yml", "utf8");
FURSONA = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
FURSONA,
},
};
}
export default function Fursona({ FURSONA }) {
return (
<BasicPage
page_title={FURSONA["Fursona"].page_title}
card_title={FURSONA["Fursona"].card_title}
page_button_title="Take me back home!"
>
{Object.keys(FURSONA).map((fursona) => (
<IDCard
key={fursona}
title={FURSONA[fursona].title}
src={FURSONA[fursona].src}
alt={FURSONA[fursona].alt}
>
<IDCardText info={FURSONA[fursona].info} />
<div className="rounded-lg hover:animate-yip transition">
<Link href="https://twitter.com/ribbonfemale">
<a target="_blank">
<span className="relative inline-flex align-middle">
<Image
className="rounded-lg"
src={FURSONA[fursona].src2}
layout="intrinsic"
width="2048"
height="2048"
alt={FURSONA[fursona].alt2}
/>
</span>
</a>
</Link>
</div>
</IDCard>
))}
</BasicPage>
);
}

View File

@ -4,6 +4,17 @@ import WCard from "../components/werefox-card";
import ICard from "../components/introduction-card";
import PBlock from "../components/page-block";
export function parseEmoji(TEXTBLOCK) {
const emoji_pattern = new RegExp(/(:[A-Za-z_-]+:)/, "g");
let emoji = [];
Array.from(emoji_pattern[Symbol.matchAll](TEXTBLOCK.intro)).forEach(
(e, i) => {
emoji.push(e[0]);
}
);
return emoji;
}
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
@ -12,6 +23,7 @@ export async function getStaticProps() {
let INTRODUCTION = {};
let PAGES = {};
let PARTNERS = {};
let emoji_paths = {};
try {
let fileContent = fs.readFileSync("./data/identities.yml", "utf8");
@ -22,6 +34,16 @@ export async function getStaticProps() {
PAGES = yaml.load(fileContent);
fileContent = fs.readFileSync("./data/identities/partners.yml", "utf8");
PARTNERS = yaml.load(fileContent);
let emoji = parseEmoji(INTRODUCTION);
emoji.forEach((e, i) => {
if (fs.existsSync(`./public/emoji/${e}.svg`)) {
emoji_paths[e] = `/emoji/${e}.svg`;
} else if (fs.existsSync(`./public/emoji/${e}.png`)) {
emoji_paths[e] = `/emoji/${e}.png`;
} else {
emoji_paths[e] = `/emoji/pixel_alexis.png`;
}
});
} catch (e) {
console.log(e);
}
@ -31,23 +53,26 @@ export async function getStaticProps() {
INTRODUCTION,
PAGES,
PARTNERS,
emoji_paths,
},
};
}
export default function Home({ IDENTITIES, INTRODUCTION, PAGES, PARTNERS }) {
export default function Home({
IDENTITIES,
INTRODUCTION,
PAGES,
PARTNERS,
emoji_paths,
}) {
const partnerslen = PARTNERS ? Object.keys(PARTNERS).length : 0;
let introarray = INTRODUCTION["intro"].split("\n");
introarray = introarray.slice(0, introarray.length - 1);
const introdict = Object.assign({}, introarray);
return (
<HomePage page_title="About A Werefox" card_title="Hi! I'm Alexis Werefox!">
<HomePage page_title="About A Werefox" card_title="Hi! I'm Alice Werefox!">
<WCard title="Basic Info">
<IDBlock identities={IDENTITIES} partners={partnerslen} />
</WCard>
<WCard title="Welcome to my little info site!">
<ICard introduction={introdict} />
<ICard introduction={INTRODUCTION.intro} emoji_paths={emoji_paths} />
</WCard>
<WCard title="Neat Pages!">
<PBlock pages={PAGES} />

View File

@ -27,14 +27,14 @@ export async function getStaticProps() {
}
export default function Home({ INTRODUCTION, SUBDOMAINS }) {
let introarray = INTRODUCTION["intro"].split("\n");
introarray = introarray.slice(0, introarray.length - 1);
const introdict = Object.assign({}, introarray);
// let introarray = INTRODUCTION["intro"].split("\n");
// introarray = introarray.slice(0, introarray.length - 1);
// const introdict = Object.assign({}, introarray);
return (
<HomePage page_title="Local Network Subdomains" card_title="Local Network Subdomains">
<WCard title="Welcome to local.werefox">
<ICard introduction={introdict} />
<ICard introduction={INTRODUCTION.intro} emoji_paths={{}} />
</WCard>
<WCard title="Subdomains">
<PBlock pages={SUBDOMAINS} />

View File

@ -27,7 +27,7 @@ export default function Services({ PROJECTS }) {
card_title="Some stuff I do!"
page_button_title="Take me back home!"
>
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<PBlock title="Personal Projects" cards={PROJECTS} />
</div>
</BasicPage>

View File

@ -31,7 +31,7 @@ export default function Services({ OTHER }) {
page_button_title="Take me back!"
back_url="/projects"
>
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<PBlock title="Miscelaneous Projects" cards={OTHER} />
</div>
</BasicPage>

View File

@ -31,7 +31,7 @@ export default function Services({ PRIVATE }) {
page_button_title="Take me back!"
back_url="/projects"
>
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<PBlock title="Private Services" cards={PRIVATE} />
</div>
</BasicPage>

View File

@ -31,7 +31,7 @@ export default function Services({ SERVICES }) {
page_button_title="Take me back!"
back_url="/projects"
>
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<PBlock title="Services" cards={SERVICES} />
</div>
</BasicPage>

View File

@ -31,7 +31,7 @@ export default function Services({ STREAMING }) {
page_button_title="Take me back!"
back_url="/projects"
>
<div className="rounded-lg ring-2 ring-skye-werefox-grey dark:ring-skye-werefox-grey-darker bg-skye-werefox-grey-light dark:bg-skye-werefox-grey">
<div className="rounded-lg ring-2 ring-alice-werefox-grey dark:ring-alice-werefox-grey-darker bg-alice-werefox-grey-light dark:bg-alice-werefox-grey">
<PBlock title="Streaming" cards={STREAMING} />
</div>
</BasicPage>

View File

@ -10,6 +10,9 @@ export const getIcon = async ({ json, name }) =>
({ data }) => [name, data["icon"]["url"]],
(error) => {
console.log(error);
if (name == "Dax") {
return [name, `/images/Dax.gif`];
}
return [name, null];
}
);
@ -41,6 +44,7 @@ export const getStaticProps = async () => {
};
export default function Testimonials({ iconUrls, TESTIMONIALS }) {
console.log(iconUrls)
return (
<BasicPage
page_title="Werefox Testimonials"

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linecap="round" stroke-miterlimit="3" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path clip-rule="evenodd" d="m0 0h32v32h-32z"/></clipPath><metadata/><path d="m0 0h32v32h-32z" fill="none"/><g clip-path="url(#a)"><path d="m26.565 16.177c.352-1.763-.104-3.591-1.244-4.981-1.139-1.39-2.842-2.196-4.64-2.196-1.324 0-2.602 0-3.61 0-1.326 0-2.598.527-3.535 1.464-2.55 2.55-7.536 7.536-7.536 7.536-.64 0-1.254.254-1.707.707-.335.335-.754.754-1.18 1.18-.56.56-.875 1.32-.875 2.113s.315 1.553.875 2.113c.498.498.887.887.887.887h2l4 4v-3s4.675-4.675 6.384-6.384c.34-.34.892-.34 1.232 0 0 0 0 0 .001.001.231.231.298.58.169.881-.518 1.21-1.846 4.309-2.463 5.747-.213.498-.323 1.034-.323 1.576v2.179h10s0-3.181 0-4.911c0-.724.072-1.447.214-2.157.287-1.439.824-4.124 1.351-6.755z" fill="none" stroke="#000" stroke-width="4"/><path d="m18 9s.385.385.879.879c.562.562 1.325.878 2.121.878s1.559-.316 2.121-.878c.624-.624 1.28-1.28 1.809-1.809.698-.698 1.173-1.587 1.367-2.554.295-1.475.703-3.516.703-3.516z" style="fill:#be8b40;stroke:#000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:1.5"/><path d="m11 20h12v9h-12z"/><path d="m17 14v-5c1.827-1.827 4.553-2.418 6.972-1.511 2.009.754 4.028 1.511 4.028 1.511l-2 1 4 6h-2l1 8h-2l1 6h-4v-16z" style="fill:#1c5832;stroke:#000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:2"/><path d="m13 12 2-8 2 6z" fill="none" stroke="#000" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="4"/><path d="m17 14v-5c1.827-1.827 4.553-2.418 6.972-1.511 2.009.754 4.028 1.511 4.028 1.511l-2 1 4 6h-2l1 8h-2l1 6h-4v-16z" fill="#742125"/><path d="m13 12 2-8 2 6z" fill="#d8c31e"/><path d="m5.292 25h-1.292l-.887-.887c-.56-.56-.875-1.32-.875-2.113s.315-1.553.875-2.113l1.18-1.18c.453-.453 1.067-.707 1.707-.707l7.536-7.536c.937-.937 2.209-1.464 3.535-1.464h3.61c1.798 0 3.501.806 4.64 2.196 1.14 1.39 1.596 3.218 1.244 4.981-.527 2.631-1.064 5.316-1.351 6.755-.142.71-.214 1.433-.214 2.157v4.911h-6l-1.308-2.718.793-7.356s-1.161-1.25-2.083-.328l-6.402 6.402v3l-3.647-3.647-.033-.332-.626-.101z" fill="#d5232f"/><path d="m16.384 19.616.018-.018c.922-.922 2.376-1.042 3.437-.284.001 0 .001 0 .001.001.977.698 1.359 1.968.928 3.089-.469 1.217-1.055 2.742-1.42 3.692-.23.598-.348 1.232-.348 1.872v2.032h-4s0-1.291 0-2.179c0-.542.11-1.078.323-1.576.617-1.438 1.945-4.537 2.463-5.747.129-.301.062-.65-.169-.881-.001-.001-.001-.001-.001-.001-.34-.34-.892-.34-1.232 0z" fill="#ee869b"/><path d="m5.292 25 3.708-3.712.002-1.835c.032-.256.238-.447.498-.458h2.5v-1.995h1v2.495c-.011.273-.224.488-.5.5h-2.5v1.5c-.009.229-.057.256-.146.353l-3.501 3.505-.353-.353z" fill="#9c1b31"/><path d="m5 20.5-1 1" fill="none" stroke="#7f1318" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="2"/><path d="m17 12s-.427 0-1.002 0c-.795 0-1.558.316-2.12.878s-.878 1.325-.878 2.12v.002h1c1.657 0 3-1.343 3-3z"/><path d="m18 9s.385.385.879.879c.562.562 1.325.878 2.121.878s1.559-.316 2.121-.878c.624-.624 1.28-1.28 1.809-1.809.698-.698 1.173-1.587 1.367-2.554.295-1.475.703-3.516.703-3.516z" fill="#d8c31e"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -33,15 +33,24 @@ module.exports = {
dark: "#242424",
darker: "#121212",
},
"alice-werefox-grey": {
lightest: "#EEE",
lighter: "#DBDBDB",
light: "#CCC",
DEFAULT: "#242424",
dark: "#121212",
darker: "#000",
},
"alice-werefox-red": {
light: "#FFCCCF",
DEFAULT: "#FF8F94",
light: "#E08587",
DEFAULT: "#c93439",
dark: "#800008",
darker: "#550006",
darkest: "#7A0000",
},
"alice-werefox-blue": {
DEFAULT: "#B6A3FF",
light: "#9197F3",
DEFAULT: "#1b29e0",
dark: "#3300FF",
darker: "#2C00DB",
darkest: "#2700C2",