@@ -4,7 +4,13 @@ import { useRouter } from "next/router";
4import { useState } from "react";
4import { useState } from "react";
5import classnames from "classnames";
5import classnames from "classnames";
6import { join } from "path";
6import { join } from "path";
7−import { getDocs, formatDate, buildPageTree, getPage } from "../../lib/lib";
7+import {
12+} from "../../lib/lib";
13+import Pagination from "../../components/Pagination";
8import Markdown from "../../components/Markdown";
14import Markdown from "../../components/Markdown";
9import ContentArea from "../../components/ContentArea";
15import ContentArea from "../../components/ContentArea";
10import Sidebar from "../../components/Sidebar";
16import Sidebar from "../../components/Sidebar";
@@ -95,7 +101,15 @@ const pageTree = (thisLink, tree, level = 0) => {
98−export default function DocsLayout({ posts, data, params, search, markdown }) {
104+export default function DocsLayout({
99 const router = useRouter();
113 const router = useRouter();
100 const isSelected = "/docs".includes(router.asPath);
114 const isSelected = "/docs".includes(router.asPath);
101 const selectedClasses = classnames({
115 const selectedClasses = classnames({
@@ -133,6 +147,30 @@ export default function DocsLayout({ posts, data, params, search, markdown }) {
133 dangerouslySetInnerHTML={{ __html: decode(markdown) }}
147 dangerouslySetInnerHTML={{ __html: decode(markdown) }}
134 ></article>
148 ></article>
150+ <div className="flex justify-between mt-16">
151+ {previousPost === null ? (
152+ <div className={""} />
156+ title="Previous Post"
159+ section={join("docs", params.slug?.slice(0, -1).join("/"))}
162+ {nextPost === null ? (
163+ <div className={""} />
170+ section={join("docs", params.slug?.slice(0, -1).join("/"))}
136 </ContentArea>
174 </ContentArea>
@@ -146,9 +184,25 @@ export async function getStaticProps({ params }) {
146 join(process.cwd(), "content/docs", params.slug?.join("/") || "/")
184 join(process.cwd(), "content/docs", params.slug?.join("/") || "/")
187+ const previousPost =
189+ params.slug?.slice(-1).join("") || "docs",
190+ ["title", "slug", "weight"],
191+ join("docs", params.slug?.slice(0, -1).join("/") || "/"),
197+ params.slug?.slice(-1).join("") || "docs",
198+ ["title", "slug", "weight"],
199+ join("docs", params.slug?.slice(0, -1).join("/") || "/"),
149 const markdown = await Markdown({ post: { content: content } });
203 const markdown = await Markdown({ post: { content: content } });
151− return { props: { posts, data, markdown, params } };
205+ return { props: { posts, data, markdown, previousPost, nextPost, params } };
154export async function getStaticPaths() {
208export async function getStaticPaths() {