我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了

先说一个事实:XJ-Editor 的代码,全部是 AI 写的。

我不是前端开发者,也没有花几个月去啃 Electron 文档。我的角色更像一个产品经理兼测试员:提需求、用,觉得哪里别扭就告诉AI。AI 负责把想法变成能跑起来的代码。最终做出来的东西,是一个本地优先的 Markdown 桌面编辑器,它解决的不是"Markdown 渲染好不好看"这种问题,而是我每天写作时真正在烦的事。

局部截取_20261103_212814.png

为什么自己写:因为市面上的工具总差一口气

Markdown 编辑器太多了。Typora、Obsidian、VS Code 加一堆插件,每一个都能用。但用久了会发现一个共同的别扭:你总是在切换。

写 Markdown 用一个窗口,看 PDF 换一个,转 Word 再开一个,想用 AI 润色一段话又得复制粘贴到网页端。Git 提交要切终端,改个 JSON 要另开工具。这些切换单独看都不致命,但一天下来几十次,耐心就是这么被磨掉的。

XJ-Editor 的出发点很简单:能不能一个窗口把事办完。

项目地址: github.com/xiuji008/xj...

它不是一个编辑器,是一套围绕本地文件的工作流

这个定位决定了所有取舍。

编辑、预览、转换,都在同一个窗口里。 Markdown / HTML / JSON / 纯文本都支持编辑、分屏、预览一键切换。图片、PDF、Word、Excel、PPT、压缩包直接内嵌看,旧版 .doc 也能自适应缩放。最实用的是转换:Word / PPT / Excel / PDF / EPUB 本地一键转 Markdown,基于 anydoc 的 WASM,文件不出本机,转完自动打开编辑。

AI 是内置的,不是外挂的。 OpenAI、Claude、Gemini、DeepSeek、Kimi、千问、智谱、Ollama 八家预设,选中一段文字就能润色、扩写、翻译、校对,或者让它生成图表。多会话、流式回复、引用文件当上下文都有。不用切网页,不用复制粘贴。当前AI功能知识简单接入,未深度使用,后期会逐步添加Agent的能力。

写作刚需一个不落。 Mermaid、PlantUML、Chart.js 直接渲染,KaTeX 公式,GitHub 风格提示块,YAML Front Matter 信息卡片。

这些东西拆开看都是"插件能解决"的,但 XJ-Editor 把它们做成了默认就有。我不用再花一个周末去配 VS Code 的 settings.json。

  • md编辑

局部截取_20261103_210636.png

  • html 编辑预览 !
  • word 预览

局部截取_20261103_210136.png

  • execl 预览

PDF 标记:看资料和记笔记,本来就不该分两件事

写文档的人经常要读 PDF:论文、规范、别人的技术手册。传统做法是 PDF 阅读器开一个窗口,笔记软件开另一个,看到重点就切过去手打一段摘录,或者截图存下来。来回切几次,读到哪都忘了。

XJ-Editor 把 PDF 当成和 Markdown 一样的一等公民来对待,直接内嵌打开,并且支持在 PDF 上做标记:

  • 高亮与标注:在 PDF 页面上划重点、加批注,不用导出到别的软件;
  • 标记跟着文件走:标记和文档放在一起、走本地存储,不依赖云端账户,换台机器拷过去也能用;
  • 边读边写:左边 PDF 看资料,分屏在 Markdown 里摘录和整理,读到哪写到哪,不用切窗口;
  • 与转换打通:需要把整份 PDF 转成可编辑的 Markdown 时,本地一键转换,转完自动打开编辑。

对我来说这一块的价值很直接:读资料的上下文和写笔记的上下文在同一个窗口里。 划完重点顺手整理成笔记,比"截图 → 切软件 → 粘贴 → 忘了为什么截"这条链路短太多了。

局部截取_20261103_211543.png

内置 Git 面板:版本管理不用离开编辑器

对写文档的人来说,Git 常常是个尴尬的存在。你知道该用,但为了提交一次改动去开终端、敲 git add 和 git commit,性价比太低,于是干脆不提交,最后靠"文档_v2_最终版_真的最终.docx"这种文件名活着。

XJ-Editor 把 Git 做成了侧边栏里的一个面板,常用的操作都在:

  • 变更与 diff :改过的文件一目了然,点开就能看逐行 diff,不用切到终端跑 git diff;
  • 提交历史与分支:浏览历史记录、切换分支、创建分支,都在面板里完成;
  • 储藏(stash) :写到一半想切去改别的东西,先把当前改动储藏起来,回来再恢复;
  • 克隆仓库:直接从一个远程地址把仓库拉下来,省去先开终端再回来的步骤;
  • AI 生成提交信息:这是我觉得最顺手的一个。改完一堆文件,懒得想 commit message,点一下让 AI 根据 diff 生成一条,读一遍、改两个字、提交。

它的意义不在于"功能比命令行全"------命令行当然更全。它的意义是把提交这件事的摩擦降到足够低,低到你真的会去提交。写作和版本管理在同一个窗口里,这件事本身就改变了习惯。

内置终端:需要敲命令时,不用切出去

有些事图形界面做不了,或者做起来更慢:跑个构建脚本、npm install、批量重命名、看一眼 git log --graph、起个本地服务。以前这意味着 Alt+Tab 到终端窗口,再 Alt+Tab 回来,思路被打断两次。

XJ-Editor 内置了终端,``Ctrl+``` 呼出,用起来和系统终端基本一致:

  • 多标签:同时开几个会话,一个跑服务、一个敲 git、一个留着备用,互不干扰;
  • 高度可调:拖一下边框就能拉高拉低,写代码时拉大,写作时缩到最小;
  • 跑全屏程序:它接的是系统 shell,所以 vim、tmux 这类全屏 TUI 程序可以正常跑,不会出现渲染错乱;
  • 和编辑器同窗口:改完文件直接在下面终端里提交或跑脚本,上下文不用来回搬。

配合 Git 面板,日常的版本管理流程基本就是:改文档 → 下面终端里跑个脚本或测试 → 侧边栏看一眼 diff → AI 生成提交信息 → 提交。全程没离开过这个窗口。

适合谁

  • 经常写技术文档、博客、笔记,不想在工具之间反复横跳的人
  • 想少装软件、少配插件,一个窗口闭环的人
  • 需要在离线环境写作,或者对数据本地性有要求的人
  • 写文档也想顺手管版本、但懒得天天开终端的人

当前软件考虑的是先把经常使用的功能添加进来,在后续使用的过程中逐步优化

如何使用

该项目目前仅有windows桌面端,可在github release 页面下载exe 文件直接安装使用

github.com/xiuji008/xj...

局部截取_20261103_212525.png

写在最后

它不是要替代谁。它只是一个证明:当你既是用户又是作者的时候,AI 能把"想做点东西"的门槛降到多低。 如果你也厌倦了在工具之间来回切换,不妨试试看。

相关推荐
FRing031 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿2 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
moshuying3 小时前
网购能买Token了!
前端
h_65432103 小时前
echarts实现柱状图加一条横线
前端·echarts
风骏时光牛马4 小时前
生成一个后端标题,只需要一个标题,不需要其他的任何文本。
前端
子非鱼@Itfuture4 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李4 小时前
openFeign入门
java·开发语言·前端
馒头不想说话4 小时前
AI当运营,帮你省人力
前端
梦曦i4 小时前
uni-app x下自研架构的工程化突围
前端·架构·uni-app x