md-editor — 极简 Markdown 桌面编辑器产品系统

我要开发同款
紫芸软件2026年08月20日
4阅读

技术信息

语言技术
VueTypeScriptRust
系统类型
WindowsWeb
行业分类
开发工具
参考价格
2000

作品详情

行业场景

面向开发者与技术写作者的 Markdown 编辑工具,解决传统编辑器预览延迟、代码高亮弱、公式支持差等痛点。适用于技术博客撰写、API 文档编写、学术论文笔记等场景。

功能介绍

1. 实时双栏编辑:左侧 Markdown 源码,右侧实时预览(Live Preview)
2. 代码高亮:基于 Shiki,支持 17+ 编程语言,IDEA Darcula 主题
3. 公式渲染:集成 KaTeX,支持行内与块级数学公式
4. 桌面端:Tauri 2 构建,Windows / macOS / Linux 跨平台
5. 导出能力:支持导出 HTML、PDF 及打印
6. 交互优化:智能回车、列表自动续接、快捷键加粗/斜体/链接

项目实现

我独立负责前端编辑器、实时预览系统、桌面端打包及单元测试的全流程开发。

技术栈:TypeScript + Vue 3 + CodeMirror 6 + Tauri 2 + Vite,代码高亮采用 Shiki,公式渲染采用 KaTeX。

架构设计:采用"源码编辑 + Live Preview 混合渲染"模式。编辑器层基于 CodeMirror 6 构建,通过自定义 StateField 驱动语法树分析,对标题、代码块、表格、数学公式等节点生成 Decoration 进行就地替换渲染;渲染层通过 MarkdownIt + KaTeX 构建独立管线,实现预览模式下的完整 HTML 输出。

实现亮点:
1. 语法树驱动的实时预览:利用 @codemirror/language 的语法树遍历,精确定位 ATXHeading、FencedCode、Table 等节点,通过 Decoration.replace 将源码替换为渲染后的 DOM Widget,实现光标离开即渲染、点击即编辑的丝滑体验。
2. 块级 Widget 的稳定性:多行块级 Widget(代码块/表格/块公式)在 CodeMirror 6 中必须使用 block:true 并按行对齐 range,否则会导致内部 tile 解构崩溃。通过 blockEnd() 函数精确扩展 range 至下一行起始,确保行号连续、光标可正常定位。
3. Shiki 预加载策略:启动时并行加载 17 种常用编程语言的语法定义,代码块渲染时无需等待,直接呈现 IDEA Darcula 主题的着色效果。
4. 智能回车:重写默认的 insertNewlineAndIndent,列表行自动续接标记,其他行插入纯换行,避免默认缩进破坏 Markdown 围栏语法。

难点攻克:
- 代码块无高亮且光标异常:根因是 live-preview

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论