✨ 言出法随一句话,AI 就给你做出来 → doAIPM.com
SoloMD

v4.14.7

让 Agent 住进来的编辑器。

v4.0 是 agent-native author 大版本。Agent 从 "外部 CLI 偶尔调用一下" 变成了编辑器内的一等公民 —— 持续在场、跨多个 vault 工作、完整的可见性、可重放、可回滚。 下面所有项都在内核里,不用装插件。安装包还是 ~15 MB。

v4.14.7

4.14.7 —— iPhone / iPad 上的文件,放在你想放的地方。

  • 工作文件夹随你选: iPhone 和 iPad 上可以把「文件」App 里的任意文件夹设为工作文件夹——iCloud 云盘、我的 iPhone 或其他 App 的文件夹,下次打开仍然记得。
  • 「文件」App 里看得到 SoloMD: 「我的 iPhone › SoloMD」现在会显示出来;从「文件」App 打开的笔记直接在原文件上编辑,保存时更新原文件而不是另存副本。
  • 触屏上重命名、移动、删除: 在文件树里长按文件,或点行尾的「⋯」。
  • 升级之后, 之前打开过的文件夹照常打开,不再提示「已经不在原来的位置」。
  • App Store 版 (iPhone、iPad、Mac)不发送任何使用统计,邀请评分只用苹果自带的评分弹窗。

v4.14.6

4.14.6 —— 链接不再把界面占满,可以跨段落选中了。

  • Windows 实时编辑:单击链接不再把整个 SoloMD 换成网页(之前还会导致 Esc、Alt+F4、关闭按钮全部失效)——单击是把光标放进链接,Ctrl+单击才在浏览器中打开。
  • 跨段落选中:Windows 实时编辑下可以向上或向下拖选多个段落,再加粗、删除或直接改写。跨段落的加粗、斜体、删除线、行内代码会按段分别加格式。
  • 有序列表自动重排编号:增加或删除一项后编号自动连续,所有编辑器都支持。
  • 菜单:「设置」移到「文件」菜单;「编辑」新增「查找和替换」;缩放命令收进「视图 › 缩放」;「帮助」分别列出 Markdown 速查、快捷键一览和命令行;插入菜单新增四到六级标题。
  • 另外:Windows 上开着中文输入法时按的快捷键(如 Ctrl+, 打开设置)识别得更可靠了。使用几天后,SoloMD 会问一次——只问一次——你是否愿意去 GitHub 点个 Star。

v4.14.5

