import type { Components } from "react-markdown"; import { renderMarkdownToReact } from "@/components/markdown/renderMarkdown"; import { splitHideSegments, type HideKind } from "@/lib/hideBlocks"; import MdHideBlock from "@/components/markdown/MdHideBlock"; type MarkdownBodyProps = { content: string; className?: string; components?: Components; /** 详情页解锁门禁需要 */ postId?: number; loggedIn?: boolean; }; /** * 站点统一 Markdown 渲染(服务端):GFM + Shiki;支持 :::hide 内嵌块。 */ export default async function MarkdownBody({ content, className = "prose-content", components, postId, loggedIn = false, }: MarkdownBodyProps) { const segs = splitHideSegments(content || ""); const nodes = []; for (let i = 0; i < segs.length; i++) { const seg = segs[i]; if (seg.type === "md") { if (!seg.text.trim()) continue; nodes.push(