2021-06-14 20:41:10 -05:00
|
|
|
import HomePage from "../components/home-page";
|
2021-05-01 01:15:09 -05:00
|
|
|
import IDBlock from "../components/identity-block";
|
2021-04-18 23:14:21 -05:00
|
|
|
import WCard from "../components/werefox-card";
|
2021-07-10 11:49:58 -05:00
|
|
|
import ICard from "../components/introduction-card";
|
2021-05-01 01:15:09 -05:00
|
|
|
import PBlock from "../components/page-block";
|
2021-04-07 15:46:55 -05:00
|
|
|
|
2022-01-19 21:56:01 -06:00
|
|
|
export function parseEmoji(TEXTBLOCK) {
|
|
|
|
const emoji_pattern = new RegExp(/(:[A-Za-z_-]+:)/, "g");
|
|
|
|
let emoji = [];
|
|
|
|
Array.from(emoji_pattern[Symbol.matchAll](TEXTBLOCK.intro)).forEach(
|
|
|
|
(e, i) => {
|
|
|
|
emoji.push(e[0]);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
return emoji;
|
|
|
|
}
|
|
|
|
|
2021-06-11 03:10:41 -05:00
|
|
|
// An object listing pages folks can visit
|
|
|
|
export async function getStaticProps() {
|
|
|
|
const fs = require("fs");
|
|
|
|
const yaml = require("js-yaml");
|
|
|
|
let IDENTITIES = {};
|
2021-07-10 11:49:58 -05:00
|
|
|
let INTRODUCTION = {};
|
2021-06-11 03:10:41 -05:00
|
|
|
let PAGES = {};
|
2021-06-14 23:30:03 -05:00
|
|
|
let PARTNERS = {};
|
2022-01-19 21:56:01 -06:00
|
|
|
let emoji_paths = {};
|
2021-06-11 03:10:41 -05:00
|
|
|
|
|
|
|
try {
|
|
|
|
let fileContent = fs.readFileSync("./data/identities.yml", "utf8");
|
|
|
|
IDENTITIES = yaml.load(fileContent);
|
2021-07-10 11:49:58 -05:00
|
|
|
fileContent = fs.readFileSync("./data/introduction.yml", "utf8");
|
|
|
|
INTRODUCTION = yaml.load(fileContent);
|
2021-06-11 03:10:41 -05:00
|
|
|
fileContent = fs.readFileSync("./data/pages.yml", "utf8");
|
|
|
|
PAGES = yaml.load(fileContent);
|
2021-07-10 11:49:58 -05:00
|
|
|
fileContent = fs.readFileSync("./data/identities/partners.yml", "utf8");
|
2021-06-14 23:30:03 -05:00
|
|
|
PARTNERS = yaml.load(fileContent);
|
2022-01-19 21:56:01 -06:00
|
|
|
let emoji = parseEmoji(INTRODUCTION);
|
|
|
|
emoji.forEach((e, i) => {
|
|
|
|
if (fs.existsSync(`./public/emoji/${e}.svg`)) {
|
|
|
|
emoji_paths[e] = `/emoji/${e}.svg`;
|
|
|
|
} else if (fs.existsSync(`./public/emoji/${e}.png`)) {
|
|
|
|
emoji_paths[e] = `/emoji/${e}.png`;
|
|
|
|
} else {
|
2022-06-24 22:59:05 -05:00
|
|
|
emoji_paths[e] = `/emoji/:aliceweh:.png`;
|
2022-01-19 21:56:01 -06:00
|
|
|
}
|
|
|
|
});
|
2021-06-11 03:10:41 -05:00
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
props: {
|
|
|
|
IDENTITIES,
|
2021-07-10 11:49:58 -05:00
|
|
|
INTRODUCTION,
|
2021-06-11 03:10:41 -05:00
|
|
|
PAGES,
|
2021-06-14 23:30:03 -05:00
|
|
|
PARTNERS,
|
2022-01-19 21:56:01 -06:00
|
|
|
emoji_paths,
|
2021-06-11 03:10:41 -05:00
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-01-19 21:56:01 -06:00
|
|
|
export default function Home({
|
|
|
|
IDENTITIES,
|
|
|
|
INTRODUCTION,
|
|
|
|
PAGES,
|
|
|
|
PARTNERS,
|
|
|
|
emoji_paths,
|
|
|
|
}) {
|
2021-06-14 23:30:03 -05:00
|
|
|
const partnerslen = PARTNERS ? Object.keys(PARTNERS).length : 0;
|
2021-04-07 15:46:55 -05:00
|
|
|
return (
|
2022-01-19 21:56:01 -06:00
|
|
|
<HomePage page_title="About A Werefox" card_title="Hi! I'm Alice Werefox!">
|
2021-10-14 16:22:07 -05:00
|
|
|
<WCard title="Basic Info">
|
2021-07-08 23:41:35 -05:00
|
|
|
<IDBlock identities={IDENTITIES} partners={partnerslen} />
|
2021-04-26 22:30:21 -05:00
|
|
|
</WCard>
|
2021-10-14 16:22:07 -05:00
|
|
|
<WCard title="Welcome to my little info site!">
|
2022-01-19 21:56:01 -06:00
|
|
|
<ICard introduction={INTRODUCTION.intro} emoji_paths={emoji_paths} />
|
2021-04-26 22:30:21 -05:00
|
|
|
</WCard>
|
2021-10-14 16:22:07 -05:00
|
|
|
<WCard title="Neat Pages!">
|
2021-06-11 03:10:41 -05:00
|
|
|
<PBlock pages={PAGES} />
|
2021-04-25 01:57:01 -05:00
|
|
|
</WCard>
|
2021-06-14 20:41:10 -05:00
|
|
|
</HomePage>
|
2021-04-17 21:38:19 -05:00
|
|
|
);
|
2021-04-07 15:46:55 -05:00
|
|
|
}
|