4.14.5 —— 导出不再丢东西,Mac 导出 PDF 不用打印机。

  • 导出:macOS 上「导出为 PDF(文字)」直接存成文件,不再弹打印对话框,也不需要打印机。Word 保留所有图片(网络图片、夹在文字中间的图片、表格和列表里的图片、HTML 图片);PlantUML 流程图在 Word 和两种 PDF 里都能显示;PDF 图片版不再丢网络图片;PDF 文字版不再丢公式里的 ∫,代码不再印得发淡。
  • Windows 实时编辑:多行段落点击时不再上下跳动;点大纲后高亮的是正确的章节。(#366、#343)
  • 键盘:文件树里 F2 重命名、Del 删除;「未保存」对话框有访问键(保存 S / 不保存 N);设置搜索可以逐条跳转并隐藏没有结果的分类;空的第一行也能用 Ctrl+1。(#355、#357、#352、#360)
  • 文件树:拖动时提示松手会发生什么;点击导出的 .html 文件直接打开它,不再每点一次新建一篇笔记。(#361、#356)
  • 另外:Windows 编辑区右键可「复制图片」;双栏可以关闭同步(保存后预览才刷新);选定 A4 纸张后 PDF 目录会显示页码。(#362、#347)

v4.14.4

4.14.4 —— 文件树随你排序,新增俄语界面。

  • 文件树排序:按名称、创建时间、修改时间排序,或者拖拽成你自己的顺序;新建的文件排在最后。(#342)
  • 设置搜索:按名称或说明筛选所有设置项,任何界面语言下都能用英文关键词搜。(#352)
  • 编辑更稳:可以选择始终显示 Markdown 符号,切换行不再跳动;可以高亮当前行。预览模式下点大纲会准确跳到标题,大纲也会跟随阅读位置。(#353、#350)
  • Windows:编辑区右键菜单有剪切、复制、粘贴、全选;便携模式把设置存在 SoloMD.exe 旁边的 data 文件夹里;阅读模式有最大化按钮和笔形「切换到编辑」按钮。(#210、#295、#221)
  • 新增俄语界面,状态栏也翻译了。(#157)
  • 导出:PDF 目录页有标题和页码,所有导出改用中性配色。(#347、#332)
  • 另外:新快捷键 ⌘/Ctrl+Alt+/ 在实时编辑和仅编辑之间切换;macOS 访达按空格可预览渲染后的 Markdown;Android 能从相册插入图片了。(#180、#351、#349)

v4.14.3

4.14.3 —— 粘贴的图片能显示了,Windows 编辑器可以自己选。

  • 路径带空格时,粘贴的图片也能显示。像 D:/Program Files/… 这种带空格的文件夹,会让图片链接不符合 Markdown 语法,笔记里显示的是链接文字而不是图片。现在粘贴、拖入、上传图片都会对路径编码;旧笔记里的这类链接在预览和导出中也能显示。(#345)
  • Windows 可以选用 CodeMirror 编辑器,不用开 Vim 模式。设置 → 写作 → 编辑器引擎。CodeMirror 有 Markdown 语法着色,实时编辑更稳;默认仍是「原生」,对中文输入法最稳妥。(#328、#344)
  • 文件树跟随当前文件。切换标签页时自动展开上层文件夹并选中文件,可在设置里关闭;文件夹里的新建输入框也和同级文件对齐了。(#333、#321)
  • 导出:独立 HTML 改为白色纸张效果;Windows 上的文字版 PDF 不再带打印日期和文件名,并可在开头加目录页(设置 → PDF)。(#332、#347)
  • 界面更清爽:⌘/Ctrl+Alt+Shift+T 隐藏工具栏按钮;没启用 AI 时不显示 AI 改写按钮;社区主题在任何内置主题下都能完整生效。(#346)
  • 「关于」对话框里新增了对赞助者的致谢。

v4.14.2

4.14.2 —— 导出更完整,文件树更顺手。

  • 「用系统默认程序打开」恢复可用。一条权限规则写错了位置,导致所有平台上所有「用系统程序打开」的操作都被拒绝:工具栏按钮、文档里链接的 PDF/Office 文件、词典文件夹。现在任意文件都能打开,可执行文件和脚本仍然拒绝。(#331)
  • 打印版 PDF 不再只有一页。文字版 PDF 原来只打出第一页;长表格现在每页重复表头。图片版 PDF 分页时不再切断文字或表格行。(#337)
  • 导出的 HTML 真正独立。Mermaid 图以 SVG 嵌入,不再显示源码;公式样式和字体嵌进文件,不再从 CDN 加载(打开即显示,离线也行);本地图片也嵌入。Word 导出现在也包含 Mermaid 图。(#332、#256、#313)
  • 回车自动续列表:Windows 的「仅编辑 / 分栏」模式补上了,有序列表、任务列表、引用都支持,空项上回车结束列表。(#341)
  • 文件树:删除前先确认(仍进回收站);文件夹图标和缩进线;选中项高亮,并决定新文件建在哪里;可选「双击展开文件夹」;⌘/Ctrl+Alt+Shift+N 在选中文件夹新建笔记;「在文件树中定位」真正滚动到文件。(#338、#340、#333)
  • 其他:Esc 关闭图片预览(#339);输入 ``` 后提示代码块语言(#297);Windows 文件夹选择框可以选桌面(#334)。
  • 其中多项修复来自 @chenghaitao 的 fork,感谢。

v4.14.1

4.14.1 —— 把几个“跟你作对”的地方修掉。

  • Windows 查找不再误删关键词。回车 / Shift+回车 在结果之间跳转,焦点一直留在搜索框,第二次回车不会再把选中的词替换成换行。输入关键词直接跳到光标后第一个结果,当前结果高亮显示,页面还在渲染时视图也会跟住它,结果被搜索框挡住时搜索框会自动让开。按 Esc 回到正文并选中结果。(#330)
  • 表格编辑器打字不再倒着出来。在单元格里输入会变成倒序(“abc” → “cba”),各平台都有。(#319)
  • 分栏窗格可以关掉了。把标签拖到编辑区会分出一个窗格,以前没有任何看得见的办法关掉它,重启后还在。现在每个窗格都有关闭按钮。(#263、#306)
  • 打开的文件一键可达。标签栏放不下时,会出现一个 ⌄ 按钮,列出所有打开的文件。(#218)
  • 文件树:新建文件 / 文件夹的输入框出现在它真正要去的位置,而不是顶部 (#321);长文件名随侧栏宽度显示 (#259);存放图片的附件文件夹(_assets、*.assets)默认隐藏,打开「显示隐藏文件」才显示 (#325)。
  • 表格:短单元格不会再被旁边的长列挤成竖排,应用内和 PDF / HTML / 图片导出都生效。(#271)
  • 另外:Windows 实时编辑点空白处光标会进入正文 (#326);菜单按窗口高度显示,不再固定 360px 就滚动 (#320);手机上展开的工具栏在屏幕内换行,竖屏也能点到设置 (#329)。

v4.14.0

4.14.0 —— 给你天天在打的那些符号配上快捷键,而且找得到。

  • 格式化有快捷键了。加粗、斜体、删除线、行内代码、链接、一到六级标题、引用、三种列表、代码块 —— 十六个命令,全是开关:选中文字按一下加上,再按一下取消;不选中时作用于光标所在的单词。三套编辑器(包括 Windows 那一套)都支持,每一个都可以改键。(#296、#274)
  • 想用 Ctrl+B 加粗,点一下就行,但不强加给任何人。Ctrl+B 从 1.0 起就是开关文件树,所以加粗默认在 Ctrl+Shift+B。习惯 Typora 或 Word 的话,设置 → 快捷键 顶部的「写作预设」点一下就把两者对调,再点一下换回来。
  • 六十个快捷键,现在真的找得到。F1 → 快捷键 不再是一张早就过时的手写表,而是直接读取你当前生效的绑定,并且可以搜索 —— 按名称(中文或英文)或者按键本身。设置里的列表用的是同一个搜索。「插入」菜单最前面是格式命令,每一项旁边显示它的快捷键。第一次手打某种格式符号时,会有一条小提示告诉你对应的键 —— 每种只提示一次,也可以在设置里关掉。
  • Windows:查找会跳到匹配的位置了。长文档里计数器在走、画面却不动,因为在文本框里选中文字并不会让它滚动;实时编辑模式下,匹配项可能藏在一个长代码块里、离屏幕几千像素远。两处都已修复,并在 Windows 上验证过。(#255)
  • Windows:点进一个段落,页面不再跳。你离开的那一块会以另一个高度重新渲染,你点进去的那一块又会把自己滚进视野。现在鼠标下的那一块会留在原地;拖动选中已渲染的文字也不再把你拉进编辑状态。(#300、#240)
  • 几个小修复。Hunspell 词典选择框回到了 Hunspell 复选框下面,而不是挂在「浏览器拼写检查」下面(#246)。带行号的代码块里,空行不再让行号叠在一起(#190)。单独一行 [TOC] 会展开成目录(#289,感谢 @Zxis233)。
  • iOS 要等后续版本。Apple 的 iOS 27 要求 SoloMD 所依赖的框架做一处改动,而那个改动还没有正式发布,所以这一版只面向 macOS、Windows、Linux 和 Android。App Store 上仍是 4.13.0,它不受影响。

v4.13.3

4.13.3 —— 在你背后被改掉的文件,和一个按了没反应的按钮。

  • 被别的编辑器改过的文件,现在会被发现。标签页恢复的是上次关闭时的正文,而这份正文从来没有和磁盘比对过 —— 于是期间被别处改过的笔记一直显示旧版本,再打开一次也没用,因为已经打开的文件只是被切到前台。文件监听器帮不上忙:它只报告运行期间的变化,而且会刻意忽略看起来像我们自己写入的事件。现在启动时、以及每次窗口重新回到前台时,都会重新读一遍所有打开的文件。未保存的编辑绝不会被覆盖 —— 那种情况仍然走「文件已被修改」的询问,而且你点过「忽略」的那一份内容不会反复弹。(#317)
  • 右侧栏按钮总是有反应了。它翻转的是「隐藏/显示」标志,但右侧栏只有在里面某个面板真能渲染时才会画出来 —— 而多数面板需要先打开一个文件夹。没打开文件夹、或者关掉 AI 面板之后,这个按钮就只是改了个标志:第一次点看起来像死的,只有打开一次大纲才「修好」。现在它按屏幕上的实际状态判断方向,并且在打开时确保里面有东西能画。
  • 被别的软件抢走的快捷键会被点名,并给出去处。在装了 AMD 显卡驱动的机器上,七个默认的 Ctrl+Shift 组合根本到不了 SoloMD:AMD Software 把它们注册成了全局热键,按下去是驱动在响应。微软拼音还会再拿走一个。应用看不到一个从未抵达的按键,所以「设置 → 快捷键」现在会列出受影响的命令、说明各自被谁截走,并支持一键改到不冲突的键位。其他人的默认键不受任何影响,「全部恢复默认」可以还原。

v4.13.2

4.13.2 —— Windows 上两个拨了等于没拨的写作开关。

  • 关掉 Vim 模式后,专注模式和实心光标也生效了。Windows 跑的不是同一套编辑器:从 4.7 起它用的是原生文本框,因为 WebView2 会吞掉中文输入的第一个字、还会把标点打成两个。而这两个设置都是另一套编辑器的功能,所以在 Windows 上这两个开关背后根本没有代码 ——打开 Vim 模式反而“好了”,是因为那会把另一套编辑器换回来。现在两者在 Windows 编辑器上都实现了:实时编辑下,正在写的那一块保持明亮、其余变暗;仅编辑和分栏下,当前段落之外整体变暗。实心光标是自己画上去的 —— 没有任何样式能让原生光标停止闪烁;输入法正在拼字时会把原生光标交还回去,所以打字打到一半不会找不到光标。(#316)

v4.13.1

4.13.1 —— 一篇能执行代码的笔记,和一条吃掉文件名的工具栏。

  • 笔记不能再执行 JavaScript 了。markdown 里的内联 HTML 以前是直接渲染进应用的,既没有任何过滤,也没有内容安全策略 —— 于是别人笔记里的 <img src=x onerror=…> 会在编辑器内部执行,而那个上下文里就有应用自己的文件读写命令。代码里原本那条注释写着「这个应用只渲染用户自己的文件」,这个前提是错的,报告人证明了这一点。笔记是会流动的:共享库、下载来的文件、Git 同步的目录、AI 生成的内容。现在渲染后的 markdown 在所有显示它的地方都会过滤 —— 预览、实时编辑、演示模式和全部导出。内联 HTML 仍然可用,因为真实文档在用;脚本、事件处理器和 javascript: 链接不再可用。上传带脚本的 SVG 也会被拒绝,因为图床会用自己的域名把它当文档提供。如果你在旧版本里打开过来路不明的 markdown,建议更新。(#304)
  • 窗口变窄时文件名不再消失。它是整条工具栏里唯一允许收缩的元素,所以放不下时它一个人吸收了全部挤压 —— 实测只剩 8 像素宽,渲染出来就是一个被截断的字,看上去像是被挡住了。(#309、#282)
  • 展开的工具栏只有原来三分之一高。点「⋯」会撑出 195 像素 —— 在 768 高的屏幕上占掉四分之一 —— 而且第二行中间空了 378 像素,因为单行时用来把视图按钮顶到中间的占位,换行后没有东西可顶。现在是两行普通图标,一共 72 像素;桌面端点完按钮也不再自动收起,不用每次操作前都重新点开。这两条都是报告人试用第一版之后提出来的。(#282)
  • 选了暗色主题却没变化时,现在会告诉你为什么。主题市场里 15 个主题有 14 个把明暗两套配色写在一条规则里,于是装上的主题两边都赢,内置下拉框就什么也改不动了。以前没有任何地方说明这件事,而自定义 CSS 那个设置项还隔着三个分类。现在下拉框会直接写明是哪个自定义主题在接管,并给一键停用。(#282)
  • 导出文字版 PDF 时 mermaid 图能渲染了。图像导出和预览都会在渲染之后另外跑一趟把图变成图像,文字那条路一直没有,所以打印出来是图的源码。同时打印不再从 CDN 拉公式样式 —— 一个离线优先的编辑器以前每次打印都在联网,断网时公式样式还会全丢。(#301)
  • 启动更快了。以前不管文档用不用得上,所有依赖都要在第一帧之前编译完 —— 图表渲染器、两套中文词典、PDF 和 Word 导出、演示模式。现在它们等到真有东西要用才加载:启动时的代码少了一半,首屏快约 30%。机器越慢,差距越明显,而反馈正是从那些机器上来的。

v4.13.0

4.13.0 —— 文件树终于能整理了。

  • 文件和文件夹可以直接拖着挪了。以前想把一篇笔记挪进子文件夹,只能退回 Finder / 资源管理器 —— 树里能重命名,却不能移动。现在把节点拖到文件夹上就行;键盘和手机用户在右键菜单里选「移动到…」,敲几个字母筛出文件夹、回车确认。移动可以撤销,打开着的标签页会跟着走(包括被移动文件夹里面的每一个),笔记里的相对链接也会重新锚定 —— 搬到下一层之后 _assets/图.png 会自动变成 ../_assets/图.png,不会出现「挪完图全裂了」。三位用户先后提过同一件事。(#290、#267、#273)
  • 可以显示隐藏文件了。.gitignore、.obsidian/,或者整库以点开头的笔记,以前在应用里根本够不着,只能去文件管理器看。设置里新增开关,默认关 —— 大多数人不需要天天看见 .git。
  • 文件树可以按文件类型过滤。列出来的是你库里真实存在的扩展名和各自的数量,不是一张预设的二十种格式清单。挑了 .txt 之后,子树里没有 txt 的文件夹会一起收起来 —— 过滤到一半还把所有文件夹列给你、要点开才知道里面是空的,那不叫过滤。过滤生效时树顶始终有一行说明和「清除」,不会变成「我的文件不见了」。(#282)
  • 分栏时可以让编辑区和预览区不一样。并排的两栏原本是同一种底色,看久了整片连成一条宽栏。设置里打开后,预览区会拿到一个略微不同的底色;颜色是从当前主题推导出来的,八套主题各自成立,不用为每套单独调。(#279)
  • 窄窗口下的工具栏不再被悄悄切掉。1366×768 的屏幕上,工具栏需要 1532 像素,右边 166 像素连同中间的文件名一起落在窗口外 —— 它其实一直能横向滚动,只是没有任何东西告诉你这件事。现在放不下时右上角出现「⋯」,点开把整条工具栏摊成带文字标签的两三行,每个按钮都看得见,也知道它叫什么。(#282)

v4.12.1

4.12.1 —— 跑出版心的文字,和够不着的菜单。

  • 粘贴来的文字不会再跑出版心。从 Word、网页或聊天记录里粘出来的文本,里面的空格往往是「不换行空格」而不是普通空格 —— 有位用户提交的文件里,119 个不换行空格对 23 个普通空格。这样粘在一起的一整段,在排版引擎看来就是一个断不开的长单词,于是它直接冲出了版心:预览里要横向滚动,导出的 PDF 直接被纸边裁掉。预览、导出 PDF、打印、导出 HTML 四处一起修好。实时编辑模式一直是正常的,这也正是它看起来像渲染 bug 的原因。(#293)
  • 大纲面板重新能铺满侧栏了。在大纲和另一个面板共存时拖过中间的分隔条,再把那个面板关掉,大纲就被钉在原来的高度上 —— 一个四行高的小框待在三倍高的侧栏里,而且已经没有分隔条可拖了,因为分隔条只存在于两个面板之间。现在独占侧栏的面板会自动铺满,最下面的面板负责吸收上面剩下的空间,分隔条本身鼠标移上去也会显形,不再是一条看不见的 4 像素细线。(#294)
  • AppImage 能被 AppImage 管理器安装了。直接双击运行一直是好的,但凡是会把它解包的工具 —— AppManager、Gear Lever —— 都会拒绝安装。打包器在里面写死了一个指向构建机器自己硬盘的绝对软链接,那个路径在任何人的电脑上都不存在。(#291)
  • GitLab 和自建 git 远端终于有地方填地址了。选了「自定义 HTTPS Git 地址」之后,先是一个令牌输入框,然后就是一片空白:没有输入框,也没有按钮,而它上面那行提示还在让你粘贴 clone 链接。这类远端没有可供浏览的仓库列表,粘贴地址就是唯一的流程 —— 偏偏就是它漏了。这两类用户此前连「退出登录」也没有。
  • 斜杠命令菜单可以用键盘往下翻了。按方向键下,高亮走到第 9 项就像是停住了;用鼠标滚下去,列表又会立刻弹回顶部 —— 于是分割线以下的条目,包括白板,全都够不着。原因是弹层每按一次键就被销毁重建一次,滚动位置因此归零,而负责把高亮项滚进可视区的那段代码也从来没被执行到。

v4.12.0

4.12.0 —— 折起来、印出来、撤回去。

  • 折叠标题,连同它下面的所有内容。点行号旁的箭头,或者用折叠命令收起当前一节、全部小节、或某一级以下的全部。折叠模型是纯文本扫描而不是 CodeMirror 的功能,所以 Windows 那套 textarea 编辑器里表现完全一致。
  • 打印不再跟着应用主题走。以前深色主题就打出深色 —— 纸上全是墨,导出的 PDF 也没法看。现在打印和 PDF 用自己的浅色配色,如果你确实想要深色,也有明确的选项。
  • 删除文件后有八秒可以撤销。做法是把删除本身推迟,而不是把文件先挪到某个巧妙的地方:在计时结束前,文件一直待在原处。任何需要文件系统先落定的操作 —— 新建、重命名、切换工作区、关窗 —— 都会先把待删除的操作执行掉再继续。
  • 随时随地快速记一笔。一个全局快捷键(默认 ⌘⌥M)在你正在做的任何事情上面弹出一个小框,输入一行、回车,它就进了收件箱,SoloMD 全程不用切到前台。
  • 任务面板。工作区里所有的 - [ ] 汇成一张表。优先级和截止日期两种写法都认:Obsidian Tasks 的表情符号(⏫、📅 2026-09-10)和纯 ASCII 写法(!!!、due:2026-09-10)—— 这样已有的库直接能用,也不必为了写个优先级去翻表情面板。点一条跳到那一行,勾上就写回文件。
  • 导入 Word、PDF、HTML 和表格。转换器本来就在应用里,只是没有入口。现在菜单里有了 —— 而且导入时重名不会覆盖,会自动取下一个没被占用的名字;比较是不分大小写的,因为 Windows 和 macOS 对"什么算重名"的看法并不一致。
  • 用表格编辑器改表。增删行列不用再数竖线。中日韩文字按显示宽度对齐,所以 Markdown 源码在等宽字体下不会每多一个汉字就歪一格。
  • DOCX 模板。封面、目录、页眉、页码 —— 三套预设,也可以在 frontmatter 里用 docx: 按单篇设置。
  • 公式编号和交叉引用。行间公式上的 \label 会得到编号和锚点,\eqref 变成能跳过去的链接。
  • 工作区文件夹被删掉时,不再看起来像空库。如果文件夹在我们脚下消失了,文件树会用它自己的名字显示一片空 —— 和"里面的文件全丢了"完全分不出来。现在会明确说文件夹不见了,文件夹回来时提示也会自己消失。
  • 文件树右键菜单显示的是键名。有四个字符串从来没有在任何语言里定义过,所以菜单里显示的是 explorer.copyGitUrl 而不是一个标签 —— 十四种语言全都如此。现在都补上了。
  • 给 agent 用:MCP 增加 list_tasks。返回工作区里每一个复选框及其文件、行号和完成状态,和任务面板看到的是同一份 —— 这样 agent 和面板不会对"该勾哪一行"产生分歧。

v4.11.22

4.11.22 —— 那些悄悄没反应的地方。

  • 文件 → 新建窗口,点了不开窗口。这个菜单项派发的事件从来没有监听者,所以自原生菜单上线那天起它就是死的 —— 而命令面板里的同一个操作是好的,这正是它表现为"没有任何反应"而不是报错的原因。现在两个入口走同一条路径,开窗失败也会明确提示,而不是默默失败。
  • 从实时编辑切到 txt,内容一片空白。Windows 上,从实时编辑模式的 Markdown 切换到 .txt 文件时,编辑区是空的,行号却还在按看不见的内容计数。内容从未丢失 —— 行号和编辑器是在不同时刻被填充的,只有行号赶上了。以前要切走再切回才能显示,现在直接就能打开。
  • [[文件夹/笔记]] 链接会另建一个空笔记。带文件夹的 wikilink 一直解析不到,点击就在你想链接的笔记旁边新建了一个同名空文件。现在文件夹路径、frontmatter 别名、以及上次扫描之后新建的文件都能正确解析。感谢 @jukejeew。
  • Linux:文件菜单里加了退出,快捷键 Ctrl+Q。平铺式窗口管理器会隐藏标题栏,既没有 ✕ 也没有明显的退出方式。同样来自 @jukejeew。
  • 拖动分隔条不再全屏闪烁,会导致闪烁的自定义主题在加载时也会给出提示。感谢 @raopan2021。

v4.11.21

4.11.21 —— 那个你根本看不见的快捷键页。

  • 设置 → 快捷键打开是一片空白。4.11.20 把改绑功能发了出去,设置页却是隐形的:设置面板靠一份 CSS 白名单来决定显示哪一类,新增的「快捷键」这一类漏进白名单,于是隐藏规则把它盖住、没有任何规则再把它显示回来。功能本身一直是好的,只是你看不到。白名单现在覆盖全部七个分类。
  • 下载文件可以自行校验。每个版本都会附带一份 SHA256SUMS.txt,覆盖该版本的所有文件,你可以核对下载到的和我们构建出来的是不是同一个。
  • 关于 Windows 上 Chrome 的「正在扫描」提示。Windows 版目前还没有代码签名,Chrome 的「增强保护」会扫描每个新版本,然后提示未检测到病毒 —— 这是通过,不是警告。另外,4.11.20 的 x64 安装包触发了 Microsoft Defender 的机器学习误报,那个下载曾短暂回退到 4.11.19。现在每个版本发布前都会先用 Defender 扫一遍,4.11.21 的 x64 安装包扫描干净,Windows x64 已经跟上最新版。

v4.11.20

4.11.20 —— 快捷键交给你自己定。

  • 所有应用级快捷键都能改。设置 → 快捷键里按 文件 / 编辑 / 视图 / 导航 / 工具 分组列出 37 个动作。点「更改」,按下你想要的组合键,立即生效,不用重启。也可以彻底解除绑定(想把 ⌘E、⌘D 让给别的用途,拿走就是),或单条恢复、全部恢复默认。想占用别的动作已经在用的组合键时会被拒绝,并直接告诉你是谁在用,而不是让一个键悄悄有两个主人。
  • 改了一处,处处都跟着变。你设定的组合键就是工具栏提示上写的、Markdown 速查表里列的、命令面板中显示的——以及在 macOS 上真正要紧的那一处:原生菜单栏。此前菜单是在操作系统层面占着 ⌘S 的,也就是说把「保存」改绑之后 ⌘S 依然会保存;现在菜单会用你的组合键重建,解绑的动作则会连菜单加速键一起去掉。
  • 连编辑器里的 ⌘J 也算在内。「AI 改写」属于编辑器自己的按键表,这次同样可改绑,而且改完对已经打开的编辑器立刻生效,不用重开。只在弹窗里有意义的按键(方向键、Tab、回车、Esc)保持固定;撤销、剪切、复制、粘贴属于操作系统,也不动。

v4.11.19

4.11.19 —— 手机上不再是「缩小的桌面版」。

  • 为手机重做的布局。改之前在 390px 的屏幕上实测:文件树占 250px,右侧栏再占 260px——总共已经超过屏幕宽度,编辑器只剩一条缝甚至完全没有;分栏模式下两栏各约 195px;状态栏折成两行;工具栏是一条 29 个图标、要横向划着找的长带。现在两侧面板变成浮在编辑器上方的抽屉,点旁边空白即可关闭,编辑器始终占满宽度;分栏改为上下堆叠;工具栏只保留六个常用控件(文件树、保存、三种视图模式、搜索)加一个「更多」,点开后整条工具栏展开成面板,其余控件都带图标和文字——没有任何功能变得够不到;状态栏只留下打字时会变化的计数。设置面板也不再是 160px 导航栏挤着 145px 内容区。平板刻意不动:布局跟随视口尺寸而不是操作系统,所以 iPad 保持桌面布局,而桌面窗口拉窄后会切到手机布局。
  • 以全角标点结尾的粗体现在能正确渲染。**限制:**硬链接 之前会原样显示星号。结束的 ** 前面是全角冒号、后面紧接汉字,按 CommonMark 的规则这个位置的标记不能闭合——而这正是中文写作里极常见的写法。现在改为遵循 CommonMark 的 CJK 修正案,把这些判断读作「非 CJK 标点」。两个渲染引擎都改了:预览/导出用的那个,以及实时编辑背后的另一个解析器,避免同一份文档在两个面板里表现不一致。ASCII 行为不变。
  • Windows 上多行 $$ 公式不再被拆碎。用 \begin{aligned} 写的公式块会被切成三段,中间缩进的那行还被渲染成灰底代码块。原因是 Windows 编辑器的分块逻辑认识 ``` 围栏却不认识 $$,于是一行行走进公式内部——而 aligned 里习惯性的四空格缩进行,就被当成了独立的缩进代码块。
  • 导出默认定位到文档所在目录。之前保存对话框只拿到一个文件名,目录沿用系统记住的「上次保存位置」——从笔记文件夹导出,对话框却可能停在上周的下载目录里。
  • 首次启动的 AI 配置里能选全部服务商,并且可以填接口地址。之前向导只列四家,而设置里有十六家,且完全没有地址输入框——用中转地址或自建服务的人只能跳过向导。现在列表与设置一致,接口地址可编辑,无需账号的本地服务也不再强制要求填 key。另外,校验不再卡在没有模型列表的服务上:网关对 /v1/models 返回 404 但对话完全正常时,现在改用一次 1 token 的对话来确认可用。密钥真的错了仍然会判失败。
  • 阅读模式会用你设置的字体。它此前自己声明了一套衬线字体,把字体设置整个挡掉了——代码注释里甚至写着「可以覆盖」。手机上它的退出按钮还压在第一个标题上,现在移到右下角拇指够得到的位置。
  • macOS 安装脚本恢复可用。curl -fsSL https://solomd.app/install.sh | bash 对所有 macOS 用户都会报 "Failed to mount DMG"——脚本把自己接下来要解析挂载点的那段输出给静默掉了。感谢报告者,定位非常准确。
  • 编辑状态下的代码块有了复制按钮。实时编辑模式里,围栏 ``` 是隐藏的,代码块看起来已经渲染好了;但手动框选复制到的仍是源码——围栏行,以及列表里的代码块每行前面那两个空格的缩进。粘进终端还得自己一行行删。现在每个代码块都带上了与预览区相同的一键复制按钮,复制出来的是渲染器眼里的内容:没有围栏,去掉代码块自身的缩进,保留代码自己的缩进。展示代码的三个地方——实时编辑器、预览区、Windows 块编辑器——都有。
  • 局域网上的 Ollama 能被检测到了。如果你把 Ollama 跑在 NAS 或另一台机器上,并把地址填进了「接口地址」,设置 → AI 却一直显示「未检测到」——探测根本没看那个字段,永远只问 localhost,尽管对话本身其实一直在正常访问你的服务。现在探测跟随你填的地址,边改边重新检测,明确告诉你探测的是哪个地址;远程机器没有响应时,提示的是该查什么(远程服务需要 OLLAMA_HOST=0.0.0.0 并放行端口),而不是劝你在本机装一个 Ollama。
  • 新增「OpenAI 兼容」服务商:任何你自己部署的兼容服务——llama.cpp 的 llama-server、LM Studio、vLLM、LocalAI 或公司内部网关。以前唯一的走法是借用别家服务商的位置,而且走不通:key 是必填的(于是大家编一个),地址只填裸的 host:port(恰恰是这些服务启动时打印的形式)会 404,因为代码假定你已经把 /v1 写进去了。现在 key 变成可选,地址会自动补全,模型列表直接从服务器读取;连不上时你看到的是服务器自己的回答(HTTP 404、连接被拒绝)以及该检查什么。Recipe 里也能用:provider: openai-compat(或 llama-cpp / lmstudio / vllm)。

v4.11.17

4.11.17 —— 找回 Option 系快捷键,以及 Linux 上少一次干等。

  • macOS 上所有 ⌘⌥ 快捷键都能用了。macOS 会在按键送到我们手上之前,把 Option+字母 合成另一个字符——Option+N 变成 “Dead”、Option+P 变成 “π”、Option+C 变成 “ç”——而我们比对的是字母本身,于是 ⌘⌥N(新建纯文本)、⌘⌥P(幻灯片)、⌘⌥⇧P(打印为 PDF)、⌘⌥B、⌘⌥L 在 Mac 上从来就没触发过。现在改为按物理键位匹配。顺手给 ⌘⌥C 绑上「复制为 Markdown」——这是大家真正会往别处粘的那种复制,之前偏偏没有快捷键。
  • Linux:无障碍服务不回话时,SoloMD 不再干等它。当桌面的 AT-SPI 总线接下了请求却始终不回复,GTK 和 WebKit 会各自把界面阻塞满自己的 D-Bus 超时——25 秒和 30 秒——期间窗口画不出来、也接不了点击。现在 SoloMD 会在 GTK 初始化之前自己先问一次这条总线,预算两秒:问得到就什么都不改,读屏软件照常工作;问不到就直接以关闭无障碍的方式启动,而不是干等。在故意做成「不回包」的测试环境里,从启动到可用由 51 秒降到 3 秒。
    这不是 Arch 和 Ubuntu 上那两个卡死报告(#253、#200)的修复。那两个永远不会自己恢复,而这里这种干等一定会自己恢复,所以是两回事,排查仍在进行中。如果你正遇到那两个问题,请到对应 issue 里跟进。

v4.11.16

4.11.16 —— 光标待在你放它的地方。

  • Windows 上打字时光标不会再乱跑了。只要打开的文件被外部碰过——云盘同步、拉取更新、保存回写——SoloMD 会重新载入内容,而光标就被甩到文档另一头。有时干脆打不出字,因为同一个动作会打断正在进行的输入法组词,或者让焦点掉出编辑框——焦点一旦不在编辑器里,敲下的字母就被当成快捷键了。这个问题 4.11.1 修过,但只覆盖了 CodeMirror 编辑器,而 Windows 用的是原生文本框,一直没被修到。
  • Gitee 同步可以用了。此前它根本无法通过认证:我们发送的是 GitHub 要求的那个用户名,而 Gitee 会直接拒绝——所以无论令牌多正确,每次都失败。现在已用真实 Gitee 仓库完整验证。(#249)
  • 允许智能体写入时,它真的能写了。「允许智能体写入笔记库」开关此前毫无作用——写入工具从未发给模型,所以它会回答自己没有这个能力。另外菜谱运行完成后停在分支上,从不出现在「待审核」里,也就无法接受或拒绝。两处均由 @jclg83 追踪定位。(#247, #248)
  • 拼写检查支持你的语言。此前写死为英文,对其他语言使用者来说每个词都会被标红。现在可在 设置 → 写作 里选择词典,并把任意 Hunspell 的 .aff + .dic 放进按钮打开的那个文件夹。(#246)
  • 大小写转换。Shift+F3 在 小写 / 大写 / 首字母大写 之间循环,作用于选中内容或光标所在的词;命令面板里也有独立命令。来自 Gitee 上的需求。
  • 弯引号彻底关闭。4.11.11 把它改成可选后只动了默认值,已经开着的用户依旧会在中文字体下看到撇号后一道明显的空隙。现在会为这些用户关闭一次,除非你自己再打开。(#251)

v4.11.15

4.11.15 —— Gitee 上说了好几周的三件事。

  • Windows 上除了实时编辑模式,斜杠命令一直毫无反应。Windows 用的是原生文本框而不是 CodeMirror,因为 WebView2 在中文输入时会丢字——而顶替上去的那套补全,只接到了实时编辑的块编辑器上。在「仅编辑」和「分栏」模式下,弹窗从不出现、不能选择、也无法插入。受影响的还不只是斜杠菜单:[[ 双链、# 标签、@ 引用共用同一个触发机制,同样全部失效。现在四种补全在所有模式下都能用,弹窗也会跟着光标所在行走。(Gitee IK6JCC)
  • 两个 PDF 导出,现在会告诉你它们各自产出什么。「导出为 PDF」是把整页转成图片,所以里面的文字其实是一张图——不能选中、不能检索、体积还大好几倍。而大家真正想要的那个导出,就在它下面一行,名字却完全看不出区别。现在都标注清楚了:PDF(文字)——经系统打印,文字可选中可检索,排在前面并标为推荐;PDF(图片)——转成图片,但不弹对话框直接存文件。工具栏和命令面板同步。(Gitee IK8QJQ)
  • Word / EPUB / ODT / LaTeX 导出重新和预览一致了。这几种格式走的是 Pandoc,而预览会先经过一轮容错预处理,Pandoc 拿到的却是原始文件。于是一个缩进两个空格的子列表,在屏幕上是嵌套的,导出成 .docx 就散成了平级。现在 Pandoc 看到的和你看到的是同一份文本。(Gitee IJXS8V)

v4.11.14

4.11.14 —— 那个把笔记吞掉的空白页。

  • 一个已经不存在的保存视图,会让整个编辑区变成空白且退不出来。报告过来时是安卓上"笔记打不开"——但笔记其实打开了:提示弹了、状态栏也数出了行数字数,然后什么都没显示。主内容区同一时间只画一样东西,而编辑器排在最后,于是一个被标记为"打开中"的保存视图会一直占着位置,哪怕那个视图本身早已不存在。更糟的是,那个面板的 ‹ 返回按钮就写在"没有视图就不渲染"的同一个块里,所以连可以点的东西都没剩下。再多打开几个文件也没用——每个文件都打开进了一个画不出来的面板里。安卓最容易碰到,因为通过系统文件选择器挑的目录常常读不到视图目录,但这个问题本身和安卓无关。现在只要视图解析不出来,编辑器立刻接管,返回按钮也保证渲染。(#245)
  • 极光主题做了一轮打磨。极光色调的细边框、面板内部改为半透明以保证在渐变背景上依然清晰,拖动面板边缘时也不会再整屏闪烁。感谢 @raopan2021。(#244)
  • Arch 包重新跟上了版本。solomd-bin 已上架 AUR,仓库内的打包配置(一直停在 4.1.0)现在跟随实际发布版本。感谢 @gonwe。(#241)

v4.11.13

4.11.13 —— 像样的 Gitea 集成、11 套新主题,以及两个一直没反应的功能。

  • Gitea / Forgejo 成为一等公民。4.11.12 让自托管同步走得通,这一版让它真正好用:Gitea 令牌单独存在钥匙串里,你可以同时持有 GitHub 和 Gitea 两个令牌;服务器地址会被记住,并在你正式使用前先探活;现在还能直接列出你的仓库、替你创建笔记仓库,不用再手动粘贴克隆地址。由 @JumpingY 贡献,已用真实 Gitea 服务端完整验证。(#150)
  • 新增 11 套社区主题。极光、深蓝、深绿、深紫、冰蓝、石墨灰、墨蓝、玫瑰粉、新拟态、VSCode Modern、暖沙 —— 由 @raopan2021 制作,在 设置 → 浏览社区主题 里。自定义 CSS 文件旁边也加了个重新加载按钮,在编辑器里改完主题不用重启就能看到效果。(#239)
  • 只要你收起过右侧栏,「在文件夹中搜索」就是死的。Ctrl/Cmd+Shift+F、工具栏按钮、视图菜单三个入口全都毫无反应 —— 再按一次还会把状态悄悄翻回去。搜索面板本身是渲染在右侧栏里的,而右侧栏的总隐藏开关优先级更高,于是面板被打开在了一个画不出来的地方。现在四个入口都会自动展开侧栏。(#209)
  • Mac 上按住 Cmd 不会再误缩放整个界面了。滚轮缩放原先只要有任何一点滚动就走一档,而 Cmd 又是 ⌘S、⌘Tab 时几乎一直按着的键 —— 手指搭在触控板上的轻微漂移,就足以把整个界面一路缩到最小。现在误触触发概率降到约五分之一,刻意缩放的手感完全不变,并且在 设置 → 基础 里可以把这个手势整个关掉。(#215)

v4.11.12

4.11.12 —— 自托管服务器可以同步了,安卓不再展示它做不到的功能。

  • 自托管 Gitea / Forgejo 同步真的能用了。同步引擎本来就与厂商无关,卡住的是设置界面:服务商选择器只出现在保存令牌之后,而保存时会拿令牌去 github.com 验证、失败后直接把它删掉 —— 自托管令牌根本活不下来。现在先选服务商,非 GitHub 的令牌也不会再被拿去问 github.com。已用真实 Gitea 服务端完整验证。(#229)
  • 安卓不再显示它跑不了的同步设置。安卓版内部没有 Git 引擎,但界面照样画出整个同步面板和版本历史 —— 每个按钮都回一句莫名其妙的 Command not found,而且开着自动提交时每次保存都会报错。这些控件在安卓上已移除,改为一句明确的说明。(#230)
  • 不再在每个打开过的文件夹里生成 .solomd。只是打开文件夹看一眼,也会留下一个 .solomd 目录。这个目录是用来在多设备之间接力标签页的,所以现在只在真正的云同步目录里写入 —— 普通本地文件夹不会再产生任何东西。(#236)
  • AI 服务商新增 OpenCode Go。一个订阅覆盖 24 个模型,由 @fengzhoujingshui 贡献。(#232, #235)
  • Linux 安装脚本支持 ARM。install.sh 此前只会去取 x86_64 的包,导致我们早已发布的 arm64 构建在树莓派、ARM 虚拟机上根本装不上。由 @jysz 修复。(#220)

v4.11.11

4.11.11 —— Windows 窗口按钮恢复可用,Vim 也能保存了。

  • Windows 最小化、关闭按钮恢复可用。统一标题栏的窗口按钮因为缺了一项权限被挡住 —— 点了没反应,只能从任务栏关。已修复并在真实 Windows 构建上验证。文件菜单加回了「退出」项,下拉菜单不再因为在其下方滚动而关闭,阅读模式也有了自己的最小化/关闭按钮。(#221, #223)
  • Vim 能保存和退出了。:w、:wq、:x、:q 现在都如预期工作,走 SoloMD 真实的保存与未保存确认流程。顺带修掉了一个隐患:刚打完字就保存有可能漏掉最后几个键入。(#222)
  • 撇号后不再多出一个空格。预览默认开着智能引号,部分字体把弯撇号画成全角,看起来像多了个空格。现在引号按输入原样显示;弯引号改成新增的可选设置。(#216)
  • 安卓:词典、翻译 App 重新出现。选中文字时会列出已安装的 PROCESS_TEXT 应用(离线词典、翻译工具)。(#224)

v4.11.10

4.11.10 —— Windows 标题栏合三为一,外加三个你们催过的修复。

  • Windows 统一标题栏。原来三行窗口 chrome 合并成一行 —— 窗口按钮、标签页、工具栏同排,和 Mac 版一致。最大化按钮上的 Snap Layouts 依然可用,MSI 安装器也换上了正式品牌样式。
  • 全选不再卡死 Windows 编辑器。块编辑器里的 Ctrl+A 改由 SoloMD 自己处理,不再和原生 textarea 抢行为。(#189, #210)
  • 代码块换行在实时编辑里生效,PDF 也不再截断代码。「代码块内自动换行」设置现在编辑时同样生效,导出 PDF 不会再切掉长代码行。(#211)
  • 有序列表里的嵌套列表不再被拍平。数字列表下的子项目符号列表保持层级。(#213)

v4.11.9

4.11.9 —— 缩放不再打偏,外加四个呼声很高的小功能。

  • macOS 上 ⌘+/⌘- 缩放后点击不再错位。缩放改走系统级 webview(与 Safari 同机制),任何缩放倍率下光标都精确落在指针位置。(#192)
  • 侧栏不会再"卡在隐藏"。通过快捷键、设置或标签栏打开大纲(或任何面板)时,会同时唤回被自动隐藏的侧栏。(#207)
  • 命令面板说你的语言。全部 85 条命令跟随 设置 → Language(14 种语言);搜索同时匹配翻译名和英文原名。(#177)
  • 新增选项:光标不闪烁(#193)、独立代码字体(#190);从预览复制表格到邮件不再丢边框。(#189)

v4.11.8

4.11.8 —— 双栏对齐了,位置也记住了。

  • 分栏模式左右保持水平。编辑器和预览在任意滚动位置像素级对齐——软换行长段落、图片、HTML 块不再把两栏越拉越远,行号也始终贴住对应行。(#203)
  • 切换标签不再丢失位置。Windows 上切走再切回,画面停在你离开的地方——仅编辑、分栏、实时编辑三种模式都是。(#169)
  • ==高亮== 在实时编辑中渲染。与加粗/斜体同款行为:光标离开即显示高亮,进入行内还原源码;代码块保持原样。打字机模式也补上了 Windows 编辑器的光标行居中。(#199)
  • 大纲跳转标签越过 az 后的错误已修复。长文档不再出现 aundefined。(#206)

v4.11.7

4.11.7 —— Windows 只保留一条可靠的安装通道。

  • MSI 成为唯一正式安装包。SoloMD 统一安装到 C:\Program Files\SoloMD;需要免安装时仍可使用 Portable ZIP。
  • 旧的用户级安装会安全迁移。首次从 MSI 路径启动时,SoloMD 会严格核验并移除停用的 %LOCALAPPDATA%\SoloMD NSIS 安装,以及它遗留的快捷方式和任务栏固定项。
  • 文档和设置不会被删除。迁移不会触碰 %APPDATA%\app.solomd 与用户文档。

v4.11.6

4.11.6 —— Windows 升级后继续显示正确的新图标。

  • 任务栏固定项、快捷方式与运行中的应用统一为同一个稳定身份。升级后不再回退到旧图标或空白图标。
  • 这是一个聚焦 Windows 的热修。macOS 与 Android 同步刷新安装包以保持下载一致,平台行为没有变化。

v4.11.5

4.11.5 —— 实时编辑终于能正确显示内嵌 HTML。

  • 块级 HTML 在编辑区直接渲染。<div>、<table>、<details> 等容器在光标离开后显示实际内容。
  • 行内 HTML 像 Markdown 格式一样工作。<strong>、<sup>、<mark>、<kbd> 等标签不再作为杂乱源码常驻。
  • 源码仍然随时可编辑。把光标移回 HTML 片段即可恢复原始标记。

v4.11.4

4.11.4 —— 新标志进入应用标题栏。

  • 标题栏换上新的 Portal 标志。应用内工具栏不再显示旧的 #MD 文字组合。
  • 关于弹窗同步统一。两处现在共用同一个品牌组件,以后不会再出现一处更新、另一处遗漏。
  • macOS 文件图标已写入并注册。签名、公证后的 universal DMG 将 Markdown 文件映射到新的暖白纸张 Portal 文档图标。

v4.11.3

4.11.3 —— 新 Logo,加上两个刚收到的修复。

  • SoloMD 换上全新视觉标识。新的橙色 # Portal 应用图标已统一覆盖 macOS、Windows、Linux、iOS、Android、App Store 和官网。
  • Markdown 文件一眼就能认出来。默认文档图标改为暖白纸张、橙色折角和同源 # Portal 标志。
  • Windows Vim 模式恢复可用。开启 Vim 后立即切到 CodeMirror;普通 Windows 编辑仍保留对中文输入法更安全的 textarea 路径。
  • 代码块新增复制按钮。每个渲染后的围栏代码块右上角都有固定、可访问的一键复制操作。

v4.11.2

4.11.2 —— 四个一直硌手的小毛病。

  • 代码块可以换行了。新设置让超宽代码折行显示而不是横向滚动条;PDF/打印始终强制换行,纸面上不再裁掉超宽代码。
  • 标签页记住你看到哪了。只滚动没点击时切走再切回,画面不再被重置到开头;行号也不再错位。
  • Vim 的 j/k 不再跳过表格。单步移动会落在折叠的表格/公式/Mermaid 块边缘并展开源码,与方向键一致。
  • 文件树可显示完整文件名。新设置让长文件名换行完整显示,不再中段省略。

v4.11.1

4.11.1 —— 光标待在你放它的地方。

  • 修复中文输入光标跳到最前面。在段落中间编辑后立刻打中文,防抖同步的竞态可能在输入法合成期间整篇替换文档——光标被甩到文档开头,打到一半的拼音也落在文首。现在合成永不被打断,外部更新也会保住光标位置。
  • 更新提示不再抢走你的浏览器。检测到新版本只显示 12 秒可点击的 toast,点了才打开;所有更新相关跳转(toast、设置检查、关于对话框)统一指向 solomd.app 官网,不再走 GitHub。
  • AI 模型列表全量刷新,覆盖全部 14 家服务商(GPT-5.6 家族、Grok 4.5、Claude Fable 5 / Opus 4.8、Gemini 3.6、GLM-5.2、Kimi K3 等;移除已退役的 DeepSeek 旧端点)。

v4.11

4.11 —— 坏表格自己修好。

  • 畸形表格照样渲染。AI 导出和 PDF 转 Markdown 工具经常生成与表头对不上的分隔行——多一格 |---|、少一格、或夹着空单元格——整个表格就静默塌成一段 | … | 纯文本。SoloMD 现在像 Typora / Obsidian 一样即时修复分隔行,保留每列的对齐方式;代码块里的示例表格不受影响。
  • 编号章节可自动转标题(可选开启)。公文和报告常把章节号写成纯文本——6.2 出口许可证管理目录——没有 #。新增设置(默认关闭)按层级把这类行提升为真标题:6.2 → h2,6.2.1 → h3。有序列表、小数开头的句子、单个数字一律不动。
  • headless 导出与应用同引擎。CLI(solomd-export 新增 --number-headings 参数)和 MCP export_note 工具(新增 number_headings 参数)现在与应用内预览 / DOCX 导出跑完全相同的 Markdown 预处理——一套引擎,三端输出一致。

v4.10

4.10 —— PlantUML + 预览宽度可调。

  • PlantUML 图表(可选开启)。```plantuml 代码块在预览和实时编辑中渲染成图表,走可配置的 PlantUML 服务器。默认关闭——不开启时笔记内容绝不出本机;填自建服务器地址即可让渲染完全留在自己的内网。
  • 预览宽度由你定。预览/阅读模式的内容栏宽度改为滑杆设置(480–1600px,原先固定 760px)。「自适应宽度」仍可一键铺满。
  • 表格不再卡光标。实时编辑里 ↑/↓ 之前会整个跳过渲染的表格,甚至掠过表格下方的整段文字。现在光标逐行移动,走到表格(以及公式 / Mermaid 块)边缘会进入源码编辑,离开后重新渲染。
  • 代码块行号修复。开行号后行距翻倍的问题修复;C 风格 /** */ 多行注释把整块吞进第一行的问题修复;所见即所得模式现在与预览遵循同一个行号设置。
  • 点击就是点击(4.10.1)。切换标签页后立即点击编辑区——图表/图片还在渲染时——可能变成选中多行而不是放置光标。现在即使布局在点击瞬间发生位移,光标也会留在你按下的位置。
  • 点链接用默认程序打开文件(4.10.2)。Markdown 里指向本地 PDF / Office 文件的链接([报告](./report.pdf))现在用系统默认程序打开,不再转成 Markdown。新增设置(默认开启);指向 .md / 文本 / 图片的链接仍在应用内打开。

v4.9

4.9 —— 安卓真实文件夹 + 编辑器打磨。

4.9 让 SoloMD 在安卓上直接打开并编辑你的真实文件夹——不是沙盒副本。 在 Android 11+(包括荣耀 / 华为 Magic OS,那上面"所有文件"权限其实什么都不给) SoloMD 改用 存储访问框架(SAF):选一次文件夹,之后就能就地读写真正的 .md 文件,通过系统内容提供程序写回。

  • 安卓文件夹保管库(SAF)。打开真实文件夹、就地编辑,移动端全宽布局。
  • 修复"另存为"。之前在安卓上会存出空文件——现在内容会正确写进你选的文件里。
  • 查找(Ctrl/⌘+F)输入即定位。边打字边跳到第一个匹配,像浏览器一样——长笔记里不再"像是没找到"。
  • 实时编辑方向键跨块。Windows 分块编辑器里 ↑/↓/←/→ 现在能在段落间移动光标——4.9.6 起还能识别自动换行,长段落里按 ↑ 不再整段跳过。
  • Windows 显示行号(4.9.6)。「显示行号」设置在 Windows 编辑器里生效了,自动换行时行号依然对齐。
  • Mermaid 图表导出 PNG(4.9.6)。点击图表 → 导出 PNG / 复制图片,2× 分辨率、背景随明暗主题。
  • 保存自动取标题(4.9.6)。未保存过的笔记若以 # 标题 开头,保存框自动预填「标题.md」,不用再手打文件名。
  • Linux 启动修复。AppImage 在部分 Intel / Mesa 环境不再以 EGL_BAD_PARAMETER 崩溃。

v4.7

4.7 —— Windows 换上全新编辑器。

仅限 Windows。Windows 上的 SoloMD 现在改用一套彻底重写的 分块编辑器,不再用 CodeMirror。WebView2 的 contentEditable 会吞掉中文 / 输入法的第一个字、 并把标点变成双份(搜狗最严重)—— 这个 bug 在 CodeMirror 里无法修复,因为它出在 WebView2 本身。新编辑器让每个块走原生 <textarea> 的系统输入法路径,吞字和双标点的问题不再出现。

新的 Windows 编辑器功能完全对齐:实时 Markdown 预览、自动补全 与斜杠命令(/)、专注模式与打字机模式、智能列表续写、AI 改写 (Ctrl+J)、文内查找替换(Ctrl+F)、剪贴板图片粘贴、 任务清单勾选、撤销 / 重做、Tab 缩进、拼写检查与自动换行。

macOS、Linux、iOS 和 Android 不受影响 —— 继续使用现有的 CodeMirror 编辑器。4.7 还修复了:命令面板在悬停或滚轮滚动列表时不再乱跳(#93)。

v4.9

4.9 —— Android 能打开你真正的笔记库了。

此前 Android 上 SoloMD 唯一能自由读写的文件夹是 /Android/data 下的沙箱目录,未 root 的手机上任何文件管理器 都进不去 —— 所以你没法把 app 指向自己真正的笔记文件夹。4.9 加入 「所有文件访问」权限:授权一次, 打开文件夹就能浏览到设备上任意位置的真实库 (Documents、Syncthing / Dropbox 目录、SD 卡), 原地编辑 —— 不再拷进沙箱。文件树、搜索、版本历史、保存 全部对你的真实路径生效(#148、#151)。

4.9 同时修复了一批上报的 bug。 macOS 窗口终于能拖标题栏移动了(#153)—— 统一标题栏上线以来,拖动调用一直被一个缺失的权限静默拒绝; 双击标题栏最大化也一并恢复。Android 上「文件已在磁盘上被修改」 弹窗不再打断输入(#148)—— Android 的文件事件会迟到数秒, 应用自己的保存被误判成外部修改;现在按文件修改时间判定。 更新提示改为打开 solomd.app 下载页(国内可达,含 Gitee 镜像), 不再跳 GitHub(#154);手机端隐藏了无效的「在 Finder 中显示」菜单项。

4.8.11 —— 三个用户上报的 bug,修复。 Android 能正常打开文件了(#148):从文件管理器、 "打开方式"或应用内选择器送来的文件是 content:// URI, 任何文件系统调用都读不了 —— 现在会自动导入 SoloMD 文件夹 (保留原文件名,取不到时用文档首个标题命名)并正常打开, 和 iOS「文件」App 的流程一致。GitHub 同步不再"推 main 拉 master"(#147)—— 第二台设备可能永远拉不到第一台的推送; 现在拉取和推送用同一套分支归一逻辑,老仓库只有 master 也有回退。 关闭标签页回到相邻标签,不再跳到列表第一个 (#149 —— 根因分析来自报告者本人,感谢!)。

4.8.10 —— 体验修复合集。Windows 实时编辑模式下 Ctrl+A 终于可以全选整篇文档(以前只能选中当前段落), 全选后复制 / 删除 / 直接输入覆盖都和普通编辑器一致。 删除文件 / 文件夹现在移入系统废纸篓 / 回收站, 不再永久删除(#112),最近文件列表支持单条移除。新增 “单个换行 = 换行符”设置,让预览、Windows 实时编辑和所有导出 (PDF、DOCX、Pandoc)对回车的理解保持一致(#141)。 字体和字号现在处处生效 —— 实时编辑块、预览面板和阅读模式(#143)。 切换标签页保留光标和滚动位置(#144),关闭"恢复标签页"时 "启动进入阅读模式"重新生效,设置页各分类不再共享滚动位置, 工具栏 AI 改写按钮在 Windows 上可用了(#126)。

4.8.9 —— iOS 文件打开,这次真修好了。从"文件"App、 隔空投送或其他 App 打开 Markdown 不再报 "No such file or directory"(#139)—— 分享送进来的是一个从未解码的 file:// 百分号编码 URL。 最近文件在 App 更新后不再失效(iOS 每次更新都会更换容器路径, 现在会自动重新定位),打开文件夹会把工作区固定到 SoloMD 文稿文件夹,标签栏支持手势滑动滚动。桌面端:本地 SVG 预览跨窗口不再丢失(#142,感谢 @beihai23)。

4.8.1 —— 修复。查找替换重新变得好找 (加了命令面板入口;它一直在 Ctrl+F 后面,#137)。在 WSL 笔记里点击相对路径 .md 链接不再报 “os error 3”(#138)。把 阅读模式设为启动视图且关闭"恢复标签页"时,不再打开空白窗口 (#128)。macOS 应用图标改为标准圆角 squircle + 留白(#111)。 GitHub 同步 token 失效时会主动提示重新连接,而不是甩一句原始 401。

4.8.0 —— 图片上传到图床。粘贴、拖入或选择图片时, SoloMD 现在可以把它上传到外部图床并插入外链,而不再只复制到本地文件夹 —— 和 Typora / MarkText 一样。支持五种后端:PicGo(本地服务)、 自定义命令(PicGo-Core / uPic / 任意脚本)、SM.MS、 S3 兼容(阿里云 OSS / 腾讯云 COS / Cloudflare R2 / MinIO), 以及 GitHub 仓库 + CDN。另有"插入网络图片 URL"和 "上传本文所有本地图片"命令。粘贴时自动上传,图床不可达会自动回退本地副本。 在 设置 → 写作 中配置。

4.7.4 —— Windows 编辑器的 Backspace / Delete 恢复可靠。Windows 实时编辑模式下每个段落是独立的文本框,因此在段落块开头按 Backspace、或在块末尾按 Delete 时会撞到文本框边界、毫无反应,删除"时灵时不灵"。 现在这两种边界按键会作用于整篇文档,像普通编辑器一样合并段落 / 删除空行, 光标与焦点也会跟随。

4.7.3 —— PDF 导出不再因主题或内容使用现代 CSS 颜色函数(color()、oklch()、color-mix()) 而报错,导出失败也不再导致界面卡死或可缩放(#115)。另外:分屏同步滚动 在 Windows 上恢复正常 —— 4.7 重写 Windows 编辑器后,编辑区与预览不再互相跟随的问题已修复。

4.7.2 —— 文件树支持拖拽调节侧边栏宽度 (拖边缘,180–600 px)、按文件类型显示图标、长文件名 中间省略;macOS 标题栏不再与应用内工具栏重叠(#121)。另外修复 PDF 导出: 正文段落和列表项不再在分页处被横向切断。

4.7.1 —— 实时预览现在不只渲染标题,无序列表(•)、任务复选框、 分隔线也都渲染了(macOS / Linux / iOS / Android);源码模式恢复真·纯文本 (关闭实时预览时标题不再放大)。另外:文件树复制路径 / 相对路径 (#120)、关闭文件夹按钮(#118)、限制编辑器宽度 可读列宽(#109)、阅读模式也能用 Fit-Width 切换(#117)。

v4.6

4.6 —— 知识图谱那一半,建好了。

一次彻底的设计系统 + Vue 组件库重构(暖中性表面、橙色 #ff9f40 强调色)和统一的 macOS 标题栏 (红绿灯按钮内联进工具栏)—— 外加过去像 Tolaria 这类知识图谱编辑器有、 而 SoloMD 没有的那 7 个结构化功能。全部以纯 .md / YAML 落盘, 没有新文件格式。

属性检查器(⌘⇧I)

专用的 frontmatter 编辑器 —— 日期、关系、状态、标签选择器, 不用再手写 YAML。改动直接写回笔记的 front-matter。

类型驱动侧栏

type:<名称> 笔记成为侧栏一级可折叠分区 (types-as-lenses),每种类型可自定义图标、颜色、排序与置顶属性。

类型化关系

belongs_to / related_to / has frontmatter 字段,带自动反向 —— 声明一边,另一边自动成立。

关系图谱("Neighborhood")

每篇笔记的出链与反向关系浏览器 —— 从当前笔记出发, 一跳一跳走图谱。

保存的过滤视图

持久化的侧栏视图,存为 .solomd/views/*.yml —— 按类型 / 状态 / 日期 / 正则过滤,重启后依旧保留。

Inbox 工作流

⌘E 把当前笔记标记为已整理并自动前进到下一篇 —— 真正的 Inbox Zero 闭环,用来分拣随手捕获的笔记。

tldraw 白板

通过 ```tldraw 围栏实现 Markdown 白板 —— 持久存在笔记的 .md 里,且与 Tolaria 的磁盘白板格式互通。

设计系统 UI + 统一标题栏

暖中性表面配色 + 橙色 #ff9f40 强调色,基于一套正式的 Vue 组件库重建;统一的 macOS 标题栏把红绿灯按钮内联进工具栏。

五大支柱(v4.0)

每个都在内核里,可在设置里开关。完全兼容你已有的笔记 —— 没有数据库迁移、没有新文件格式、不强制云账号。

1 · 内置 Agent 面板

右侧一等公民面板,跟大纲 / 反向链接 / 标签 / 历史平级。 通过进程内 MCP 接口和已有 14 家 AI provider 组成 streamed chat-with-vault。[[wikilink]] 引用解析为真正的笔记跳转;每次 agent 调工具的卡片 在对话流里展开,看得到读取了什么、写入了什么。 回复太长?插入 和 复制 按钮把整段塞进当前编辑器 —— 有选区就替换,没选区就插到光标处。运行历史以纯 markdown 形式存在 .solomd/agent-runs/ 下,可 grep、可被 git 追踪。

2 · Agent Recipe / 定时运行

声明式 agent 任务,YAML 文件放在 <workspace>/.solomd/agents/*.yml。 触发器:schedule (cron)、on-save、 on-commit、on-tag-add、手动。 安全护栏不可妥协:每次运行都开自己的 AutoGit 分支 agent/<recipe>/<run-id>, 所有写入只落到分支上,通过 accept / reject UI 评审后再合入 main;单次 write-cap (默认 5,硬上限 50) 防止失控循环;Reject 之后分支被 hard-delete,git 历史里完全看不到这次运行。自带 11 个 Recipe 模板(周报、日志整理、 TODO 抽取、翻译、引用清理、CJK 校对、…) —— 安装、改 prompt、运行,三步走完。

3 · Agent Trace View

每次运行 (无论是 Panel 对话还是 Recipe) 都按步生成 trace.jsonl: prompt / model_call / tool_call / tool_result / git_commit / done。 步骤卡片可展开看 args、结果、token 数、成本估算、 AutoGit 分支引用。从第 N 步重放 按钮把运行回退到第 N 步,改输入后从那里重新跑 —— 这是 self-correcting recipe 的入口。新增 MCP 工具 read_agent_trace(run_id),把 trace 暴露给其他 agent 读取。

4 · 多 Vault MCP Federation

solomd-mcp --workspace path1 --workspace path2 --workspace path3 —— 一个 MCP 会话,多个 vault。工具签名加了可选 workspace 参数,默认 = 第一个传入的 (完全向后兼容单 vault 客户端)。AutoGit 分支按 workspace 隔离。设置 → 集成 里有 MCP profile UI:把多个 vault 命名打包,一键 复制 Claude Desktop 配置片段。

5 · Ollama 一等公民

我们 不 自己捆绑本地 LLM 运行时 —— Ollama 已经做得很好。v4.0 只是把集成磨得更顺: 自动检测 localhost:11434 (设置 → AI 里有绿色状态灯)、未安装时一键引导安装、内置三个 模型预设 (rewrite → qwen2.5:7b · quick → qwen2.5:1.5b · cjk → qwen2.5:14b)、空模型列表时 内联推荐 pull。Recipe 可以 provider: local (ollama 别名),用零云成本跑自动化循环。 你的笔记永不离开机器 —— 通过 BYOK Ollama 这一直是真的,v4.0 把它做成 discoverable 的入口。

🛡️ 安全护栏 (别人都没做的部分)

  • AutoGit 分支沙箱。每次 Recipe 运行都开自己的分支。在你点 Accept 之前, main 一动不动。Reject 的运行 什么也不留 —— 分支删除,文件树回退。
  • 单次写盘上限。模型在 cap 是 5 的情况下要写 50 个文件,从第 6 次工具调用开始就被拒。 不会出现"半成品"状态、不会出现意外的批量改动。
  • 工作区脏时拒绝启动。你有未提交的修改时 Recipe 触发会直接报错退出,不会把你的 WIP 扫进 agent 的 commit 里。
  • 路径穿越加固。进程内工具接口和所有 接受用户传入 run_id / path 的 Tauri 命令,现在都会前置拒绝 .. 段和绝对路径。Agent 从代码层就写不出 workspace。
  • 可重放的 trace。每一步都按行 JSON 落盘。Panel 行为可疑?走 trace,定位坏步,改输入, 从第 N–1 步重放。

质量条

  • 首次启动向导。新装用户 60 秒内见到 Agent 面板 —— 引导你填 BYOK key 或装 Ollama。 后续可从 帮助 重新打开。
  • Recipe 菜谱(11 个起步模板)。 设置 → Recipes → 浏览菜谱。周报、日报、TODO 抽取、 翻译过一遍、引用清理、CJK 校对 agent、链接腐烂检测、 front-matter 规范化、大纲转博客、重构过一遍、 周度 tag 整理。安装、改 prompt、运行。
  • 本地 REST API(只监听 localhost, token 鉴权)。和 MCP 同一套接口,给那些还没接 MCP 的客户端用 —— Alfred / Raycast / n8n / 你自己的脚本。
  • BYOK 成本计。按 provider 累计已花 token 数,opt-in。设置 → 集成。
  • 本地化。ja / ko 翻译骨架在 README + iPad 商店元信息里。en/zh 仍是 UI 全覆盖语言。

第一天就能感受到的 UX 打磨

  • 到处的 IME 守卫。拼音用户打中文、 日文 kana 模式、韩文谚文 —— 按回车确认候选词不会再 误触发对话发送 / 文件树重命名 / 命令面板执行 / 搜索打开。 一次性修了 7 个输入面板。
  • Assistant 回复的 插入 / 复制 按钮。 每条完成的回复下方两个按钮。插入会感知当前编辑器选区 (有选区就替换),没选区就插到光标处。复制就是普通 剪贴板。
  • macOS 启动 UX。启动激活时机修对了 —— SoloMD 冷启动会真正到前台,不会再藏在 Finder 后面。窗口位置恢复时永远落在当前显示器工作区里; 副屏断开后从坏存档恢复时会自动重新居中,而不是开到 屏幕外。
  • "生成中..." 卡死无错误。修了。 provider 配错 (例如 Ollama 选了未拉取的模型) 之前会 让面板挂死。现在你会看到红色错误条带后端的实际响应, 发送按钮也会回来。

v4.0 明确不做的(以及为什么)

说"不"也是产品的一部分。下面这些被认真考虑过、明确不做:

  • 自带本地 LLM 运行时。Ollama 已经做得很好; 重新发明轮子违反"少写需要永久维护的代码"原则。 BYOK provider 仍是路径。
  • 线上 Recipe 市场。服务器运维 + 内容审核 = 偏离主线。 菜谱直接打进发行版,跟着工具一起更新。
  • 多人 / 团队 agent。违反"一个窗口,一个写者"。 这个产品给单作者用;协作属于另一个产品。
  • Copilot 风格的鬼字补全。不同的品牌定位。 鬼字补全会稀释作者自己的声音;我们的 agent 工作单位是 vault, 写入是批量 + 可审 + 走分支的。

升级须知

  • 没有文件格式变更。已有的 .md、 AutoGit 历史、同步配置、BYOK key 全部原样保留。
  • Agent 面板首次启动自动开。v3.6.x 用户因为 v4-beta 期间脚手架的默认值,会有一个隐藏的 showAgentPanel: false;一次性迁移会把它 翻成 true,你才会真正看到这个主打功能。不想要可以 ⌘⇧P → View: Toggle Agent Panel 关掉。
  • 设置面板新增 Recipes 和 成本计 两个分页,在 集成 下。已有的设置位置不变。
  • MCP server (solomd-mcp) 加了 --workspace 参数(可重复)。 原来单 workspace 的 MCP 客户端继续工作不受影响; federation 行为是可选加入的。

🔮 接下来

5 大支柱 + 质量条是这次的主要内容。v4.x 及之后 的开放方向都在 roadmap 上:沙盒化的脚本 API、CLI v2 (终端里 rewrite / commit / 语义搜索 / 触发 recipe)、以及一直拖着的 "SoloMD 要不要做成商业产品?" 问题 (付费同步 —— v3.0 时代的老问题,还没答, 没决定之前不会动这块的工程)。

感谢所有在静默期内提交 issue / 发 PR / 用真实 vault 跑 v4-beta build 的人。v4.0 能 ship 是因为 dogfood 把集成测试漏掉的 bug 一个个揪出来了。 早期版本:看博客 →

评论 & 反馈

评论数据托管在 GitHub Discussions —— 用 GitHub 账号一次登录即可。

评论从 GitHub Discussions 加载。如果一直看到这条提示,说明维护者还没完成 giscus.app 一次性配置 —— 详见 web/COMMUNITY-SETUP.md。

前往 GitHub Discussions →