"use client"; import ReactMarkdown, { type Components } from "react-markdown"; import remarkGfm from "remark-gfm"; import { mergeMarkdownComponents } from "@/components/markdown/mergeComponents"; import { splitContentSegments } from "@/lib/directiveBlocks"; import type { HideKind } from "@/lib/hideBlocks"; import MdHideBlock from "@/components/markdown/MdHideBlock"; import MdTimeline from "@/components/markdown/MdTimeline"; type MarkdownBodyClientProps = { content: string; className?: string; components?: Components; postId?: number; loginHref?: string; loggedIn?: boolean; }; /** * 客户端 Markdown(发帖预览 / 评论):GFM + 隐藏块 / 时间线预览。 */ export default function MarkdownBodyClient({ content, className = "prose-content", components, postId, loginHref, loggedIn = false, }: MarkdownBodyClientProps) { const segs = splitContentSegments(content || ""); const mdComponents = mergeMarkdownComponents(components); // 时间线/隐藏块正文不套外层 heading 覆盖,避免预览与正文目录 id 错位 const nestedMd = mergeMarkdownComponents(); return (