[Feature]: 内置 Markdown 查看器/编辑器支持数学公式(KaTeX)渲染
维护者通常 1 天内回复
还没有人认领这个 Issue。
- #2042 来自 @xielixing —— 已关闭,未合并
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 55/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- react, typescript
调研方向
从 src/web-ui/src/component-library/components/Markdown/Markdown.tsx 和 MarkdownMathRenderer.tsx 开始,以了解现有的聊天数学处理路径,然后检查 MarkdownEditor.tsx 和 src/web-ui/src/tools/editor/meditor/extensions/。比较两个入口点,并使用提供的公式运行 Markdown 查看器。完成的标准是:打开的 .md 文件中的行内数学和块级数学能够渲染,而代码块中的美元符号保持不变。
由索引模型根据 Issue 内容生成。
描述
Problem / opportunity
BitFun 内置的 Markdown 查看器/编辑器(打开 .md 文件时使用)不渲染数学公式,$...$ 与 $$...$$ 只显示为原始文本;而对话(chat)中的 Markdown 已经支持 KaTeX 公式渲染。两者渲染能力不一致。
对以 Markdown + LaTeX 记笔记的用户(如数学/理科笔记)影响较大:在 BitFun 内打开自己的笔记看不到公式渲染,只能借助外部编辑器,或自行编写 MiniApp 阅读器绕过。
根因(源码层面):BitFun 内部有两套独立的 Markdown 渲染路径——
- 对话渲染(已支持公式):
src/web-ui/src/component-library/components/Markdown/Markdown.tsx通过mayContainMarkdownMath()检测$$/\(/\[/ 行内$...$,命中后懒加载MarkdownMathRenderer.tsx(react-markdown + remark-gfm + remark-math + rehype-katex)。 - 文件查看器/编辑器(不支持):打开 .md 走
FileViewerScene → ContentCanvas → MarkdownEditor(src/web-ui/src/tools/editor/components/MarkdownEditor.tsx),底层是 tiptap 编辑器(src/web-ui/src/tools/editor/meditor/),其extensions/只有 Alignment / Image / Table 扩展,没有任何数学公式扩展。
Proposed behavior
文件查看器/编辑器的预览能像对话一样渲染行内($...$、\(...\))与块级($$...$$、\[...\])数学公式。
建议方案(任选其一或结合):
- 为 tiptap 编辑器(meditor)增加数学节点扩展(社区已有成熟的 tiptap + KaTeX 扩展可参考),复用现有 KaTeX 依赖;
- 或让文件预览复用 component-library 的
Markdown+MarkdownMathRenderer渲染路径,统一两套渲染的公式能力。
Product surface
Desktop app
Details, examples, or constraints
复现步骤:
- 工作区放一个含公式的 .md 文件,例如:
质能方程 $E=mc^2$,以及 $$\int_0^1 x^2 dx = \frac13$$ - 在 BitFun 内打开该文件(文件查看器)→ 公式原样显示,未渲染
- 对比:把同样内容让 AI 在对话中输出 → 公式正常渲染
验收标准:
- 打开含
$...$/$$...$$的 .md 文件,公式以排版形式渲染 - 代码块内的
$不被误判为公式
环境:Windows 11,BitFun 桌面版。
- 主要语言
- Rust
- 星标
- 2.3k
- 派生
- 236
- 平均合并
- 3 小时 38 分钟
- 30 天内合并 PR
- 329
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
GCWing/OpenBitFun 的其他 Issue
-
难度 2/5 半天 新手友好度 74/100
GCWing/OpenBitFun#3279 ·
维护者通常 1 天内回复
-
[Bug]: 界面写“敏感诊断信息默认关闭”,但后端配置当前实际默认是 true可能已有人在做 @xiechimon 于 17 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
GCWing/OpenBitFun#3213 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
GCWing/OpenBitFun#2363 ·
维护者通常 1 天内回复
-
question
难度 1/5 1 小时以内 新手友好度 78/100
GCWing/OpenBitFun#2340 ·
维护者通常 1 天内回复
-
难度 2/5 半天 新手友好度 40/100
GCWing/OpenBitFun#3346 ·
维护者通常 1 天内回复
查看 GCWing/OpenBitFun 的全部 Issue
相似的 Issue
-
难度 1/5 1-3 小时 新手友好度 72/100
MattA-Official/vwmcp#20 ·
-
documentation good first issue
难度 1/5 1-3 小时 新手友好度 88/100
undergroundrap/hatchling#15 ·
-
Progress difficulty filter lists Hard before Medium可能已有人在做 @Pandamachi 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 86/100
sysprog21/codetrial#281 · 1 条评论 ·
维护者通常 1 天内回复
-
CLI: --verdict silently ignores extra program/file arguments可能已有人在做 @oxura 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
HigherOrderCO/Bend#1503 ·
-
Add MySQL test coverage for numeric_precision/numeric_scale and seq_in_fk (follow-up to #939)可能已有人在做 @tosinxt 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
TabularisDB/tabularis#977 · 1 条评论 ·
维护者通常 1 天内回复