import { sql } from "@cvsa/core"; import { SafeMdxRenderer } from "@/lib/mdx/SafeMDX"; import "./content.css"; import remarkMdx from "remark-mdx"; import remarkGfm from "remark-gfm"; import { OptionalChidrenProps } from "@/components/ui/Dialog"; import { remark } from "remark"; import { Root } from "mdast"; import remarkCollectFootnoteDefinitions from "@/lib/mdx/footnoteHelper"; import { BackgroundDelegate } from "./Background"; const 黑幕: React.FC> = ({ children }) => { return ( {children} ); }; const components = { 黑幕: 黑幕, center: ({ children }: { children: React.ReactNode }) => { return
{children}
; }, 背景图片: ({ url }: { url: string }) => { return ; }, poem: ({ children }: { children: React.ReactNode }) => { if (typeof children !== "string") { return <>{children}; } return
") }}>
; } }; interface ContentProps { pageID: string; } export const Content: React.FC = async ({ pageID }) => { const result = await sql<{ page_content: string }[]>` SELECT page_content FROM content WHERE page_id = ${pageID} `; if (result.length === 0) { return <>; } const content = result[0].page_content.replace(/<\!--.*?-->/g, ""); try { const parser = remark() .use(remarkGfm) .use(remarkMdx) .use(remarkCollectFootnoteDefinitions) .use(() => { return (tree, file) => { file.data.ast = tree; }; }); const file = parser.processSync(content); const mdast = file.data.ast as Root; return (
); } catch (e) { return (

渲染出现问题。
错误信息: {e.message}
以下是该内容的原文:

{content}
); } };