export const dynamic = "force-dynamic"; import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { getIsoMeta, getIsoIntroSegments } from "@/lib/iso"; import { ogForBook } from "@/lib/og"; import { PageHeader } from "@/components/layout/page-header"; import { JsonLd } from "@/components/seo/json-ld"; import { bookJsonLd } from "@/lib/jsonld"; import { Card, CardContent } from "@/components/ui/card"; export function generateMetadata(): Metadata { return ogForBook("iso"); } export default async function IsoPage() { const meta = await getIsoMeta(); if (!meta) notFound(); const introSegments = await getIsoIntroSegments(); const frontPages = introSegments.find((s) => s.slug === "front-pages"); const introduction = introSegments.find((s) => s.slug === "introduction"); const aboutAuthor = introSegments.find((s) => s.slug === "about-the-author"); // Invocation is mantra 0, mantras are 1-18 const invocation = meta.mantras.find((m) => m.number === 0); const numberedMantras = meta.mantras.filter((m) => m.number > 0); return (
← Books

{meta.title}

{meta.author}

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

{meta.description}

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

Front Matter

    {frontPages && (
  • {frontPages.title}

  • )} {introduction && (
  • {introduction.title}

  • )}
)} {/* Mantras */}

Mantras

    {/* Invocation */} {invocation && (
  • Invocation

    {invocation.title}

  • )} {/* Mantras 1-18 */} {numberedMantras.map((m) => (
  • Mantra {m.number}

    {m.title}

  • ))}
{/* About the Author */} {aboutAuthor && (

About the Author

  • {aboutAuthor.title}

)}
); }