export const dynamic = "force-dynamic";
import type { Metadata } from "next";
import Link from "next/link";
import { notFound } from "next/navigation";
import { getLobMeta, getLobIntroSegments } from "@/lib/lob";
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("lob");
}
export default async function LobPage() {
const meta = await getLobMeta();
if (!meta) notFound();
const introSegments = await getLobIntroSegments();
return (
← Books
{meta.title}
{meta.author}
{/* Description */}
{meta.description && (
{meta.description}
)}
{/* Front Matter */}
{introSegments.length > 0 && (
Front Matter
{introSegments.map((seg) => (
-
))}
)}
{/* Texts */}
Texts
{meta.chapters.map((ch) => (
-
Text {ch.number}
{ch.title}
))}
);
}