@@ -1,14 +1,22 @@
1+import { useRouter } from "next/router";
2+import { getPostBySlug, getAllPosts } from "../../lib/lib";
1import Head from "next/head";
3import Head from "next/head";
2import Link from "next/link";
4import Link from "next/link";
3−import { getPostBySlug } from "../../lib/lib";
4import Meta from "../../components/Meta";
5import Meta from "../../components/Meta";
5−import Markdown from "../../components/Markdown";
6+import ErrorPage from "../404";
6import Container from "../../components/Container";
7import Container from "../../components/Container";
8+import Markdown from "../../components/Markdown";
7import SingleColumn from "../../components/SingleColumn";
9import SingleColumn from "../../components/SingleColumn";
8import Section from "../../components/Section";
10import Section from "../../components/Section";
9import { decode } from "html-entities";
12import { decode } from "html-entities";
11export default function GuidePage({ post, markdown }) {
14export default function GuidePage({ post, markdown }) {
15+ const router = useRouter();
16+ if (!router.isFallback && !post?.slug) {
17+ return <ErrorPage />;
13 <Container>
21 <Container>
@@ -34,7 +42,11 @@ export default function GuidePage({ post, markdown }) {
36export async function getStaticProps({ params }) {
44export async function getStaticProps({ params }) {
37− const post = getPostBySlug("guide", ["title", "slug", "content"], "groups");
45+ const post = getPostBySlug(
47+ ["title", "slug", "date", "description", "content", "extra"],
39 const markdown = await Markdown({ post });
51 const markdown = await Markdown({ post });
@@ -42,3 +54,18 @@ export async function getStaticProps({ params }) {
42 props: { post, markdown },
54 props: { post, markdown },
58+export async function getStaticPaths() {
59+ const posts = getAllPosts(["slug", "date"], "guides", "date");
62+ paths: posts.map((post) => {