diff --git a/.gitignore b/.gitignore
index 3e4ebaf..84c0a20 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,8 +4,8 @@
/cloudflare-env.d.ts
# generated docs section file lists (regenerated by npm run generateDocsMeta)
-/public/docs/**/sections.json
-/public/docs/languages.json
+/public/docs/**/sections.*
+/public/docs/languages.*
# dependencies
/node_modules
diff --git a/app/[lang]/[pageId]/page.tsx b/app/[lang]/[pageId]/page.tsx
index bbdfd11..05ee149 100644
--- a/app/[lang]/[pageId]/page.tsx
+++ b/app/[lang]/[pageId]/page.tsx
@@ -38,9 +38,13 @@ export default async function Page({
const { lang, pageId } = await params;
const pagesList = await getPagesList();
const langEntry = pagesList.find((l) => l.id === lang);
- const pageEntry = langEntry?.pages.find((p) => p.slug === pageId);
+ const pageEntryIndex = langEntry?.pages.findIndex((p) => p.slug === pageId) ?? -1;
+ const pageEntry = langEntry?.pages[pageEntryIndex];
if (!langEntry || !pageEntry) notFound();
+ const prevPage = langEntry.pages[pageEntryIndex - 1];
+ const nextPage = langEntry.pages[pageEntryIndex + 1];
+
// server componentなのでuseMemoいらない
const path = { lang: lang, page: pageId };
const sections = await getMarkdownSections(lang, pageId);
@@ -57,6 +61,8 @@ export default async function Page({
splitMdContent={sections}
langEntry={langEntry}
pageEntry={pageEntry}
+ prevPage={prevPage}
+ nextPage={nextPage}
path={path}
/>
diff --git a/app/[lang]/[pageId]/pageContent.tsx b/app/[lang]/[pageId]/pageContent.tsx
index 1c9acbe..2e07690 100644
--- a/app/[lang]/[pageId]/pageContent.tsx
+++ b/app/[lang]/[pageId]/pageContent.tsx
@@ -6,6 +6,7 @@ import { Heading, StyledMarkdown } from "./markdown";
import { useChatHistoryContext } from "./chatHistory";
import { useSidebarMdContext } from "@/sidebar";
import clsx from "clsx";
+import { PageTransition } from "./pageTransition";
import {
LanguageEntry,
MarkdownSection,
@@ -22,6 +23,8 @@ interface PageContentProps {
splitMdContent: MarkdownSection[];
langEntry: LanguageEntry;
pageEntry: PageEntry;
+ prevPage?: PageEntry;
+ nextPage?: PageEntry;
path: PagePath;
}
export function PageContent(props: PageContentProps) {
@@ -149,6 +152,11 @@ export function PageContent(props: PageContentProps) {
))}
+