export const dynamic = "force-dynamic"; import Link from "next/link"; import { notFound } from "next/navigation"; import { getSvaMeta, getSvaIntroSegments } from "@/lib/sva"; import { PageHeader } from "@/components/page-header"; import { Card, CardContent } from "@/components/ui/card"; export default async function SvaPage() { const meta = await getSvaMeta(); if (!meta) notFound(); const introSegments = await getSvaIntroSegments(); // Split intro segments into front matter (order < 99) and back matter (order >= 99) const frontMatter = introSegments.filter((seg) => seg.order < 99); const backMatter = introSegments.filter((seg) => seg.order >= 99); return (
← Books

{meta.title}

{meta.author}

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

{meta.description}

)} {/* Front Matter */} {frontMatter.length > 0 && (

Front Matter

    {frontMatter.map((seg) => (
  • {seg.title}

    {seg.paragraphs.length} paragraphs
  • ))}
)} {/* Chapters (Parts) */}

Parts

    {meta.chapters.map((ch) => (
  • Part {ch.number}

    {ch.title}

  • ))}
{/* Back Matter */} {backMatter.length > 0 && (

Back Matter

    {backMatter.map((seg) => (
  • {seg.title}

    {seg.paragraphs.length} paragraphs
  • ))}
)}
); }