export const dynamic = "force-dynamic"; import Link from "next/link"; import { notFound } from "next/navigation"; import { getNoiMeta, getNoiIntroSegments } from "@/lib/noi"; import { PageHeader } from "@/components/page-header"; import { Card, CardContent } from "@/components/ui/card"; export default async function NoiPage() { const meta = await getNoiMeta(); if (!meta) notFound(); const introSegments = await getNoiIntroSegments(); const frontPages = introSegments.find((s) => s.slug === "front-pages"); const preface = introSegments.find((s) => s.slug === "preface"); const appendixes = introSegments.find((s) => s.slug === "appendixes"); return (
← Books

{meta.title}

{meta.subtitle}

{meta.author}

{/* Description */} {meta.description && (

{meta.description}

)} {/* Front Matter */} {(frontPages || preface) && (

Front Matter

    {frontPages && (
  • {frontPages.title}

    {frontPages.paragraphs.length} paragraphs
  • )} {preface && (
  • {preface.title}

    {preface.paragraphs.length} paragraphs
  • )}
)} {/* Texts */}

Texts

    {meta.texts.map((t) => (
  • Text {t.number}

    {t.title}

  • ))}
{/* Appendixes */} {appendixes && (

Appendixes

  • {appendixes.title}

    {appendixes.paragraphs.length} paragraphs
)}
); }