feat(frontend): add static page support at /page/[name], add tos + privacy link to login

This commit is contained in:
sam 2022-11-20 22:09:36 +01:00
parent 17cc57a31d
commit 78d6a817ed
4 changed files with 51 additions and 2 deletions

View file

@ -0,0 +1,43 @@
import { GetStaticProps } from "next";
import { readdirSync } from "fs";
import ReactMarkdown from "react-markdown";
import { readFile } from "fs/promises";
import { join } from "path";
import Head from "next/head";
export async function getStaticPaths() {
const names = readdirSync("./static_pages").filter((name) =>
name.endsWith(".md")
);
const paths = names.map((name) => ({
params: { page: name.slice(0, -3) },
}));
return {
paths: paths,
fallback: false,
};
}
export const getStaticProps: GetStaticProps<{ text: string }> = async ({
params,
}) => {
const text = await readFile(join("./static_pages", params!.page + ".md"));
return { props: { text: text.toString("utf8") } };
};
export default function Page(props: { text: string }) {
const title = props.text.split("\n")[0].slice(2);
return (
<>
<Head>
<title key="title">{`${title} - pronouns.cc`}</title>
</Head>
<div className="prose prose-slate dark:prose-invert">
<ReactMarkdown>{props.text}</ReactMarkdown>
</div>
</>
);
}