diff --git a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx index 95453b1f..a1e872a9 100644 --- a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx +++ b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx @@ -23,6 +23,7 @@ import { useRouter } from "next/navigation"; import { revalidateChatAction } from "@/actions/revalidateChat"; import { RegenerateStreamEvent } from "@/api/chat/regenerate-section/route"; import { captureException } from "@sentry/nextjs"; +import { CurrentSectionContextProvider } from "@/markdown/term"; interface PageContentProps { splitMdContent: SectionWithDiff[]; @@ -120,12 +121,14 @@ export function PageContent(props: PageContentProps) { path={path} /> )} - {/* ドキュメントのコンテンツ */} - + + {/* ドキュメントのコンテンツ */} + +
(null); +export function CurrentSectionContextProvider({ + sectionId, + children, +}: { + sectionId: SectionId; + children: ReactNode; +}) { + return ( + + {children} + + ); +} + /** * https://github.com/ut-code/utcode-learn/blob/main/src/components/Term/index.tsx をもとに独自実装 * Copyright (c) 2023 ut.code(); @@ -55,6 +76,7 @@ export default function Term(props: JSX.IntrinsicElements["q"] & ExtraProps) { // @docs/lang/pageId/page.tsx で取得したものをcontextに渡してそれを取得する const { lang, page, termDefinitions } = useContext(TermDefinitionContext) ?? {}; + const currentSectionId = useContext(CurrentSectionContext); const langEntry = usePagesListForLang(lang); @@ -159,6 +181,11 @@ export default function Term(props: JSX.IntrinsicElements["q"] & ExtraProps) { ); } + if (currentSectionId === term.id) { + // このセクション自身へのリンクは表示しない + return props.children; + } + const pageEntry = langEntry?.pages.find((p) => p.slug === term.page); return (