Deepseek-TUI Markdown格式修复
我的第一个开源贡献:修复 DeepSeek-TUI 的 Markdown 渲染问题 背景 DeepSeek-TUI 是一个用 Rust 编写的终端 AI 助手,基于 DeepSeek V4 模型,支持 1M token 上下文。我在日常使用中发现 AI 的回复里 Markdown 格式完全没有被渲染,严重影响阅读体验。这是我第一次接触 Rust,也是我第一次向开源项目提交 PR。 问题现象 使用时发现三类渲染问题: 1. 表格原样输出 | 名称 | 版本 | 状态 | |----------|------|------| | React | 18.x | 稳定 | 分隔行 |---| 也直接显示出来,没有任何格式化。 2. 粗体/斜体标记符没有被剥掉 **粗体文本** 和 *斜体文本* 星号原样显示,没有加粗或斜体效果。 3. 水平线没有渲染 --- 直接显示成三个横杠,没有渲染成分隔线。 代码分析 项目的渲染逻辑在 crates/tui/src/tui/markdown_render.rs。读完代码后理解了它的设计: 两阶段渲染架构 源文本 → parse() → ParsedMarkdown (AST) → render_parsed(width) → Vec<Line> parse 阶段:与终端宽度无关,把源文本分类成 Block 枚举的各种变体 render 阶段:依赖宽度,做折行和样式渲染 这个设计的好处是终端 resize 时只需重新 render,不需要重新 parse,性能更好。 ...