diff --git a/components/PDFDownloadBlock.tsx b/components/PDFDownloadBlock.tsx index 64c2de89..1a0fcc36 100644 --- a/components/PDFDownloadBlock.tsx +++ b/components/PDFDownloadBlock.tsx @@ -3,7 +3,11 @@ import React from 'react'; import { usePathname } from 'next/navigation'; -export const PDFDownloadBlock: React.FC<{ label: string; style: string }> = ({ label, style }) => { +export const PDFDownloadBlock: React.FC<{ label: string; style: string; url?: string }> = ({ + label, + style, + url, +}) => { const pathname = usePathname(); // Extract slug from pathname @@ -12,7 +16,7 @@ export const PDFDownloadBlock: React.FC<{ label: string; style: string }> = ({ l // We want the page slug. const slug = segments[segments.length - 1] || 'home'; - const href = `/api/pages/${slug}/pdf`; + const href = url || `/api/pages/${slug}/pdf`; return (
diff --git a/content/pages/agbs.mdx b/content/pages/agbs.mdx index 13c30679..f37b20a4 100644 --- a/content/pages/agbs.mdx +++ b/content/pages/agbs.mdx @@ -247,7 +247,7 @@ _status: published Stand: April 2026 - + diff --git a/lib/pdf-business-card.tsx b/lib/pdf-business-card.tsx index 6a0d195f..98252a14 100644 --- a/lib/pdf-business-card.tsx +++ b/lib/pdf-business-card.tsx @@ -302,7 +302,7 @@ const styles = StyleSheet.create({ flexDirection: 'column', }, nameSection: { - marginBottom: '2.5mm', // Clear separation between name block and contact block + marginBottom: '6mm', // Clear separation between name block and contact block }, nameText: { fontSize: 13, diff --git a/lib/pdf-page.tsx b/lib/pdf-page.tsx index 4e67e371..ef648ed2 100644 --- a/lib/pdf-page.tsx +++ b/lib/pdf-page.tsx @@ -329,6 +329,42 @@ const renderLexicalNode = (node: any, idx: number): React.ReactNode => { } }; +const renderMarkdown = (markdown: string) => { + const blocks = markdown.split('\n\n').filter((b) => b.trim()); + return blocks.map((block, idx) => { + if (block.startsWith('### ')) { + return ( + + {block.replace('### ', '').trim()} + + ); + } + if (block.startsWith('## ')) { + return ( + + {block.replace('## ', '').trim()} + + ); + } + if (block.startsWith('# ')) { + return ( + + {block.replace('# ', '').trim()} + + ); + } + + // Ignore block components like + if (block.startsWith(' + {block.trim()} + + ); + }); +}; + interface PDFPageProps { page: any; locale?: string; @@ -360,9 +396,11 @@ export const PDFPage: React.FC = ({ page, locale = 'de' }) => { - {page.content?.root?.children?.map((node: any, i: number) => - renderLexicalNode(node, i), - )} + {typeof page.content === 'string' + ? renderMarkdown(page.content) + : page.content?.root?.children?.map((node: any, i: number) => + renderLexicalNode(node, i), + )} diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich.pdf index b86137fb..78eb3ca9 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_CropMarks.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_CropMarks.pdf index 39aeba60..5b402adb 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_CropMarks.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_CropMarks.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_NoTruck.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_NoTruck.pdf index 25a2aaf5..a8e5cc8c 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_NoTruck.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_NoTruck.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_Viaprinto_CMYK_91x61mm_3mmBleed.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_Viaprinto_CMYK_91x61mm_3mmBleed.pdf index d0f704e3..7d50e855 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_Viaprinto_CMYK_91x61mm_3mmBleed.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Johannes_Gleich_Viaprinto_CMYK_91x61mm_3mmBleed.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel.pdf index b90c8eb4..1903d70e 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_CropMarks.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_CropMarks.pdf index 05d0bc52..c89bf58a 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_CropMarks.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_CropMarks.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_NoTruck.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_NoTruck.pdf index b87c1ccb..11d6ed30 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_NoTruck.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_NoTruck.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_Viaprinto_CMYK_91x61mm_3mmBleed.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_Viaprinto_CMYK_91x61mm_3mmBleed.pdf index 93ce3b5c..6421445b 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_Viaprinto_CMYK_91x61mm_3mmBleed.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Klaus_Mintel_Viaprinto_CMYK_91x61mm_3mmBleed.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer.pdf index 0089e078..14245e4e 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_CropMarks.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_CropMarks.pdf index de9d6c9b..5b1af76f 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_CropMarks.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_CropMarks.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_NoTruck.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_NoTruck.pdf index c505170e..6e32af23 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_NoTruck.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_NoTruck.pdf differ diff --git a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_Viaprinto_CMYK_91x61mm_3mmBleed.pdf b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_Viaprinto_CMYK_91x61mm_3mmBleed.pdf index 1232ebf9..12c7e71b 100644 Binary files a/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_Viaprinto_CMYK_91x61mm_3mmBleed.pdf and b/public/downloads/business-cards/KLZ_Visitenkarte_Michael_Bodemer_Viaprinto_CMYK_91x61mm_3mmBleed.pdf differ