Migrating data from JS to YAML.
This commit is contained in:
parent
0f55c85ac0
commit
042679198a
@ -1,17 +1,16 @@
|
|||||||
import CLink from "./contacts-link";
|
import CLink from "./contacts-link";
|
||||||
import { CONTACTS } from "../js/variables";
|
|
||||||
|
|
||||||
export default function ContactsBlock({}) {
|
export default function ContactsBlock({ contacts }) {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 space-y-4">
|
<div className="p-4 space-y-4">
|
||||||
{Object.keys(CONTACTS).map((contact) => (
|
{Object.keys(contacts).map((contact) => (
|
||||||
<CLink
|
<CLink
|
||||||
key={contact}
|
key={contact}
|
||||||
src={CONTACTS[contact].src}
|
src={contacts[contact].src}
|
||||||
alt={CONTACTS[contact].alt}
|
alt={contacts[contact].alt}
|
||||||
url={CONTACTS[contact].url}
|
url={contacts[contact].url}
|
||||||
description={contact}
|
description={contact}
|
||||||
url_text={CONTACTS[contact].url_text}
|
url_text={contacts[contact].url_text}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
import IDButton from "./identity-button";
|
import IDButton from "./identity-button";
|
||||||
import { IDENTITIES } from "../js/variables";
|
|
||||||
|
|
||||||
export default function IdentityBlock() {
|
export default function IdentityBlock({ identities }) {
|
||||||
return (
|
return (
|
||||||
<nav>
|
<nav>
|
||||||
<div className="grid xl:grid-rows-2 xl:grid-cols-5 sm:grid-rows-3 sm:grid-cols-3 grid-rows-9 grid-cols-1 sm:gap-2 gap-0">
|
<div className="grid xl:grid-rows-2 xl:grid-cols-5 sm:grid-rows-3 sm:grid-cols-3 grid-rows-9 grid-cols-1 sm:gap-2 gap-0">
|
||||||
{Object.keys(IDENTITIES).map((ids) => (
|
{Object.keys(identities).map((ids) => (
|
||||||
<IDButton
|
<IDButton
|
||||||
key={ids}
|
key={ids}
|
||||||
innerText={ids}
|
innerText={ids}
|
||||||
url={IDENTITIES[ids].url}
|
url={identities[ids].url}
|
||||||
locator={IDENTITIES[ids].locator}
|
locator={identities[ids].locator}
|
||||||
imageObj={IDENTITIES[ids].images}
|
imageObj={identities[ids].images}
|
||||||
extraClasses={IDENTITIES[ids].extra_classes}
|
extraClasses={identities[ids].extra_classes}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,7 +17,7 @@ export function renderPossibleURLField(field) {
|
|||||||
if (validURL(field)) {
|
if (validURL(field)) {
|
||||||
return (
|
return (
|
||||||
<Link href={field}>
|
<Link href={field}>
|
||||||
<a className="p-2 text-center overflow-clip overflow-auto ring-2 ring-werefox-grey dark:ring-werefox-grey-darker rounded-lg bg-werefox-grey-lighter dark:bg-werefox-grey-dark hover:text-werefox-blue-dark dark:hover:text-werefox-blue">
|
<a className="p-2 overflow-clip overflow-auto text-center ring-2 ring-werefox-grey dark:ring-werefox-grey-darker rounded-lg bg-werefox-grey-lighter dark:bg-werefox-grey-dark hover:text-werefox-blue-dark dark:hover:text-werefox-blue">
|
||||||
{field}
|
{field}
|
||||||
</a>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
@ -37,6 +37,9 @@ export default function LoveCard({ src, alt, url, fields, bio, user }) {
|
|||||||
user == "Shadow8t4"
|
user == "Shadow8t4"
|
||||||
? "text-werefox-blue-dark dark:text-werefox-blue"
|
? "text-werefox-blue-dark dark:text-werefox-blue"
|
||||||
: "text-werefox-pink-dark dark:text-werefox-pink";
|
: "text-werefox-pink-dark dark:text-werefox-pink";
|
||||||
|
let bioarray = bio.split("\n");
|
||||||
|
bioarray = bioarray.slice(0, bioarray.length - 1);
|
||||||
|
const biodict = Object.assign({}, bioarray);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="rounded-lg min-w-full flex ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
<div className="rounded-lg min-w-full flex ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
||||||
@ -63,14 +66,22 @@ export default function LoveCard({ src, alt, url, fields, bio, user }) {
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<div className="ring-2 ring-werefox-grey dark:ring-werefox-grey-darker rounded-lg p-2 bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="ring-2 ring-werefox-grey dark:ring-werefox-grey-darker rounded-lg p-2 bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
<p className="overflow-auto">
|
<div className="p-2 ring-2 ring-werefox-grey dark:ring-werefox-grey-darker rounded-lg bg-werefox-grey-lighter dark:bg-werefox-grey-dark">
|
||||||
{bio}
|
{Object.keys(biodict).map((bio) => (
|
||||||
<br />
|
<p className="overflow-auto" key={bio}>
|
||||||
{"- "}
|
{biodict[bio] == "" ? <br /> : biodict[bio]}
|
||||||
<Link href={url}>
|
</p>
|
||||||
<a className="hover:text-werefox-blue-dark dark:hover:text-werefox-blue" target="_blank">{`@${user}`}</a>
|
))}
|
||||||
</Link>
|
<p className="overflow-auto">
|
||||||
</p>
|
{"- "}
|
||||||
|
<Link href={url}>
|
||||||
|
<a
|
||||||
|
className="hover:text-werefox-blue-dark dark:hover:text-werefox-blue"
|
||||||
|
target="_blank"
|
||||||
|
>{`@${user}`}</a>
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
import PButton from "./page-button";
|
import PButton from "./page-button";
|
||||||
import { PAGES } from "../js/variables";
|
|
||||||
|
|
||||||
export default function ProjectBlock() {
|
export default function ProjectBlock({ pages }) {
|
||||||
return (
|
return (
|
||||||
<nav>
|
<nav>
|
||||||
<div className="flow space-y-2">
|
<div className="flow space-y-2">
|
||||||
{Object.keys(PAGES).map((page) => (
|
{Object.keys(pages).map((page) => (
|
||||||
<PButton
|
<PButton
|
||||||
key={page}
|
key={page}
|
||||||
title={page}
|
title={page}
|
||||||
images={PAGES[page].images}
|
images={pages[page].images}
|
||||||
url={PAGES[page].url}
|
url={pages[page].url}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,6 +10,9 @@ export default function TestimonialCard({ src, alt, url, innerText, user }) {
|
|||||||
user == "Shadow8t4"
|
user == "Shadow8t4"
|
||||||
? "hover:text-werefox-pink-dark dark:hover:text-werefox-pink"
|
? "hover:text-werefox-pink-dark dark:hover:text-werefox-pink"
|
||||||
: "hover:text-werefox-blue-dark dark:hover:text-werefox-blue";
|
: "hover:text-werefox-blue-dark dark:hover:text-werefox-blue";
|
||||||
|
let testimonialarray = innerText.split("\n");
|
||||||
|
testimonialarray = testimonialarray.slice(0, testimonialarray.length - 1);
|
||||||
|
const testimonialdict = Object.assign({}, testimonialarray);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="rounded-lg min-w-full flex overflow-hidden ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
<div className="rounded-lg min-w-full flex overflow-hidden ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">
|
||||||
@ -25,20 +28,25 @@ export default function TestimonialCard({ src, alt, url, innerText, user }) {
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</Link>{" "}
|
</Link>{" "}
|
||||||
<div
|
<div className="flex flex-5 p-4 items-center justify-center min-h-full">
|
||||||
className={`flex items-center justify-center animate-wiggle flex-5 p-4 sm:text-lg text-xs text-center min-h-full ${isMe}`}
|
<div
|
||||||
>
|
className={`animate-wiggle sm:text-lg text-xs text-center ${isMe}`}
|
||||||
<p>
|
>
|
||||||
{innerText}
|
{Object.keys(testimonialdict).map((t) => (
|
||||||
<br />
|
<p className="overflow-auto" key={t}>
|
||||||
{"- "}
|
{testimonialdict[t] == "" ? <br /> : testimonialdict[t]}
|
||||||
<Link href={url}>
|
</p>
|
||||||
<a
|
))}
|
||||||
target="_blank"
|
<p>
|
||||||
className={`transition ${isMeLink}`}
|
{"- "}
|
||||||
>{`@${user}`}</a>
|
<Link href={url}>
|
||||||
</Link>
|
<a
|
||||||
</p>
|
target="_blank"
|
||||||
|
className={`transition ${isMeLink}`}
|
||||||
|
>{`@${user}`}</a>
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
25
src/info/data/contacts.yml
Normal file
25
src/info/data/contacts.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
--- # Contacts YAML
|
||||||
|
|
||||||
|
"My public Mastodon":
|
||||||
|
url: "https://vulpine.club/@shadow8t4"
|
||||||
|
src: "/emoji/mastodon-logo.png"
|
||||||
|
alt: "The Mastodon logo"
|
||||||
|
url_text: "@shadow8t4@vulpine.club"
|
||||||
|
|
||||||
|
"My Twitter":
|
||||||
|
url: "https://twitter.com/alexis_werefox"
|
||||||
|
src: "/emoji/twitter-logo.png"
|
||||||
|
alt: "The Twitter logo"
|
||||||
|
url_text: "@alexis_werefox"
|
||||||
|
|
||||||
|
"My Twitch":
|
||||||
|
url: "https://twitch.tv/alexis_werefox"
|
||||||
|
src: "/emoji/twitch-logo.png"
|
||||||
|
alt: "The Twitch logo"
|
||||||
|
url_text: "@Alexis_Werefox"
|
||||||
|
|
||||||
|
"My e-mail":
|
||||||
|
url: "mailto:adh9694@gmail.com"
|
||||||
|
src: "/emoji/inbox.svg"
|
||||||
|
alt: "An inbox emoji"
|
||||||
|
url_text: "adh9694@gmail.com"
|
37
src/info/data/faq.yml
Normal file
37
src/info/data/faq.yml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
--- # FAQ YAML
|
||||||
|
|
||||||
|
q1:
|
||||||
|
question: "So is Werefox like a species or...?"
|
||||||
|
answer: >
|
||||||
|
That's a good question! No, my fursona's full name is Alexis Werefox,
|
||||||
|
so Werefox is just a last name. I am just a fox!
|
||||||
|
src: "/images/alexis_heart.png"
|
||||||
|
alt: "Alexis giving a heart emoji"
|
||||||
|
|
||||||
|
q2:
|
||||||
|
question: "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"
|
||||||
|
|
||||||
|
q3:
|
||||||
|
question: "How do I get those Xenia stickers?"
|
||||||
|
answer: >
|
||||||
|
Yeah, about that. So, I've made a few posts about this, but when
|
||||||
|
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"
|
||||||
|
|
||||||
|
q4:
|
||||||
|
question: "What do you do?"
|
||||||
|
answer: >
|
||||||
|
Lots of things! Lately, though, I've been focusing on myself and my
|
||||||
|
transition. I could use some financial support (since I'm currently
|
||||||
|
unemployed) if you're feeling up to it and can afford it! If you want to
|
||||||
|
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"
|
59
src/info/data/identities.yml
Normal file
59
src/info/data/identities.yml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
--- # Identity YAML
|
||||||
|
|
||||||
|
"26":
|
||||||
|
url: ""
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/18_plus.svg", alt: "Over 18 emoji" }
|
||||||
|
extra_classes: "pointer-events-none"
|
||||||
|
|
||||||
|
"Trans-femme":
|
||||||
|
url: "/identities/gender"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/transgender_flag.svg", alt: "Transgender flag emoji" }
|
||||||
|
- { src: "/emoji/female_symbol.svg", alt: "Female symbol emoji" }
|
||||||
|
extra_classes: "xl:pt-1 xl:align-text-bottom xl:text-sm xl:min-h-full"
|
||||||
|
|
||||||
|
"She/Her":
|
||||||
|
url: "/identities/pronouns"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/speech_bubble_left.svg", alt: "A speech bubble emoji" }
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
Polyam:
|
||||||
|
url: "/identities/sexuality"
|
||||||
|
locator: "Polyam"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/polyamory_flag.svg", alt: "Polyamory flag emoji" }
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
Pansexual:
|
||||||
|
url: "/identities/sexuality"
|
||||||
|
locator: "Pansexual"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/pansexual_flag.svg", alt: "Pansexual flag emoji" }
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
Lesbian:
|
||||||
|
url: "/identities/sexuality"
|
||||||
|
locator: "Lesbian"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/lesbian_flag.svg", alt: "Lesbian flag emoji" }
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
"Taken(1)":
|
||||||
|
url: "/identities/partners"
|
||||||
|
images: [{ src: "/emoji/blue_heart.svg", alt: "Blue heart emoji" }]
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
ADHD:
|
||||||
|
url: "/identities/neuro"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/neurodiversity.svg", alt: "Neurodiversity symbol emoji" }
|
||||||
|
extra_classes: ""
|
||||||
|
|
||||||
|
"Fox witch":
|
||||||
|
url: "/identities/fursona"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/fox.svg", alt: "Fox emoji" }
|
||||||
|
- { src: "/emoji/magic_wand.svg", alt: "Magic wand emoji" }
|
||||||
|
extra_classes: "xl:pt-1 xl:align-text-bottom xl:text-sm xl:min-h-full"
|
31
src/info/data/pages.yml
Normal file
31
src/info/data/pages.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
--- # Pages YAML
|
||||||
|
|
||||||
|
"Stuff I do!":
|
||||||
|
url: "/projects"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/crt_prompt.svg", alt: "CRT prompt emoji" }
|
||||||
|
|
||||||
|
"See Testimonials!":
|
||||||
|
url: "/testimonials"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/awoo.svg", alt: "Awoo emoji" }
|
||||||
|
|
||||||
|
"HRT Tracker!":
|
||||||
|
url: "/hrt"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/trans_heart.png", alt: "Transgender heart emoji" }
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
url: "/faq"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/red_question_mark.svg", alt: "Red question mark emoji" }
|
||||||
|
|
||||||
|
Servers:
|
||||||
|
url: "/servers"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/computer.svg", alt: "Computer emoji" }
|
||||||
|
|
||||||
|
"Support Me?":
|
||||||
|
url: "/support"
|
||||||
|
images:
|
||||||
|
- { src: "/emoji/green_money.svg", alt: "Green money emoji" }
|
27
src/info/data/partners.yml
Normal file
27
src/info/data/partners.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
--- # Partners YAML
|
||||||
|
|
||||||
|
Gumby:
|
||||||
|
url: "https://puppy.cafe/@Gumby"
|
||||||
|
avi: "/images/gumby.jpeg"
|
||||||
|
fields:
|
||||||
|
Pronouns: "She/They/It"
|
||||||
|
Gallery: "vsco.co/the-goon"
|
||||||
|
"Ko-fi": "ko-fi.com/gumbyrat"
|
||||||
|
Music: "https://soundcloud.com/oorrggaanniissmm"
|
||||||
|
bio: |
|
||||||
|
tiny trans rat
|
||||||
|
21
|
||||||
|
Demigirl
|
||||||
|
ND
|
||||||
|
Hapa/white
|
||||||
|
I’ve got a bad brain :(
|
||||||
|
ADHD
|
||||||
|
Makes Vaporwave, Noise, and plays synths
|
||||||
|
Photographer
|
||||||
|
|
||||||
|
💙Alexis @alexis
|
||||||
|
“gumby good”
|
||||||
|
|
||||||
|
ko-fi.com/gumbyrat
|
||||||
|
CashApp: $GumbyRat
|
||||||
|
🔞
|
84
src/info/data/testimonials.yml
Normal file
84
src/info/data/testimonials.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
--- # Testimonial YAML
|
||||||
|
|
||||||
|
colabunny:
|
||||||
|
json: "https://yiff.life/@colabunny.json"
|
||||||
|
url: "https://yiff.life/@colabunny"
|
||||||
|
content: |
|
||||||
|
"please stay your jokes are funny and smart"
|
||||||
|
|
||||||
|
ElfLord:
|
||||||
|
url: "https://freedom.horse/@ElfLord"
|
||||||
|
json: "https://freedom.horse/@ElfLord.json"
|
||||||
|
content: |
|
||||||
|
"Someday I'm gonna visit you in Texas, and when I get there, I'm going to realize you don't live in Texas at all, and I'm in the wrong state"
|
||||||
|
|
||||||
|
Decimal:
|
||||||
|
url: "https://plush.city/@Decimal"
|
||||||
|
json: "https://plush.city/@Decimal.json"
|
||||||
|
content: |
|
||||||
|
"I will appreciate the heck out of you any day"
|
||||||
|
|
||||||
|
Drako_Fenris:
|
||||||
|
url: "https://yiff.life/@Drako_Fenris"
|
||||||
|
json: "https://yiff.life/@Drako_Fenris.json"
|
||||||
|
content: |
|
||||||
|
"[Alexis' future wife] lives in the ether yet to be revealed. she awaits the day her big tiddie goth gf rides in on her unicorn and rescues her."
|
||||||
|
|
||||||
|
"00dani":
|
||||||
|
url: "https://vulpine.club/@00dani"
|
||||||
|
json: "https://vulpine.club/@00dani.json"
|
||||||
|
content: |
|
||||||
|
"*falls in love with you* haha whoopsies 😳"
|
||||||
|
|
||||||
|
Gumby:
|
||||||
|
url: "https://puppy.cafe/@Gumby"
|
||||||
|
json: "https://puppy.cafe/@Gumby.json"
|
||||||
|
content: |
|
||||||
|
"im love alexis a lot 💚 🐀"
|
||||||
|
|
||||||
|
AshBunny:
|
||||||
|
url: "https://vulpine.club/@AshBunny"
|
||||||
|
json: "https://vulpine.club/@AshBunny.json"
|
||||||
|
content: |
|
||||||
|
"heck. I don't think I can take all of this support."
|
||||||
|
|
||||||
|
heatherhorns:
|
||||||
|
url: "https://plush.city/@heatherhorns"
|
||||||
|
json: "https://plush.city/@heatherhorns.json"
|
||||||
|
content: |
|
||||||
|
";~;
|
||||||
|
|
||||||
|
gpsd gosh"
|
||||||
|
|
||||||
|
MutoShack:
|
||||||
|
url: "https://functional.cafe/@MutoShack"
|
||||||
|
json: "https://functional.cafe/@MutoShack.json"
|
||||||
|
content: |
|
||||||
|
"yess w'all say nice things! usually "alexis is the good" and "alexis is the gay"
|
||||||
|
|
||||||
|
because it is the truth"
|
||||||
|
|
||||||
|
immychan:
|
||||||
|
url: "https://antabaka.me/@immychan"
|
||||||
|
json: "https://antabaka.me/@immychan.json"
|
||||||
|
content: |
|
||||||
|
"Oh damn you're cute 😳"
|
||||||
|
|
||||||
|
nautilee:
|
||||||
|
url: "https://dragon.style/@nautilee"
|
||||||
|
json: "https://dragon.style/@nautilee.json"
|
||||||
|
content: |
|
||||||
|
"...how are you so goshdarn cute"
|
||||||
|
|
||||||
|
holly:
|
||||||
|
url: "https://lotor.tech/users/holly"
|
||||||
|
json: "https://lotor.tech/users/holly.json"
|
||||||
|
content: |
|
||||||
|
"wait there's still an opportunity to be in [the Testimonials page]?"
|
||||||
|
|
||||||
|
lindsays:
|
||||||
|
url: "https://hackers.town/@lindsays"
|
||||||
|
json: "https://hackers.town/@lindsays.json"
|
||||||
|
content: |
|
||||||
|
"@alexis :
|
||||||
|
Absolutely just as much of a walking, talking shitpost as she is online. Also incredibly gay incredibly girl."
|
@ -1,222 +1,3 @@
|
|||||||
// An object listing my different identity aspects
|
|
||||||
|
|
||||||
export const IDENTITIES = {
|
|
||||||
26: {
|
|
||||||
url: "",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/18_plus.svg",
|
|
||||||
alt: "Over 18 emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "pointer-events-none",
|
|
||||||
},
|
|
||||||
"Trans-femme": {
|
|
||||||
url: "/identities/gender",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/transgender_flag.svg",
|
|
||||||
alt: "Transgender flag emoji",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "/emoji/female_symbol.svg",
|
|
||||||
alt: "Female symbol emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "xl:pt-1 xl:align-text-bottom xl:text-sm xl:min-h-full",
|
|
||||||
},
|
|
||||||
"She/Her": {
|
|
||||||
url: "/identities/pronouns",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/speech_bubble_left.svg",
|
|
||||||
alt: "A speech bubble emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
Polyam: {
|
|
||||||
url: "/identities/sexuality",
|
|
||||||
locator: "Polyam",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/polyamory_flag.svg",
|
|
||||||
alt: "Polyamory flag emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
Pansexual: {
|
|
||||||
url: "/identities/sexuality",
|
|
||||||
locator: "Pansexual",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/pansexual_flag.svg",
|
|
||||||
alt: "Pansexual flag emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
Lesbian: {
|
|
||||||
url: "/identities/sexuality",
|
|
||||||
locator: "Lesbian",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/lesbian_flag.svg",
|
|
||||||
alt: "Lesbian flag emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
"Taken(1)": {
|
|
||||||
url: "/identities/partners",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/blue_heart.svg",
|
|
||||||
alt: "Blue heart emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
ADHD: {
|
|
||||||
url: "/identities/neuro",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/neurodiversity.svg",
|
|
||||||
alt: "Neurodiversity symbol emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "",
|
|
||||||
},
|
|
||||||
"Fox witch": {
|
|
||||||
url: "/identities/fursona",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/fox.svg",
|
|
||||||
alt: "Fox emoji",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "/emoji/magic_wand.svg",
|
|
||||||
alt: "Magic wand emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
extra_classes: "xl:pt-1 xl:align-text-bottom xl:text-sm xl:min-h-full",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// An object listing pages folks can visit
|
|
||||||
|
|
||||||
export const PAGES = {
|
|
||||||
"Stuff I do!": {
|
|
||||||
url: "/projects",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/crt_prompt.svg",
|
|
||||||
alt: "CRT prompt emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
"See Testimonials!": {
|
|
||||||
url: "/testimonials",
|
|
||||||
images: [{ src: "/emoji/awoo.svg", alt: "Awoo emoji" }],
|
|
||||||
},
|
|
||||||
"HRT Tracker!": {
|
|
||||||
url: "/hrt",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/trans_heart.png",
|
|
||||||
alt: "Transgender heart emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
FAQ: {
|
|
||||||
url: "/faq",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/red_question_mark.svg",
|
|
||||||
alt: "Red question mark emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
Servers: {
|
|
||||||
url: "/servers",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/computer.svg",
|
|
||||||
alt: "Computer emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
"Support Me?": {
|
|
||||||
url: "/support",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
src: "/emoji/green_money.svg",
|
|
||||||
alt: "Green money emoji",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// An object listing pages folks can visit
|
|
||||||
|
|
||||||
export const CONTACTS = {
|
|
||||||
"My public Mastodon": {
|
|
||||||
url: "https://vulpine.club/@shadow8t4",
|
|
||||||
src: "/emoji/mastodon-logo.png",
|
|
||||||
alt: "The Mastodon logo",
|
|
||||||
url_text: "@shadow8t4@vulpine.club",
|
|
||||||
},
|
|
||||||
"My Twitter": {
|
|
||||||
url: "https://twitter.com/alexis_werefox",
|
|
||||||
src: "/emoji/twitter-logo.png",
|
|
||||||
alt: "The Twitter logo",
|
|
||||||
url_text: "@alexis_werefox",
|
|
||||||
},
|
|
||||||
"My Twitch": {
|
|
||||||
url: "https://twitch.tv/alexis_werefox",
|
|
||||||
src: "/emoji/twitch-logo.png",
|
|
||||||
alt: "The Twitch logo",
|
|
||||||
url_text: "@Alexis_Werefox",
|
|
||||||
},
|
|
||||||
"My e-mail": {
|
|
||||||
url: "mailto:adh9694@gmail.com",
|
|
||||||
src: "/emoji/inbox.svg",
|
|
||||||
alt: "An inbox emoji",
|
|
||||||
url_text: "adh9694@gmail.com",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// Use this to list out partners on the partners page. >w>
|
|
||||||
|
|
||||||
export const PARTNERS = {
|
|
||||||
Gumby: {
|
|
||||||
url: "https://puppy.cafe/@Gumby",
|
|
||||||
avi: "/images/gumby.jpeg",
|
|
||||||
fields: {
|
|
||||||
Pronouns: "She/They/It",
|
|
||||||
Gallery: "vsco.co/the-goon",
|
|
||||||
"Ko-fi": "ko-fi.com/gumbyrat",
|
|
||||||
Music: "https://soundcloud.com/oorrggaanniissmm",
|
|
||||||
},
|
|
||||||
bio: `tiny trans rat
|
|
||||||
21
|
|
||||||
Demigirl
|
|
||||||
ND
|
|
||||||
Hapa/white
|
|
||||||
I’ve got a bad brain :(
|
|
||||||
Makes Vaporwave, Noise, and plays synths
|
|
||||||
Photographer
|
|
||||||
|
|
||||||
💙Alexis @shadow8t4
|
|
||||||
“gumby good”
|
|
||||||
|
|
||||||
ko-fi.com/gumbyrat
|
|
||||||
CashApp: $GumbyRat
|
|
||||||
🔞`,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// This is where you put the testimonial users' info
|
// This is where you put the testimonial users' info
|
||||||
|
|
||||||
export const TESTIMONIALS = {
|
export const TESTIMONIALS = {
|
||||||
|
11730
src/info/package-lock.json
generated
11730
src/info/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -10,12 +10,14 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "^10.2.5",
|
"autoprefixer": "^10.2.5",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"foo": "^0.0.7",
|
"foo": "^1.0.0",
|
||||||
"next": "10.1.3",
|
"js-yaml": "^4.1.0",
|
||||||
|
"next": "^10.2.3",
|
||||||
|
"npm": "^7.17.0",
|
||||||
"postcss": "^8.2.13",
|
"postcss": "^8.2.13",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-dom": "17.0.2",
|
"react-dom": "17.0.2",
|
||||||
"react-iframe": "^1.8.0",
|
"react-iframe": "^1.8.0",
|
||||||
"tailwindcss": "^2.1.2"
|
"tailwindcss": "^2.0.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,33 @@ import BasicPage from "../../components/basic-page";
|
|||||||
import WCard from "../../components/werefox-card";
|
import WCard from "../../components/werefox-card";
|
||||||
import CBlock from "../../components/contacts-block";
|
import CBlock from "../../components/contacts-block";
|
||||||
|
|
||||||
export default function Contacts() {
|
// An object listing pages folks can visit
|
||||||
|
export async function getStaticProps() {
|
||||||
|
const fs = require("fs");
|
||||||
|
const yaml = require("js-yaml");
|
||||||
|
let CONTACTS = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const fileContent = fs.readFileSync("./data/contacts.yml", "utf8");
|
||||||
|
CONTACTS = yaml.load(fileContent);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
CONTACTS,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Contacts({ CONTACTS }) {
|
||||||
return (
|
return (
|
||||||
<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]?"`}
|
||||||
>
|
>
|
||||||
<WCard innerText="You can find me in quite a few places!">
|
<WCard innerText="You can find me in quite a few places!">
|
||||||
<CBlock />
|
<CBlock contacts={CONTACTS} />
|
||||||
</WCard>
|
</WCard>
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -1,10 +1,29 @@
|
|||||||
import BasicPage from "../../components/basic-page";
|
import BasicPage from "../../components/basic-page";
|
||||||
import FBlock from "../../components/faq-block";
|
import FBlock from "../../components/faq-block";
|
||||||
|
|
||||||
export default function FAQ() {
|
// An object listing pages folks can visit
|
||||||
|
export async function getStaticProps() {
|
||||||
|
const fs = require("fs");
|
||||||
|
const yaml = require("js-yaml");
|
||||||
|
let FAQ = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
let fileContent = fs.readFileSync("./data/faq.yml", "utf8");
|
||||||
|
FAQ = yaml.load(fileContent);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
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!">
|
||||||
<FBlock />
|
<FBlock faq={FAQ} />
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,27 @@
|
|||||||
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 LCard from "../../../components/love-card";
|
import LCard from "../../../components/love-card";
|
||||||
import { PARTNERS } from "../../../js/variables";
|
|
||||||
|
|
||||||
export default function Partners() {
|
// An object listing pages folks can visit
|
||||||
|
export async function getStaticProps() {
|
||||||
|
const fs = require("fs");
|
||||||
|
const yaml = require("js-yaml");
|
||||||
|
let PARTNERS = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
let fileContent = fs.readFileSync("./data/partners.yml", "utf8");
|
||||||
|
PARTNERS = yaml.load(fileContent);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
PARTNERS,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Partners({ PARTNERS }) {
|
||||||
if (Object.keys(PARTNERS).length) {
|
if (Object.keys(PARTNERS).length) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Partners" card_title="Partners!">
|
<BasicPage page_title="Partners" card_title="Partners!">
|
||||||
|
@ -3,7 +3,30 @@ import IDBlock from "../components/identity-block";
|
|||||||
import WCard from "../components/werefox-card";
|
import WCard from "../components/werefox-card";
|
||||||
import PBlock from "../components/page-block";
|
import PBlock from "../components/page-block";
|
||||||
|
|
||||||
export default function Home() {
|
// An object listing pages folks can visit
|
||||||
|
export async function getStaticProps() {
|
||||||
|
const fs = require("fs");
|
||||||
|
const yaml = require("js-yaml");
|
||||||
|
let IDENTITIES = {};
|
||||||
|
let PAGES = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
let fileContent = fs.readFileSync("./data/identities.yml", "utf8");
|
||||||
|
IDENTITIES = yaml.load(fileContent);
|
||||||
|
fileContent = fs.readFileSync("./data/pages.yml", "utf8");
|
||||||
|
PAGES = yaml.load(fileContent);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
IDENTITIES,
|
||||||
|
PAGES,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Home({ IDENTITIES, PAGES }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage
|
<BasicPage
|
||||||
is_home="true"
|
is_home="true"
|
||||||
@ -11,7 +34,7 @@ export default function Home() {
|
|||||||
card_title="Hi! I'm Alexis Werefox!"
|
card_title="Hi! I'm Alexis Werefox!"
|
||||||
>
|
>
|
||||||
<WCard innerText="Basic Info">
|
<WCard innerText="Basic Info">
|
||||||
<IDBlock />
|
<IDBlock identities={IDENTITIES} />
|
||||||
</WCard>
|
</WCard>
|
||||||
<WCard innerText="Welcome to my little info site!">
|
<WCard innerText="Welcome to my little info site!">
|
||||||
<p className="p-4 text-lg text-center text-werefox-blue-dark dark:text-werefox-blue">
|
<p className="p-4 text-lg text-center text-werefox-blue-dark dark:text-werefox-blue">
|
||||||
@ -31,7 +54,7 @@ export default function Home() {
|
|||||||
</p>
|
</p>
|
||||||
</WCard>
|
</WCard>
|
||||||
<WCard innerText="Neat Pages!">
|
<WCard innerText="Neat Pages!">
|
||||||
<PBlock />
|
<PBlock pages={PAGES} />
|
||||||
</WCard>
|
</WCard>
|
||||||
</BasicPage>
|
</BasicPage>
|
||||||
);
|
);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import BasicPage from "../../components/basic-page";
|
import BasicPage from "../../components/basic-page";
|
||||||
import WCard from "../../components/werefox-card";
|
import WCard from "../../components/werefox-card";
|
||||||
import TCard from "../../components/testimonial-card";
|
import TCard from "../../components/testimonial-card";
|
||||||
import { TESTIMONIALS } from "../../js/variables";
|
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
|
||||||
// Async functions to grab user avatars server-side
|
// Async functions to grab user avatars server-side
|
||||||
@ -16,6 +15,16 @@ export const getIcon = async ({ json, name }) =>
|
|||||||
);
|
);
|
||||||
|
|
||||||
export const getStaticProps = async () => {
|
export const getStaticProps = async () => {
|
||||||
|
const fs = require("fs");
|
||||||
|
const yaml = require("js-yaml");
|
||||||
|
let TESTIMONIALS = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
let fileContent = fs.readFileSync("./data/testimonials.yml", "utf8");
|
||||||
|
TESTIMONIALS = yaml.load(fileContent);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
const promises = Object.entries(TESTIMONIALS).map(([name, { json }]) =>
|
const promises = Object.entries(TESTIMONIALS).map(([name, { json }]) =>
|
||||||
getIcon({ name, json })
|
getIcon({ name, json })
|
||||||
);
|
);
|
||||||
@ -26,11 +35,12 @@ export const getStaticProps = async () => {
|
|||||||
(acc, [name, url]) => ({ ...acc, [name]: url }),
|
(acc, [name, url]) => ({ ...acc, [name]: url }),
|
||||||
{}
|
{}
|
||||||
),
|
),
|
||||||
|
TESTIMONIALS,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function Testimonials({ iconUrls }) {
|
export default function Testimonials({ iconUrls, TESTIMONIALS }) {
|
||||||
return (
|
return (
|
||||||
<BasicPage page_title="Werefox Testimonials" card_title="Testimonials!">
|
<BasicPage page_title="Werefox Testimonials" card_title="Testimonials!">
|
||||||
<WCard
|
<WCard
|
||||||
|
3808
src/info/yarn.lock
3808
src/info/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user