Migrated all of the current data to seperate YAML files to be read from at build time.

This commit is contained in:
Alexis Werefox 2021-06-11 08:45:19 +00:00
parent 042679198a
commit 57d03f2542
14 changed files with 380 additions and 388 deletions

View File

@ -1,13 +1,12 @@
import { SERVERS } from "../js/variables";
import SCard from "./server-card";
import Link from "next/link";
export default function ServerBlock({}) {
export default function ServerBlock({ servers }) {
return (
<div className="p-4 w-full inline-flow align-middle justify-center space-y-4">
<p className="w-full text-lg text-center text-werefox-blue-dark dark:text-werefox-blue">
All the stuff I run uses the following server machines with reverse
SSH connections to a{" "}
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"
@ -18,14 +17,14 @@ export default function ServerBlock({}) {
</Link>
{"."}
</p>
{Object.keys(SERVERS).map((server) => (
{Object.keys(servers).map((server) => (
<SCard
server={server}
model={SERVERS[server].model}
cpu={SERVERS[server].cpu}
gpu={SERVERS[server].gpu}
ram={SERVERS[server].ram}
os={SERVERS[server].os}
model={servers[server].model}
cpu={servers[server].cpu}
gpu={servers[server].gpu}
ram={servers[server].ram}
os={servers[server].os}
/>
))}
</div>

19
src/info/data/other.yml Normal file
View File

@ -0,0 +1,19 @@
--- # Other YAML
"Valentine's Day Letter":
url: "https://letter.werefox.dev"
new_tab: true
src: "/emoji/red_heart.svg"
alt: "Red heart emoji"
description: >
Here's a little treat I put together for Valentine's Day one year, and I decided
to just keep it up all year. Feel free to take a look if you ever need a little pick-me-up. 💙
Music:
url: "https://soundcloud.com/alexis-werefox"
new_tab: true
src: "/emoji/studio_microphone.svg"
alt: "Microphone emoji"
description: >
*Nervous sweating* Heh! Sometimes I write some music!? You're free to take a
listen if you want! Let me know what you think! It's usually based on my poetry.

60
src/info/data/private.yml Normal file
View File

@ -0,0 +1,60 @@
--- # Private YAML
"Pi-hole":
url: "https://pi-hole.net/"
new_tab: true
src: "/emoji/pi_hole_logo.svg"
alt: "The Pi-hole logo"
description: >
Pi-hole is a Linux network-level advertisement and Internet tracker blocking
application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on
a private network. It is designed for use on embedded devices with network capability, such
as the Raspberry Pi, but it can be used on other machines running Linux, including cloud
implementations.
Wireguard:
url: "https://www.wireguard.com/"
new_tab: true
src: "/emoji/wireguard_logo.png"
alt: "The Wiregaurd logo"
description: >
WireGuard is a communication protocol and free and open-source software that
implements encrypted virtual private networks, and was designed with the goals of ease of
use, high speed performance, and low attack surface. It aims for better performance and
more power-saving than the IPsec and OpenVPN tunneling protocols. I use this for access
to my home network outside of being at home, and for access to #thetubes.
Nextcloud:
url: "https://nextcloud.com/"
new_tab: true
src: "/emoji/nextcloud_logo.png"
alt: "The Nextcloud logo"
description: >
Nextcloud is a suite of client-server software for creating and using file
hosting services. It is enterprise-ready with comprehensive support options. Free and
open-source means that anyone is allowed to install and operate it on their own private
server devices.
Wikijs:
url: "https://js.wiki/"
new_tab: true
src: "/emoji/wikijs_logo.svg"
alt: "The Wiki.js logo"
description: >
A modern and powerful wiki app built on Node.js
Navidrome:
url: "https://github.com/navidrome/navidrome"
new_tab: true
src: "/emoji/navidrome_logo.png"
alt: "The Navidrome logo"
description: >
🎧☁️ Navidrome is a Modern Music Server and Streamer compatible with Subsonic/Airsonic
Kanboard:
url: "https://kanboard.org/"
new_tab: true
src: "/emoji/kanboard_logo.svg"
alt: "The Kanboard logo"
description: >
Kanboard is project management software that focuses on the Kanban methodology.

View File

@ -0,0 +1,63 @@
--- # Projects YAML
Services:
url: "/projects/services"
src: "/emoji/crt_blue_screen.svg"
alt: "A CRT blue screen emoji"
description: >
Here is a list of some of the services I host.
Some of them, because a few I keep to just myself.
Streaming:
url: "/projects/streaming"
src: "/emoji/twitch-logo.png"
alt: "Twitch logo"
description: >
I stream regularly now! Mostly Beat Saber workouts.
If you're interested in that, here are some associated links!
Poetry:
url: "https://write.as/a-letter-to-the-void"
new_tab: true
src: "/emoji/pen.svg"
alt: "Pen emoji"
description: >
Sometimes, I write poetry. It's not always the
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
src: "/emoji/laptop.svg"
alt: "Laptop emoji"
description: >
Much like this site, sometimes I program things!
Gotta at least try and put that Comp. Sci. degree to good use!
"Non-public Stuff":
url: "/projects/private"
src: "/emoji/no_entry.svg"
alt: "No entry emoji"
description: >
Here are some other things that I host for myself,
some of these can be accessed on the internet, but I only give
myself login access, and I have no plans on giving access to the
public.
"Other Stuff":
url: "/projects/other"
src: "/emoji/asterisk.svg"
alt: "Asterisk emoji"
description: >
Here are just some other little things I've done
that don't really fit in any specific category.

22
src/info/data/servers.yml Normal file
View File

@ -0,0 +1,22 @@
--- # Servers YAML
"Intel NUC":
model: "8i5BEH"
cpu: "Intel i5 8529U eight-core @2.3-3.8Ghz"
gpu: "Intel Iris Plus Graphics 655"
ram: "16 Gb @2400Mhz"
os: "Ubuntu Server 20.04"
"Raspberry Pi 4 (x2)":
model: "B Rev 1.4"
cpu: "BCM2835 four-core @1.5Ghz"
gpu: "N/A"
ram: "8 Gb"
os: "Ubuntu Server 20.04"
"ASUS MINIPC":
model: "PB50 0601"
cpu: "AMD Ryzen 5 3550H eight-core @2.1-3.7GHz"
gpu: "AMD Radeon Vega 8 Graphics"
ram: "32 Gb"
os: "Ubuntu Server 20.10"

View File

@ -0,0 +1,66 @@
--- # Services YAML
Mastodon:
url: "https://masto.werefox.dev/about/"
new_tab: true
src: "/emoji/mastodon-logo.png"
alt: "The Mastodon logo"
description: >
Mastodon is an online, self-hosted social media, and social networking service.
It allows anyone to host their own server node in the network, and its various separately
operated user bases are federated across many different servers.
Pinafore:
url: "https://pina.werefox.dev/"
new_tab: true
src: "/emoji/pinafore_logo.svg"
alt: "The Pinafore logo"
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
src: "/emoji/peertube_logo.svg"
alt: "The PeerTube logo"
description: >
PeerTube is a free and open-source, decentralized, federated video platform
powered by ActivityPub and WebTorrent, that uses peer-to-peer technology to reduce load on
individual servers when viewing videos.
Element:
url: "https://elem.werefox.dev/"
new_tab: true
src: "/emoji/element_logo.svg"
alt: "The Element logo"
description: >
Element (previously Riot) is an all-in-one secure chat app for teams,
friends and organisations. Keeps conversations in your control, safe from data-mining
and ads. Talk to everyone through the open global Matrix network, protected by proper
end-to-end encryption. (additionally, I host a Matrix server at matrix.werefox.dev)
Gitea:
url: "https://gitea.werefox.dev/"
new_tab: true
src: "/emoji/gitea_logo.svg"
alt: "The Gitea logo"
description: >
A painless self-hosted Git service. Gitea is a community managed
lightweight code hosting solution written in Go. It is published under the MIT license.

View File

@ -0,0 +1,21 @@
--- # Streaming YAML
Twitch:
url: "https://twitch.tv/alexis_werefox"
new_tab: true
src: "/emoji/twitch-logo.png"
alt: "The Twtich logo"
description: >
Here's a link to my Twitch channel! That's where I do my
streams currently. I've been idly contemplating Owncast at some point, but at the
moment with my current setup, it isn't really feasible, unfortunately.
PeerTube:
url: "https://vid.werefox.dev/videos/watch/playlist/6a6f95c2-30c7-4163-a3ee-ad5dc5abefcf"
new_tab: true
src: "/emoji/peertube_logo.svg"
alt: "The PeerTube logo"
description: >
My personal PeerTube instance is where I upload all my recordings (VODs).
If you ever miss a stream and wanna see what ya missed, they're always uploaded here!
This link will take you to a playlist where I put all of the recordings in order.

View File

@ -1,366 +0,0 @@
// This is where you put the testimonial users' info
export const TESTIMONIALS = {
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]?"`,
},
thufie: {
url: "https://social.pixie.town/@thufie",
json: "https://social.pixie.town/@thufie.json",
content: `"banger beach bod"`,
},
lindsays: {
url: "https://hackers.town/@lindsays",
json: "https://hackers.town/@lindsays.json",
content: `"Regarding @shadow8t4 : She's an amazing, sweet, beautiful dork, and a spectacular best friend. also, a butt."`,
},
};
// This is where I put the questions and answers for the FAQ
export const FAQS = {
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",
},
};
// This is where I put my server specifications
export const SERVERS = {
"Intel NUC": {
model: "8i5BEH",
cpu: "Intel i5 8529U eight-core @2.3-3.8Ghz",
gpu: "Intel Iris Plus Graphics 655",
ram: "16 Gb @2400Mhz",
os: "Ubuntu Server 20.04",
},
"Raspberry Pi 4 (x2)": {
model: "B Rev 1.4",
cpu: "BCM2835 four-core @1.5Ghz",
gpu: "N/A",
ram: "8 Gb",
os: "Ubuntu Server 20.04",
},
"ASUS MINIPC": {
model: "PB50 0601",
cpu: "AMD Ryzen 5 3550H eight-core @2.1-3.7GHz",
gpu: "AMD Radeon Vega 8 Graphics",
ram: "32 Gb",
os: "Ubuntu Server 20.10",
},
};
// An object listing the different stuff I do
export const PROJECTS = {
Services: {
url: "/projects/services",
src: "/emoji/crt_blue_screen.svg",
alt: "A CRT blue screen emoji",
description: `Here is a list of some of the services I host.
Some of them, because a few I keep to just myself.`,
},
Streaming: {
url: "/projects/streaming",
src: "/emoji/twitch-logo.png",
alt: "Twitch logo",
description: `I stream regularly now! Mostly Beat Saber workouts.
If you're interested in that, here are some associated links!`,
},
Poetry: {
url: "https://write.as/a-letter-to-the-void",
new_tab: true,
src: "/emoji/pen.svg",
alt: "Pen emoji",
description: `Sometimes, I write poetry. It's not always the
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,
src: "/emoji/laptop.svg",
alt: "Laptop emoji",
description: `Much like this site, sometimes I program things!
Gotta at least try and put that Comp. Sci. degree to good use!`,
},
"Non-public Stuff": {
url: "/projects/private",
src: "/emoji/no_entry.svg",
alt: "No entry emoji",
description: `Here are some other things that I host for myself,
some of these can be accessed on the internet, but I only give
myself login access, and I have no plans on giving access to the
public.`,
},
"Other Stuff": {
url: "/projects/other",
src: "/emoji/asterisk.svg",
alt: "Asterisk emoji",
description: `Here are just some other little things I've done
that don't really fit in any specific category.`,
},
};
// An object listing the services I host
export const SERVICES = {
Mastodon: {
url: "https://masto.werefox.dev/about/",
new_tab: true,
src: "/emoji/mastodon-logo.png",
alt: "The Mastodon logo",
description: `Mastodon is an online, self-hosted social media, and social networking service.
It allows anyone to host their own server node in the network, and its various separately
operated user bases are federated across many different servers.`,
},
Pinafore: {
url: "https://pina.werefox.dev/",
new_tab: true,
src: "/emoji/pinafore_logo.svg",
alt: "The Pinafore logo",
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,
src: "/emoji/peertube_logo.svg",
alt: "The PeerTube logo",
description: `PeerTube is a free and open-source, decentralized, federated video platform
powered by ActivityPub and WebTorrent, that uses peer-to-peer technology to reduce load on
individual servers when viewing videos.`,
},
Element: {
url: "https://elem.werefox.dev/",
new_tab: true,
src: "/emoji/element_logo.svg",
alt: "The Element logo",
description: `Element (previously Riot) is an all-in-one secure chat app for teams,
friends and organisations. Keeps conversations in your control, safe from data-mining
and ads. Talk to everyone through the open global Matrix network, protected by proper
end-to-end encryption. (additionally, I host a Matrix server at matrix.werefox.dev)`,
},
Gitea: {
url: "https://gitea.werefox.dev/",
new_tab: true,
src: "/emoji/gitea_logo.svg",
alt: "The Gitea logo",
description: `A painless self-hosted Git service. Gitea is a community managed
lightweight code hosting solution written in Go. It is published under the MIT license.`,
},
};
// An object listing some links related to my streaming
export const STREAMING = {
Twitch: {
url: "https://twitch.tv/alexis_werefox",
new_tab: true,
src: "/emoji/twitch-logo.png",
alt: "The Twtich logo",
description: `Here's a link to my Twitch channel! That's where I do my
streams currently. I've been idly contemplating Owncast at some point, but at the
moment with my current setup, it isn't really feasible, unfortunately.`,
},
PeerTube: {
url: "https://vid.werefox.dev/videos/watch/playlist/6a6f95c2-30c7-4163-a3ee-ad5dc5abefcf",
new_tab: true,
src: "/emoji/peertube_logo.svg",
alt: "The PeerTube logo",
description: `My personal PeerTube instance is where I upload all my recordings (VODs).
If you ever miss a stream and wanna see what ya missed, they're always uploaded here!
This link will take you to a playlist where I put all of the recordings in order.`,
},
};
// An object listing the services I host for myself
export const PRIVATE = {
"Pi-hole": {
url: "https://pi-hole.net/",
new_tab: true,
src: "/emoji/pi_hole_logo.svg",
alt: "The Pi-hole logo",
description: `Pi-hole is a Linux network-level advertisement and Internet tracker blocking
application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on
a private network. It is designed for use on embedded devices with network capability, such
as the Raspberry Pi, but it can be used on other machines running Linux, including cloud
implementations.`,
},
Wireguard: {
url: "https://www.wireguard.com/",
new_tab: true,
src: "/emoji/wireguard_logo.png",
alt: "The Wiregaurd logo",
description: `WireGuard is a communication protocol and free and open-source software that
implements encrypted virtual private networks, and was designed with the goals of ease of
use, high speed performance, and low attack surface. It aims for better performance and
more power-saving than the IPsec and OpenVPN tunneling protocols. I use this for access
to my home network outside of being at home, and for access to #thetubes.`,
},
Nextcloud: {
url: "https://nextcloud.com/",
new_tab: true,
src: "/emoji/nextcloud_logo.png",
alt: "The Nextcloud logo",
description: `Nextcloud is a suite of client-server software for creating and using file
hosting services. It is enterprise-ready with comprehensive support options. Free and
open-source means that anyone is allowed to install and operate it on their own private
server devices.`,
},
Wikijs: {
url: "https://js.wiki/",
new_tab: true,
src: "/emoji/wikijs_logo.svg",
alt: "The Wiki.js logo",
description: `A modern and powerful wiki app built on Node.js`,
},
Navidrome: {
url: "https://github.com/navidrome/navidrome",
new_tab: true,
src: "/emoji/navidrome_logo.png",
alt: "The Navidrome logo",
description: `🎧☁️ Navidrome is a Modern Music Server and Streamer compatible with Subsonic/Airsonic`,
},
Kanboard: {
url: "https://kanboard.org/",
new_tab: true,
src: "/emoji/kanboard_logo.svg",
alt: "The Kanboard logo",
description: `Kanboard is project management software that focuses on the Kanban methodology.`,
},
};
// An object listing some other stuff I do that doesn't really fit neatly anywhere else
export const OTHER = {
"Valentine's Day Letter": {
url: "https://letter.werefox.dev",
new_tab: true,
src: "/emoji/red_heart.svg",
alt: "Red heart emoji",
description: `Here's a little treat I put together for Valentine's Day one year, and I decided
to just keep it up all year. Feel free to take a look if you ever need a little pick-me-up. 💙`,
},
Music: {
url: "https://soundcloud.com/alexis-werefox",
new_tab: true,
src: "/emoji/studio_microphone.svg",
alt: "Microphone emoji",
description: `*Nervous sweating* Heh! Sometimes I write some music!? You're free to take a
listen if you want! Let me know what you think! It's usually based on my poetry.`,
},
};

View File

@ -1,8 +1,26 @@
import BasicPage from "../../components/basic-page";
import PBlock from "../../components/project-block";
import { PROJECTS } from "../../js/variables";
export default function Services() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let PROJECTS = {};
try {
let fileContent = fs.readFileSync("./data/projects.yml", "utf8");
PROJECTS = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
PROJECTS,
},
};
}
export default function Services({ PROJECTS }) {
return (
<BasicPage page_title="Personal Projects" card_title="Some stuff I do!">
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">

View File

@ -1,8 +1,26 @@
import BasicPage from "../../../components/basic-page";
import PBlock from "../../../components/project-block";
import { OTHER } from "../../../js/variables";
export default function Services() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let OTHER = {};
try {
let fileContent = fs.readFileSync("./data/other.yml", "utf8");
OTHER = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
OTHER,
},
};
}
export default function Services({ OTHER }) {
return (
<BasicPage page_title="Misc Projects" card_title="Some other things I do!">
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">

View File

@ -1,8 +1,26 @@
import BasicPage from "../../../components/basic-page";
import PBlock from "../../../components/project-block";
import { PRIVATE } from "../../../js/variables";
export default function Services() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let PRIVATE = {};
try {
let fileContent = fs.readFileSync("./data/private.yml", "utf8");
PRIVATE = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
PRIVATE,
},
};
}
export default function Services({ PRIVATE }) {
return (
<BasicPage page_title="Private Services" card_title="Some stuff I host for myself!">
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">

View File

@ -1,8 +1,26 @@
import BasicPage from "../../../components/basic-page";
import PBlock from "../../../components/project-block";
import { SERVICES } from "../../../js/variables";
export default function Services() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let SERVICES = {};
try {
let fileContent = fs.readFileSync("./data/services.yml", "utf8");
SERVICES = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
SERVICES,
},
};
}
export default function Services({ SERVICES }) {
return (
<BasicPage page_title="Werefox Services" card_title="Services I Host!">
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">

View File

@ -1,8 +1,26 @@
import BasicPage from "../../../components/basic-page";
import PBlock from "../../../components/project-block";
import { STREAMING } from "../../../js/variables";
export default function Services() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let STREAMING = {};
try {
let fileContent = fs.readFileSync("./data/streaming.yml", "utf8");
STREAMING = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
STREAMING,
},
};
}
export default function Services({ STREAMING }) {
return (
<BasicPage page_title="Streaming Links" card_title="Come watch my streams!">
<div className="rounded-lg ring-2 ring-werefox-grey dark:ring-werefox-grey-darker bg-werefox-grey-light dark:bg-werefox-grey">

View File

@ -2,11 +2,29 @@ import BasicPage from "../../components/basic-page";
import WCard from "../../components/werefox-card";
import SBlock from "../../components/server-block";
export default function Servers() {
// An object listing pages folks can visit
export async function getStaticProps() {
const fs = require("fs");
const yaml = require("js-yaml");
let SERVERS = {};
try {
let fileContent = fs.readFileSync("./data/servers.yml", "utf8");
SERVERS = yaml.load(fileContent);
} catch (e) {
console.log(e);
}
return {
props: {
SERVERS,
},
};
}
export default function Servers({ SERVERS }) {
return (
<BasicPage page_title="Servers" card_title="Here are my server specs!">
<WCard innerText="Servers">
<SBlock />
<SBlock servers={SERVERS} />
</WCard>
</BasicPage>
);