feat(frontend): Markdown 支持 GFM、代码高亮与图片灯箱

统一 SSR/客户端渲染路径,评论与预览共用增强组件。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-16 05:41:25 +08:00
parent f3145b24ff
commit 2056d6a3f9
14 changed files with 1458 additions and 31 deletions

View File

@@ -0,0 +1,32 @@
"use client";
import ReactMarkdown, { type Components } from "react-markdown";
import remarkGfm from "remark-gfm";
import { mergeMarkdownComponents } from "@/components/markdown/mergeComponents";
type MarkdownBodyClientProps = {
content: string;
className?: string;
components?: Components;
};
/**
* 客户端 Markdown(发帖预览 / 评论):GFM + 图箱 / 代码折叠复制。
* 语法高亮在 MdCodeBlock 内按需用 Shiki 补齐。
*/
export default function MarkdownBodyClient({
content,
className = "prose-content",
components,
}: MarkdownBodyClientProps) {
return (
<div className={className}>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
components={mergeMarkdownComponents(components)}
>
{content || ""}
</ReactMarkdown>
</div>
);
}