Major theme updates, formatting, updated every page's information.
This commit is contained in:
parent
93a29dfb32
commit
7ebdfdf404
@ -8,11 +8,12 @@ export default function BasicPage({
|
|||||||
card_title,
|
card_title,
|
||||||
children,
|
children,
|
||||||
back_url,
|
back_url,
|
||||||
|
page_button_title,
|
||||||
}) {
|
}) {
|
||||||
const url = Boolean(back_url) ? back_url : "/";
|
const url = Boolean(back_url) ? back_url : "/";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-werefox-grey-lighter dark:bg-werefox-grey-dark font-nerd">
|
<div className="min-h-screen bg-werefox-grey-light dark:bg-werefox-grey font-nerd">
|
||||||
<Head>
|
<Head>
|
||||||
<title>{page_title}</title>
|
<title>{page_title}</title>
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
@ -21,7 +22,7 @@ export default function BasicPage({
|
|||||||
<TCard card_title={card_title} />
|
<TCard card_title={card_title} />
|
||||||
<nav>
|
<nav>
|
||||||
<PButton
|
<PButton
|
||||||
title="Take me back home!"
|
title={page_button_title}
|
||||||
images={[
|
images={[
|
||||||
{ src: "/emoji/pixel_alexis.png", alt: "Pixel Alexis!" },
|
{ src: "/emoji/pixel_alexis.png", alt: "Pixel Alexis!" },
|
||||||
{ src: "/emoji/blue_heart.svg", alt: "Blue heart" },
|
{ src: "/emoji/blue_heart.svg", alt: "Blue heart" },
|
||||||
@ -32,7 +33,7 @@ export default function BasicPage({
|
|||||||
{children}
|
{children}
|
||||||
<nav>
|
<nav>
|
||||||
<PButton
|
<PButton
|
||||||
title="Take me back home!"
|
title={page_button_title}
|
||||||
images={[
|
images={[
|
||||||
{ src: "/emoji/pixel_alexis.png", alt: "Pixel Alexis!" },
|
{ src: "/emoji/pixel_alexis.png", alt: "Pixel Alexis!" },
|
||||||
{ src: "/emoji/blue_heart.svg", alt: "Blue heart" },
|
{ src: "/emoji/blue_heart.svg", alt: "Blue heart" },
|
||||||
|
@ -2,7 +2,7 @@ import FCard from "./faq-card";
|
|||||||
|
|
||||||
export default function FAQBlock({ faqs }) {
|
export default function FAQBlock({ faqs }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 space-y-4 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="p-4 space-y-4 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lightest dark:bg-werefox-grey-dark">
|
||||||
{Object.keys(faqs).map((faq) => (
|
{Object.keys(faqs).map((faq) => (
|
||||||
<FCard
|
<FCard
|
||||||
key={faq}
|
key={faq}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import FButton from "./footer-button";
|
import FButton from "./footer-button";
|
||||||
export default function FooterCard() {
|
export default function FooterCard() {
|
||||||
return (
|
return (
|
||||||
<footer className="p-4 space-y-2 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<footer className="p-4 space-y-2 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lightest dark:bg-werefox-grey-dark">
|
||||||
<div className="flex text-werefox-blue-darker dark:text-werefox-blue">
|
<div className="flex text-werefox-blue-darker dark:text-werefox-blue">
|
||||||
<div className="flex-1"></div>
|
<div className="flex-1"></div>
|
||||||
<FButton url="/contacts" inner_text="Contact" />
|
<FButton url="/contacts" inner_text="Contact" />
|
||||||
|
@ -4,7 +4,7 @@ import FCard from "../components/footer-card";
|
|||||||
|
|
||||||
export default function HomePage({ page_title, card_title, children }) {
|
export default function HomePage({ page_title, card_title, children }) {
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-werefox-grey-lighter dark:bg-werefox-grey-dark font-nerd">
|
<div className="min-h-screen bg-werefox-grey-light dark:bg-werefox-grey font-nerd">
|
||||||
<Head>
|
<Head>
|
||||||
<title>{page_title}</title>
|
<title>{page_title}</title>
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
|
15
src/info/components/identity-card-button.js
Normal file
15
src/info/components/identity-card-button.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
export default function IdentityCardButton({ url, button_text }) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Link href={url}>
|
||||||
|
<a target="_blank">
|
||||||
|
<div className="p-4 hover:text-werefox-pink-dark dark:hover:text-werefox-pink ring-2 ring-werefox-blue-dark dark:ring-werefox-blue hover:ring-werefox-pink-dark dark:hover:ring-werefox-pink hover:animate-yip transition">
|
||||||
|
{button_text}
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
18
src/info/components/identity-card-textbox.js
Normal file
18
src/info/components/identity-card-textbox.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
export default function IdentityCardTextBox({ info }) {
|
||||||
|
let infoarray = [];
|
||||||
|
let infodict = {};
|
||||||
|
if (info) {
|
||||||
|
infoarray = info.split("\n");
|
||||||
|
infoarray = infoarray.slice(0, infoarray.length - 1);
|
||||||
|
infodict = Object.assign({}, infoarray);
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<div className="p-4 text-center text-md sm:text-lg ring-2 ring-werefox-blue-dark dark:ring-werefox-blue">
|
||||||
|
{Object.keys(infodict).map((i) => (
|
||||||
|
<p className="overflow-auto" key={i}>
|
||||||
|
{infodict[i] == "" ? <br /> : infodict[i]}
|
||||||
|
</p>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
@ -1,143 +1,11 @@
|
|||||||
import Link from "next/link";
|
import WCard from "./werefox-card";
|
||||||
import Image from "next/image";
|
|
||||||
|
|
||||||
export default function IdentityCard({
|
export default function IdentityCard({ title, src, alt, children }) {
|
||||||
title,
|
return (
|
||||||
info,
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
url,
|
<WCard title={title} title_emoji={{ src: `${src}`, alt: `${alt}` }}>
|
||||||
src,
|
{children}
|
||||||
alt,
|
</WCard>
|
||||||
src2,
|
</div>
|
||||||
alt2,
|
);
|
||||||
children,
|
|
||||||
}) {
|
|
||||||
let infoarray = [];
|
|
||||||
let infodict = {};
|
|
||||||
if (info) {
|
|
||||||
infoarray = info.split("\n");
|
|
||||||
infoarray = infoarray.slice(0, infoarray.length - 1);
|
|
||||||
infodict = Object.assign({}, infoarray);
|
|
||||||
}
|
|
||||||
if (children) {
|
|
||||||
return (
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
|
||||||
<div className="p-2 space-y-3">
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<p className="p-4 text-center text-lg sm:text-2xl text-werefox-grey-dark dark:text-werefox-grey-lighter">
|
|
||||||
<img
|
|
||||||
className="object-contain relative inline-block w-8 h-8 align-middle mb-1"
|
|
||||||
src={src}
|
|
||||||
alt={alt}
|
|
||||||
/>{" "}
|
|
||||||
{title}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="p-4 space-y-4 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else if (src2) {
|
|
||||||
return (
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
|
||||||
<div className="p-2 flow space-y-3">
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<p className="p-4 text-center text-lg sm:text-2xl text-werefox-grey-dark dark:text-werefox-grey-lighter">
|
|
||||||
<img
|
|
||||||
className="object-contain relative inline-block w-8 h-8 align-middle mb-1"
|
|
||||||
src={src}
|
|
||||||
alt={alt}
|
|
||||||
/>{" "}
|
|
||||||
{title}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<div className="p-4 space-y-4 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
|
||||||
{Object.keys(infodict).map((i) => (
|
|
||||||
<p key={i}>{infodict[i] == "" ? <br /> : infodict[i]}</p>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<a href="https://twitter.com/ribbonfemale" target="_blank">
|
|
||||||
<span className="relative inline-flex align-middle">
|
|
||||||
<Image
|
|
||||||
className="rounded-lg"
|
|
||||||
src={src2}
|
|
||||||
layout="intrinsic"
|
|
||||||
width="2048"
|
|
||||||
height="2048"
|
|
||||||
alt={alt2}
|
|
||||||
/>
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else if (url) {
|
|
||||||
return (
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
|
||||||
<div className="p-2 flow space-y-3" id={title}>
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<p className="p-4 text-center text-lg sm:text-2xl text-werefox-grey-dark dark:text-werefox-grey-lighter">
|
|
||||||
<img
|
|
||||||
className="object-contain relative inline-block w-8 h-8 align-middle mb-1"
|
|
||||||
src={src}
|
|
||||||
alt={alt}
|
|
||||||
/>{" "}
|
|
||||||
{title}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<div className="p-4 space-y-4 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
|
||||||
{Object.keys(infodict).map((i) => (
|
|
||||||
<p className="overflow-auto" key={i}>
|
|
||||||
{infodict[i] == "" ? <br /> : infodict[i]}
|
|
||||||
</p>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
<div className="pb-4 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
|
||||||
<Link href={url}>
|
|
||||||
<a
|
|
||||||
target="_blank"
|
|
||||||
className=" transition hover:text-werefox-pink-dark dark:hover:text-werefox-pink"
|
|
||||||
>
|
|
||||||
Learn More
|
|
||||||
</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
|
||||||
<div className="p-2 flow space-y-3">
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<h4 className="p-4 text-center text-lg sm:text-2xl text-werefox-grey-dark dark:text-werefox-grey-lighter">
|
|
||||||
<img
|
|
||||||
className="relative inline-block w-8 h-8 align-middle mb-1"
|
|
||||||
src={src}
|
|
||||||
alt={alt}
|
|
||||||
/>{" "}
|
|
||||||
{title}
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
<div className="p-4 space-y-4 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
|
||||||
{Object.keys(infodict).map((i) => (
|
|
||||||
<p className="overflow-auto" key={i}>
|
|
||||||
{" "}
|
|
||||||
{infodict[i] == "" ? <br /> : infodict[i]}
|
|
||||||
</p>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ import PButton from "./page-button";
|
|||||||
export default function ProjectBlock({ pages }) {
|
export default function ProjectBlock({ pages }) {
|
||||||
return (
|
return (
|
||||||
<nav>
|
<nav>
|
||||||
<div className="flow space-y-2">
|
<div className="flow space-y-4">
|
||||||
{Object.keys(pages).map((page) => (
|
{Object.keys(pages).map((page) => (
|
||||||
<PButton
|
<PButton
|
||||||
key={page}
|
key={page}
|
||||||
|
@ -3,10 +3,10 @@ import Image from "next/image";
|
|||||||
|
|
||||||
export default function PageButton({ title, images, url, extra_classes }) {
|
export default function PageButton({ title, images, url, extra_classes }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-1">
|
<div>
|
||||||
<Link href={url}>
|
<Link href={url}>
|
||||||
<a
|
<a
|
||||||
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 ring-werefox-blue-dark dark:ring-werefox-blue hover:ring-werefox-pink-dark dark:hover:ring-werefox-pink text-werefox-blue-dark dark:text-werefox-blue hover:text-werefox-pink-dark dark:hover:text-werefox-pink focus:text-werefox-pink-dark dark:focus:text-werefox-pink hover:animate-yip transition`}
|
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-werefox-grey-lightest dark:bg-werefox-grey-dark ring-werefox-blue-dark dark:ring-werefox-blue hover:ring-werefox-pink-dark dark:hover:ring-werefox-pink text-werefox-blue-dark dark:text-werefox-blue hover:text-werefox-pink-dark dark:hover:text-werefox-pink focus:text-werefox-pink-dark dark:focus:text-werefox-pink hover:animate-yip transition`}
|
||||||
>
|
>
|
||||||
{images.map((source) => (
|
{images.map((source) => (
|
||||||
<span
|
<span
|
||||||
|
@ -19,7 +19,7 @@ export function renderPossibleURLField(field) {
|
|||||||
return (
|
return (
|
||||||
<Link href={field}>
|
<Link href={field}>
|
||||||
<a target="_blank">
|
<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-blue-dark dark:ring-werefox-blue hover:ring-werefox-pink-dark dark:hover:ring-werefox-pink text-werefox-blue-dark dark:text-werefox-blue hover:text-werefox-pink-dark dark:hover:text-werefox-pink 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-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">
|
||||||
{field}
|
{field}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
@ -41,10 +41,10 @@ export default function PartnerCard({ src, alt, url, fields, bio, user }) {
|
|||||||
const biodict = Object.assign({}, bioarray);
|
const biodict = Object.assign({}, bioarray);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="p-4 flex-column space-y-4 break-all 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-column space-y-4 break-all sm:text-sm text-xs text-center rounded-sm ring-2 ring-werefox-pink-dark dark:ring-werefox-pink">
|
||||||
<Link href={url}>
|
<Link href={url}>
|
||||||
<a target="_blank">
|
<a target="_blank">
|
||||||
<div className="p-4 flex 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-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="order-1 flex-1 flex-shrink-0 relative items-center justify-center align-middle sm:w-32 w-16 min-h-full mr-4">
|
<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
|
<Image
|
||||||
src={finalsrc}
|
src={finalsrc}
|
||||||
@ -53,7 +53,7 @@ export default function PartnerCard({ src, alt, url, fields, bio, user }) {
|
|||||||
alt={alt}
|
alt={alt}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="order-2 flex-5 sm:text-sm text-xs text-center space-y-4">
|
<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-werefox-pink-dark dark:ring-werefox-pink group-hover:ring-werefox-blue-dark dark:group-hover:ring-werefox-blue">
|
||||||
{Object.keys(biodict).map((bio) => (
|
{Object.keys(biodict).map((bio) => (
|
||||||
<div key={bio}>
|
<div key={bio}>
|
||||||
@ -66,7 +66,7 @@ export default function PartnerCard({ src, alt, url, fields, bio, user }) {
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
<div className="flex-column space-y-4">
|
<div className="flex-column space-y-4 text-werefox-pink-dark dark:text-werefox-pink">
|
||||||
{Object.keys(fields).map((field) => (
|
{Object.keys(fields).map((field) => (
|
||||||
<div className="grid grid-cols-2 space-x-4" key={field}>
|
<div className="grid grid-cols-2 space-x-4" key={field}>
|
||||||
<div className="order-1">{renderPossibleURLField(field)}</div>
|
<div className="order-1">{renderPossibleURLField(field)}</div>
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
import PCard from "./project-card";
|
import PCard from "./project-card";
|
||||||
|
import WCard from "./werefox-card";
|
||||||
|
|
||||||
export default function ProjectCardBlock({ title, cards }) {
|
export default function ProjectCardBlock({ title, cards }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-2 space-y-4">
|
<WCard title={title}>
|
||||||
<div className="p-2 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
<ul className="space-y-4">
|
||||||
<p className="sm:text-xl text-lg text-center text-werefox-blue-dark dark:text-werefox-blue">
|
|
||||||
{title}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<ul className="p-4 space-y-4 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
{Object.keys(cards).map((card) => (
|
{Object.keys(cards).map((card) => (
|
||||||
<PCard
|
<PCard
|
||||||
key={card}
|
key={card}
|
||||||
@ -20,6 +16,6 @@ export default function ProjectCardBlock({ title, cards }) {
|
|||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</WCard>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -3,20 +3,22 @@ import Link from "next/link";
|
|||||||
|
|
||||||
export default function ServerBlock({ servers }) {
|
export default function ServerBlock({ servers }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 w-full inline-flow align-middle justify-center space-y-4">
|
<div className="p-4 w-full inline-flow align-middle justify-center space-y-8">
|
||||||
<p className="w-full text-lg text-center text-werefox-blue-dark dark:text-werefox-blue">
|
<div className="p-4 ring-2 ring-werefox-blue-dark dark:ring-werefox-blue">
|
||||||
All the stuff I run uses the following server machines with reverse SSH
|
<p>
|
||||||
connections to a{" "}
|
All the stuff I run uses the following server machines with reverse
|
||||||
<Link href="https://www.linode.com/?r=61251dc51397edcfacadd7f3744b258b63ad4248">
|
SSH connections to a{" "}
|
||||||
<a
|
<Link href="https://www.linode.com/?r=61251dc51397edcfacadd7f3744b258b63ad4248">
|
||||||
target="_blank"
|
<a
|
||||||
className="transition hover:text-werefox-pink-dark dark:hover:text-werefox-pink"
|
target="_blank"
|
||||||
>
|
className="transition hover:text-werefox-pink-dark dark:hover:text-werefox-pink"
|
||||||
Linode VPS
|
>
|
||||||
</a>
|
Linode VPS
|
||||||
</Link>
|
</a>
|
||||||
{"."}
|
</Link>
|
||||||
</p>
|
{"."}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
{Object.keys(servers).map((server) => (
|
{Object.keys(servers).map((server) => (
|
||||||
<SCard
|
<SCard
|
||||||
server={server}
|
server={server}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default function ServerCard({ server, model, cpu, gpu, ram, os }) {
|
export default function ServerCard({ server, model, cpu, gpu, ram, os }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-2 space-y-1 w-full inline-flow ring-4 ring-werefox-blue-darkest dark:ring-werefox-blue bg-werefox-grey-lightest dark:bg-werefox-grey-darker text-lg text-werefox-blue-darkest dark:text-werefox-blue-light">
|
<div className="p-2 space-y-1 w-full inline-flow text-left ring-4 ring-werefox-blue-darkest dark:ring-werefox-blue bg-werefox-grey-lightest dark:bg-werefox-grey-darker text-lg text-werefox-cyan-dark dark:text-werefox-cyan-light">
|
||||||
<p>
|
<p>
|
||||||
<code>{`System: ${server}`}</code>
|
<code>{`System: ${server}`}</code>
|
||||||
</p>
|
</p>
|
||||||
|
@ -5,7 +5,7 @@ import KWidget from "./kofi-donation-widget.js";
|
|||||||
export default function SupportBlock({ support }) {
|
export default function SupportBlock({ support }) {
|
||||||
return (
|
return (
|
||||||
<WCard
|
<WCard
|
||||||
innerText="I would sincerely appreciate if you would throw some financial
|
title="I would sincerely appreciate if you would throw some financial
|
||||||
support my way!! 💙"
|
support my way!! 💙"
|
||||||
>
|
>
|
||||||
<div className="p-4 space-y-4">
|
<div className="p-4 space-y-4">
|
||||||
|
@ -3,7 +3,7 @@ import Image from "next/image";
|
|||||||
|
|
||||||
export default function TitleCard({ card_title }) {
|
export default function TitleCard({ card_title }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 w-full rounded-lg ring-4 ring-werefox-blue-dark dark:ring-werefox-blue bg-werefox-grey-light dark:bg-werefox-grey text-xl text-center text-werefox-blue-dark dark:text-werefox-blue">
|
<div className="p-4 w-full rounded-sm ring-4 ring-werefox-blue-dark dark:ring-werefox-blue bg-werefox-grey-lightest dark:bg-werefox-grey-dark text-xl text-center text-werefox-blue-dark dark:text-werefox-blue">
|
||||||
<span className="animate-bounce align-middle inline-block w-6 h-6">
|
<span className="animate-bounce align-middle inline-block w-6 h-6">
|
||||||
<Image
|
<Image
|
||||||
src="/emoji/pixel_alexis.png"
|
src="/emoji/pixel_alexis.png"
|
||||||
|
29
src/info/components/werefox-card-title.js
Normal file
29
src/info/components/werefox-card-title.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
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-werefox-blue-dark dark:ring-werefox-blue ">
|
||||||
|
<span className="object-contain relative inline-block w-8 h-8 mb-1 align-middle">
|
||||||
|
<Image
|
||||||
|
src={title_emoji["src"]}
|
||||||
|
layout="fill"
|
||||||
|
objectFit="contain"
|
||||||
|
alt={title_emoji["alt"]}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<p className="inline text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
||||||
|
{` ${title}`}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return (
|
||||||
|
<div className="rounded-sm ring-2 ring-werefox-blue-dark dark:ring-werefox-blue">
|
||||||
|
<p className="p-4 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
||||||
|
{title}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -1,26 +1,21 @@
|
|||||||
export default function WerefoxCard({
|
import WCT from "./werefox-card-title";
|
||||||
isTitle,
|
|
||||||
innerText,
|
export default function WerefoxCard({ title_emoji, title, children }) {
|
||||||
children,
|
if (Boolean(title_emoji)) {
|
||||||
}) {
|
|
||||||
if (isTitle) {
|
|
||||||
return (
|
return (
|
||||||
<div className="rounded-lg ring-4 ring-werefox-blue bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="p-4 space-y-4 text-center text-werefox-blue-dark dark:text-werefox-blue rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lightest dark:bg-werefox-grey-dark">
|
||||||
{children}
|
<WCT title={title} title_emoji={title_emoji} />
|
||||||
|
<div className="p-4 space-y-4 rounded-sm ring-2 ring-werefox-blue-dark dark:ring-werefox-blue">
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="p-4 space-y-4 text-center text-werefox-blue-dark dark:text-werefox-blue rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lightest dark:bg-werefox-grey-dark">
|
||||||
<div className="p-2 space-y-2">
|
<WCT title={title} />
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
<div className="p-4 space-y-4 rounded-sm ring-2 ring-werefox-blue-dark dark:ring-werefox-blue">
|
||||||
<p className="p-2 text-center text-md sm:text-lg text-werefox-blue-dark dark:text-werefox-blue">
|
{children}
|
||||||
{innerText}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="p-2 space-y-2 rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -6,6 +6,12 @@
|
|||||||
alt: "The Mastodon logo"
|
alt: "The Mastodon logo"
|
||||||
url_text: "@shadow8t4@vulpine.club"
|
url_text: "@shadow8t4@vulpine.club"
|
||||||
|
|
||||||
|
"Ada's Mastodon":
|
||||||
|
url: "https://masto.werefox.dev/@ada"
|
||||||
|
src: "/emoji/mastodon-logo.png"
|
||||||
|
alt: "The Mastodon logo"
|
||||||
|
url_text: "@ada@masto.werefox.dev"
|
||||||
|
|
||||||
"My Twitter":
|
"My Twitter":
|
||||||
url: "https://twitter.com/alexis_werefox"
|
url: "https://twitter.com/alexis_werefox"
|
||||||
src: "/emoji/twitter-logo.png"
|
src: "/emoji/twitter-logo.png"
|
||||||
|
@ -30,15 +30,15 @@
|
|||||||
src: "/images/alexis_coffee.png"
|
src: "/images/alexis_coffee.png"
|
||||||
alt: "Alexis sipping on some coffee"
|
alt: "Alexis sipping on some coffee"
|
||||||
|
|
||||||
'What is "Werefox Isekai"?':
|
# 'What is "Werefox Isekai"?':
|
||||||
answer: >
|
# answer: >
|
||||||
"Werefox Isekai" is just a silly term I've been using to refer to a series of
|
# "Werefox Isekai" is just a silly term I've been using to refer to a series of
|
||||||
trips I've been planning in order to visit the folks I've met online over the
|
# trips I've been planning in order to visit the folks I've met online over the
|
||||||
past few months/years. I believe my original post on this was "A hot, cute
|
# past few months/years. I believe my original post on this was "A hot, cute
|
||||||
girl from a foreign land falls from the sky and moves in with you temporarily,
|
# 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."
|
# and there's potentially a ton of sexual tension the entire time."
|
||||||
src: "/images/alexis_wink.png"
|
# src: "/images/alexis_wink.png"
|
||||||
alt: "Alexis winking and giving a peace sign"
|
# alt: "Alexis winking and giving a peace sign"
|
||||||
|
|
||||||
"What do you do?":
|
"What do you do?":
|
||||||
answer: >
|
answer: >
|
||||||
@ -50,13 +50,29 @@
|
|||||||
src: "/images/alexis_shrug.png"
|
src: "/images/alexis_shrug.png"
|
||||||
alt: "Alexis shrugging"
|
alt: "Alexis shrugging"
|
||||||
|
|
||||||
"Are you accepting more partners?":
|
'What happened to "Werefox Isekai"?':
|
||||||
answer: >
|
answer: >
|
||||||
Hhaaa,,, Uhh, not at the moment? Anything can happen, though! Just don't
|
"Yeah, so... That was kind of a whole lot, I've been traveling and having folks
|
||||||
make it your main goal to try and date me, yeah? 💙
|
visit for a couple months. I very much need some time to relax and be to myself.
|
||||||
|
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"
|
src: "/images/alexis_coffee.png"
|
||||||
alt: "Alexis sipping on some coffee"
|
alt: "Alexis 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"
|
||||||
|
|
||||||
|
"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"
|
||||||
|
|
||||||
"... Wait, don't I know you?":
|
"... Wait, don't I know you?":
|
||||||
answer: >
|
answer: >
|
||||||
Hey hey, if you're here from knowing me pre-transition, that's cool too.
|
Hey hey, if you're here from knowing me pre-transition, that's cool too.
|
||||||
@ -64,5 +80,5 @@
|
|||||||
person than the one you knew before. Regardless, if you feel like
|
person than the one you knew before. Regardless, if you feel like
|
||||||
reaching out, in most cases I'm willing to catch up. If that's the case,
|
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.
|
your best bets are Twitter DM, e-mail, or a text if you still have my number.
|
||||||
src: "/images/alexis_wink.png"
|
src: "/images/alexis_shrug.png"
|
||||||
alt: "Alexis winking and giving a peace sign"
|
alt: "Alexis shrugging"
|
||||||
|
@ -66,11 +66,11 @@ avie:
|
|||||||
|
|
||||||
being utter disasters and proud"
|
being utter disasters and proud"
|
||||||
|
|
||||||
Elizafox:
|
Dax:
|
||||||
url: "https://vulpine.club/@Elizafox"
|
url: "https://masto.werefox.dev/@Dax"
|
||||||
json: "https://vulpine.club/@Elizafox.json"
|
json: "https://masto.werefox.dev/@Dax.json"
|
||||||
content: |
|
content: |
|
||||||
"I'd just like to interject for a moment. What you're referring to as Alexis, is in fact, Werefox/Alexis, or as I've recently taken to calling her, Werefox plus Alexis. Alexis is not a system unto herself, but rather another free member of a fully functioning plural system made useful by the Ada, Alice, and other vital system members comprising a full plural system as defined by DSM-V."
|
"im love alexis a lot 💚 🐀"
|
||||||
|
|
||||||
plausocks:
|
plausocks:
|
||||||
url: "https://masto.werefox.dev/@plausocks"
|
url: "https://masto.werefox.dev/@plausocks"
|
||||||
@ -78,11 +78,11 @@ plausocks:
|
|||||||
content: |
|
content: |
|
||||||
"*headpats the entire werefox system*"
|
"*headpats the entire werefox system*"
|
||||||
|
|
||||||
Dax:
|
karma:
|
||||||
url: "https://masto.werefox.dev/@Dax"
|
url: "https://awoo.space/@karma"
|
||||||
json: "https://masto.werefox.dev/@Dax.json"
|
json: "https://awoo.space/@karma.json"
|
||||||
content: |
|
content: |
|
||||||
"im love alexis a lot 💚 🐀"
|
"wtf it's not even 7:30 PM why are you at ihop"
|
||||||
|
|
||||||
lindsays:
|
lindsays:
|
||||||
url: "https://hackers.town/@lindsays"
|
url: "https://hackers.town/@lindsays"
|
||||||
|
@ -26,8 +26,9 @@ export default function Contacts({ CONTACTS }) {
|
|||||||
<BasicPage
|
<BasicPage
|
||||||
page_title="Where To Find Me"
|
page_title="Where To Find Me"
|
||||||
card_title={`"Do you have a [Social Media]?"`}
|
card_title={`"Do you have a [Social Media]?"`}
|
||||||
|
page_button_title="Take me back home!"
|
||||||
>
|
>
|
||||||
<WCard innerText="You can find me in quite a few places!">
|
<WCard title="You can find me in quite a few places!">
|
||||||
<CBlock contacts={CONTACTS} />
|
<CBlock contacts={CONTACTS} />
|
||||||
</WCard>
|
</WCard>
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
|
@ -22,7 +22,11 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function FAQ({ FAQ }) {
|
export default function FAQ({ FAQ }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="FAQ" card_title="Frequently Asked Questions!">
|
<BasicPage
|
||||||
|
page_title="FAQ"
|
||||||
|
card_title="Frequently Asked Questions!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
<FBlock faqs={FAQ} />
|
<FBlock faqs={FAQ} />
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -44,8 +44,9 @@ export default function HRT({ startTimes }) {
|
|||||||
<BasicPage
|
<BasicPage
|
||||||
page_title="Alexis Werefox HRT Tracker"
|
page_title="Alexis Werefox HRT Tracker"
|
||||||
card_title="Track my HRT progress!"
|
card_title="Track my HRT progress!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
>
|
>
|
||||||
<WCard innerText={`I'm so glad you're interested!!`}>
|
<WCard title={`I'm so glad you're interested!!`}>
|
||||||
<div className="p-2 sm:text-xl text-lg text-center text-werefox-blue-dark dark:text-werefox-blue grid grid-cols-1 grid-rows-4 gap-2">
|
<div className="p-2 sm:text-xl text-lg text-center text-werefox-blue-dark dark:text-werefox-blue grid grid-cols-1 grid-rows-4 gap-2">
|
||||||
<p>I've been on HRT for:</p>
|
<p>I've been on HRT for:</p>
|
||||||
{Object.keys(timesArray).map((t) => (
|
{Object.keys(timesArray).map((t) => (
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
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() {
|
export async function getStaticProps() {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@ -21,18 +24,37 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Fursona({ FURSONA }) {
|
export default function Fursona({ FURSONA }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title={FURSONA["Fursona"].page_title} card_title={FURSONA["Fursona"].card_title}>
|
<BasicPage
|
||||||
{Object.keys(FURSONA).map((fursona) => (
|
page_title={FURSONA["Fursona"].page_title}
|
||||||
<IDCard
|
card_title={FURSONA["Fursona"].card_title}
|
||||||
key={fursona}
|
page_button_title="Take me back home!"
|
||||||
title={FURSONA[fursona].title}
|
>
|
||||||
info={FURSONA[fursona].info}
|
{Object.keys(FURSONA).map((fursona) => (
|
||||||
src={FURSONA[fursona].src}
|
<IDCard
|
||||||
alt={FURSONA[fursona].alt}
|
key={fursona}
|
||||||
src2={FURSONA[fursona].src2}
|
title={FURSONA[fursona].title}
|
||||||
alt2={FURSONA[fursona].alt2}
|
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>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
import IDCard from "../../../components/identity-card";
|
||||||
|
import IDCardText from "../../../components/identity-card-textbox";
|
||||||
|
import IDCardButton from "../../../components/identity-card-button";
|
||||||
|
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@ -24,16 +26,18 @@ export default function Gender({ GENDER }) {
|
|||||||
<BasicPage
|
<BasicPage
|
||||||
page_title={GENDER["Gender"].page_title}
|
page_title={GENDER["Gender"].page_title}
|
||||||
card_title={GENDER["Gender"].card_title}
|
card_title={GENDER["Gender"].card_title}
|
||||||
|
page_button_title="Take me back home!"
|
||||||
>
|
>
|
||||||
{Object.keys(GENDER).map((gender) => (
|
{Object.keys(GENDER).map((gender) => (
|
||||||
<IDCard
|
<IDCard
|
||||||
key={gender}
|
key={gender}
|
||||||
title={GENDER[gender].title}
|
title={GENDER[gender].title}
|
||||||
info={GENDER[gender].info}
|
|
||||||
url={GENDER[gender].url}
|
|
||||||
src={GENDER[gender].src}
|
src={GENDER[gender].src}
|
||||||
alt={GENDER[gender].alt}
|
alt={GENDER[gender].alt}
|
||||||
/>
|
>
|
||||||
|
<IDCardText info={GENDER[gender].info} />
|
||||||
|
<IDCardButton url={GENDER[gender].url} button_text="Learn More" />
|
||||||
|
</IDCard>
|
||||||
))}
|
))}
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
import IDCard from "../../../components/identity-card";
|
||||||
|
import IDCardText from "../../../components/identity-card-textbox";
|
||||||
|
import IDCardButton from "../../../components/identity-card-button";
|
||||||
|
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@ -24,16 +26,18 @@ export default function Neurodiversity({ NEURO }) {
|
|||||||
<BasicPage
|
<BasicPage
|
||||||
page_title={NEURO["Neuro"].page_title}
|
page_title={NEURO["Neuro"].page_title}
|
||||||
card_title={NEURO["Neuro"].card_title}
|
card_title={NEURO["Neuro"].card_title}
|
||||||
|
page_button_title="Take me back home!"
|
||||||
>
|
>
|
||||||
{Object.keys(NEURO).map((neuro) => (
|
{Object.keys(NEURO).map((neuro) => (
|
||||||
<IDCard
|
<IDCard
|
||||||
key={neuro}
|
key={neuro}
|
||||||
title={NEURO[neuro].title}
|
title={NEURO[neuro].title}
|
||||||
info={NEURO[neuro].info}
|
|
||||||
url={NEURO[neuro].url}
|
|
||||||
src={NEURO[neuro].src}
|
src={NEURO[neuro].src}
|
||||||
alt={NEURO[neuro].alt}
|
alt={NEURO[neuro].alt}
|
||||||
/>
|
>
|
||||||
|
<IDCardText info={NEURO[neuro].info} />
|
||||||
|
<IDCardButton url={NEURO[neuro].url} button_text="Learn More" />
|
||||||
|
</IDCard>
|
||||||
))}
|
))}
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
import IDCard from "../../../components/identity-card";
|
||||||
import PCard from "../../../components/partner-card";
|
import PCard from "../../../components/partner-card";
|
||||||
|
import IDCardText from "../../../components/identity-card-textbox";
|
||||||
|
|
||||||
// An object listing pages folks can visit
|
// An object listing pages folks can visit
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
@ -24,7 +25,11 @@ export async function getStaticProps() {
|
|||||||
export default function Partners({ PARTNERS }) {
|
export default function Partners({ PARTNERS }) {
|
||||||
if (PARTNERS) {
|
if (PARTNERS) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Partners" card_title="Partners!">
|
<BasicPage
|
||||||
|
page_title="Partners"
|
||||||
|
card_title="Partners!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
<IDCard
|
<IDCard
|
||||||
title="My loves!"
|
title="My loves!"
|
||||||
src="/emoji/blue_heart.svg"
|
src="/emoji/blue_heart.svg"
|
||||||
@ -51,11 +56,14 @@ export default function Partners({ PARTNERS }) {
|
|||||||
title="My loves!"
|
title="My loves!"
|
||||||
src="/emoji/blue_heart.svg"
|
src="/emoji/blue_heart.svg"
|
||||||
alt="Blue heart emoji"
|
alt="Blue heart emoji"
|
||||||
info={`Oh! It looks like I don't have any partners at the moment.
|
>
|
||||||
|
<IDCardText
|
||||||
|
info={`Oh! It looks like I don't have any partners at the moment.
|
||||||
|
|
||||||
Oh well!
|
Oh well!
|
||||||
`}
|
`}
|
||||||
></IDCard>
|
/>
|
||||||
|
</IDCard>
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
import IDCard from "../../../components/identity-card";
|
||||||
|
import IDCardText from "../../../components/identity-card-textbox";
|
||||||
|
import IDCardButton from "../../../components/identity-card-button";
|
||||||
|
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@ -24,16 +26,18 @@ export default function Pronouns({ PRONOUNS }) {
|
|||||||
<BasicPage
|
<BasicPage
|
||||||
page_title={PRONOUNS["Pronouns"].page_title}
|
page_title={PRONOUNS["Pronouns"].page_title}
|
||||||
card_title={PRONOUNS["Pronouns"].card_title}
|
card_title={PRONOUNS["Pronouns"].card_title}
|
||||||
|
page_button_title="Take me back home!"
|
||||||
>
|
>
|
||||||
{Object.keys(PRONOUNS).map((pronouns) => (
|
{Object.keys(PRONOUNS).map((pronouns) => (
|
||||||
<IDCard
|
<IDCard
|
||||||
key={pronouns}
|
key={pronouns}
|
||||||
title={PRONOUNS[pronouns].title}
|
title={PRONOUNS[pronouns].title}
|
||||||
info={PRONOUNS[pronouns].info}
|
|
||||||
url={PRONOUNS[pronouns].url}
|
|
||||||
src={PRONOUNS[pronouns].src}
|
src={PRONOUNS[pronouns].src}
|
||||||
alt={PRONOUNS[pronouns].alt}
|
alt={PRONOUNS[pronouns].alt}
|
||||||
/>
|
>
|
||||||
|
<IDCardText info={PRONOUNS[pronouns].info} />
|
||||||
|
<IDCardButton url={PRONOUNS[pronouns].url} button_text="Learn More" />
|
||||||
|
</IDCard>
|
||||||
))}
|
))}
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import BasicPage from "../../../components/basic-page";
|
import BasicPage from "../../../components/basic-page";
|
||||||
import IDCard from "../../../components/identity-card";
|
import IDCard from "../../../components/identity-card";
|
||||||
|
import IDCardText from "../../../components/identity-card-textbox";
|
||||||
|
import IDCardButton from "../../../components/identity-card-button";
|
||||||
|
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@ -31,7 +33,11 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Sexuality({ SEXUALITY, page_title, card_title }) {
|
export default function Sexuality({ SEXUALITY, page_title, card_title }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title={page_title} card_title={card_title}>
|
<BasicPage
|
||||||
|
page_title={page_title}
|
||||||
|
card_title={card_title}
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
{Object.keys(SEXUALITY).map((sexuality) => (
|
{Object.keys(SEXUALITY).map((sexuality) => (
|
||||||
<IDCard
|
<IDCard
|
||||||
key={sexuality}
|
key={sexuality}
|
||||||
@ -40,7 +46,13 @@ export default function Sexuality({ SEXUALITY, page_title, card_title }) {
|
|||||||
url={SEXUALITY[sexuality].url}
|
url={SEXUALITY[sexuality].url}
|
||||||
src={SEXUALITY[sexuality].src}
|
src={SEXUALITY[sexuality].src}
|
||||||
alt={SEXUALITY[sexuality].alt}
|
alt={SEXUALITY[sexuality].alt}
|
||||||
/>
|
>
|
||||||
|
<IDCardText info={SEXUALITY[sexuality].info} />
|
||||||
|
<IDCardButton
|
||||||
|
url={SEXUALITY[sexuality].url}
|
||||||
|
button_text="Learn More"
|
||||||
|
/>
|
||||||
|
</IDCard>
|
||||||
))}
|
))}
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -43,13 +43,13 @@ export default function Home({ IDENTITIES, INTRODUCTION, PAGES, PARTNERS }) {
|
|||||||
|
|
||||||
return (
|
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 Alexis Werefox!">
|
||||||
<WCard innerText="Basic Info">
|
<WCard title="Basic Info">
|
||||||
<IDBlock identities={IDENTITIES} partners={partnerslen} />
|
<IDBlock identities={IDENTITIES} partners={partnerslen} />
|
||||||
</WCard>
|
</WCard>
|
||||||
<WCard innerText="Welcome to my little info site!">
|
<WCard title="Welcome to my little info site!">
|
||||||
<ICard introduction={introdict} />
|
<ICard introduction={introdict} />
|
||||||
</WCard>
|
</WCard>
|
||||||
<WCard innerText="Neat Pages!">
|
<WCard title="Neat Pages!">
|
||||||
<PBlock pages={PAGES} />
|
<PBlock pages={PAGES} />
|
||||||
</WCard>
|
</WCard>
|
||||||
</HomePage>
|
</HomePage>
|
||||||
|
@ -22,7 +22,11 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Services({ PROJECTS }) {
|
export default function Services({ PROJECTS }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Personal Projects" card_title="Some stuff I do!">
|
<BasicPage
|
||||||
|
page_title="Personal Projects"
|
||||||
|
card_title="Some stuff I do!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<PBlock title="Personal Projects" cards={PROJECTS} />
|
<PBlock title="Personal Projects" cards={PROJECTS} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,10 @@ export async function getStaticProps() {
|
|||||||
let OTHER = {};
|
let OTHER = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let fileContent = fs.readFileSync("./data/pages/projects/other.yml", "utf8");
|
let fileContent = fs.readFileSync(
|
||||||
|
"./data/pages/projects/other.yml",
|
||||||
|
"utf8"
|
||||||
|
);
|
||||||
OTHER = yaml.load(fileContent);
|
OTHER = yaml.load(fileContent);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
@ -22,7 +25,12 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Services({ OTHER }) {
|
export default function Services({ OTHER }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Misc Projects" card_title="Some other things I do!" back_url="/projects">
|
<BasicPage
|
||||||
|
page_title="Misc Projects"
|
||||||
|
card_title="Some other things I do!"
|
||||||
|
page_button_title="Take me back!"
|
||||||
|
back_url="/projects"
|
||||||
|
>
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<PBlock title="Miscelaneous Projects" cards={OTHER} />
|
<PBlock title="Miscelaneous Projects" cards={OTHER} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,10 @@ export async function getStaticProps() {
|
|||||||
let PRIVATE = {};
|
let PRIVATE = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let fileContent = fs.readFileSync("./data/pages/projects/private.yml", "utf8");
|
let fileContent = fs.readFileSync(
|
||||||
|
"./data/pages/projects/private.yml",
|
||||||
|
"utf8"
|
||||||
|
);
|
||||||
PRIVATE = yaml.load(fileContent);
|
PRIVATE = yaml.load(fileContent);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
@ -22,7 +25,12 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Services({ PRIVATE }) {
|
export default function Services({ PRIVATE }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Private Services" card_title="Some stuff I host for myself!" back_url="/projects">
|
<BasicPage
|
||||||
|
page_title="Private Services"
|
||||||
|
card_title="Some stuff I host for myself!"
|
||||||
|
page_button_title="Take me back!"
|
||||||
|
back_url="/projects"
|
||||||
|
>
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<PBlock title="Private Services" cards={PRIVATE} />
|
<PBlock title="Private Services" cards={PRIVATE} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,10 @@ export async function getStaticProps() {
|
|||||||
let SERVICES = {};
|
let SERVICES = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let fileContent = fs.readFileSync("./data/pages/projects/services.yml", "utf8");
|
let fileContent = fs.readFileSync(
|
||||||
|
"./data/pages/projects/services.yml",
|
||||||
|
"utf8"
|
||||||
|
);
|
||||||
SERVICES = yaml.load(fileContent);
|
SERVICES = yaml.load(fileContent);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
@ -22,7 +25,12 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Services({ SERVICES }) {
|
export default function Services({ SERVICES }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Werefox Services" card_title="Services I Host!" back_url="/projects">
|
<BasicPage
|
||||||
|
page_title="Werefox Services"
|
||||||
|
card_title="Services I Host!"
|
||||||
|
page_button_title="Take me back!"
|
||||||
|
back_url="/projects"
|
||||||
|
>
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<PBlock title="Services" cards={SERVICES} />
|
<PBlock title="Services" cards={SERVICES} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,10 @@ export async function getStaticProps() {
|
|||||||
let STREAMING = {};
|
let STREAMING = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let fileContent = fs.readFileSync("./data/pages/projects/streaming.yml", "utf8");
|
let fileContent = fs.readFileSync(
|
||||||
|
"./data/pages/projects/streaming.yml",
|
||||||
|
"utf8"
|
||||||
|
);
|
||||||
STREAMING = yaml.load(fileContent);
|
STREAMING = yaml.load(fileContent);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
@ -22,7 +25,12 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Services({ STREAMING }) {
|
export default function Services({ STREAMING }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Streaming Links" card_title="Come watch my streams!" back_url="/projects">
|
<BasicPage
|
||||||
|
page_title="Streaming Links"
|
||||||
|
card_title="Come watch my streams!"
|
||||||
|
page_button_title="Take me back!"
|
||||||
|
back_url="/projects"
|
||||||
|
>
|
||||||
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<PBlock title="Streaming" cards={STREAMING} />
|
<PBlock title="Streaming" cards={STREAMING} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,8 +22,12 @@ export async function getStaticProps() {
|
|||||||
}
|
}
|
||||||
export default function Servers({ SERVERS }) {
|
export default function Servers({ SERVERS }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Servers" card_title="Here are my server specs!">
|
<BasicPage
|
||||||
<WCard innerText="Servers">
|
page_title="Servers"
|
||||||
|
card_title="Here are my server specs!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
|
<WCard title="Servers">
|
||||||
<SBlock servers={SERVERS} />
|
<SBlock servers={SERVERS} />
|
||||||
</WCard>
|
</WCard>
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
|
@ -21,7 +21,11 @@ export async function getStaticProps() {
|
|||||||
|
|
||||||
export default function Support({ SUPPORT }) {
|
export default function Support({ SUPPORT }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Support" card_title="Support Me!">
|
<BasicPage
|
||||||
|
page_title="Support"
|
||||||
|
card_title="Support Me!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
<SBlock support={SUPPORT} />
|
<SBlock support={SUPPORT} />
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -42,9 +42,13 @@ export const getStaticProps = async () => {
|
|||||||
|
|
||||||
export default function Testimonials({ iconUrls, TESTIMONIALS }) {
|
export default function Testimonials({ iconUrls, TESTIMONIALS }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Werefox Testimonials" card_title="Testimonials!">
|
<BasicPage
|
||||||
|
page_title="Werefox Testimonials"
|
||||||
|
card_title="Testimonials!"
|
||||||
|
page_button_title="Take me back home!"
|
||||||
|
>
|
||||||
<WCard
|
<WCard
|
||||||
innerText={`Sometimes, people say some nice things about me. Here are some
|
title={`Sometimes, people say some nice things about me. Here are some
|
||||||
examples!`}
|
examples!`}
|
||||||
>
|
>
|
||||||
<div className="p-2 space-y-4">
|
<div className="p-2 space-y-4">
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 110 KiB |
@ -7,6 +7,11 @@ module.exports = {
|
|||||||
nerd: ["DejaVuSansMono"],
|
nerd: ["DejaVuSansMono"],
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
|
"werefox-cyan": {
|
||||||
|
light: "#AAFFFF",
|
||||||
|
DEFAULT: "#50FFFF",
|
||||||
|
dark: "#008888",
|
||||||
|
},
|
||||||
"werefox-blue": {
|
"werefox-blue": {
|
||||||
light: "#94C2FF",
|
light: "#94C2FF",
|
||||||
DEFAULT: "#75B1FF",
|
DEFAULT: "#75B1FF",
|
||||||
|
Loading…
Reference in New Issue
Block a user