本地优先的 Markdown 笔记怎么管
把笔记存成你自己文件夹里的纯 Markdown 文件,意味着任何编辑器都能打开,任何备份工具都能复制,也不会有哪家公司的服务器来决定你还能不能读自己写的东西。代价是托管类笔记应用替你做的几件事要自己面对,比如服务端搜索、冲突编辑的自动合并和附件的整理,不过对于写得多、又希望文字比某个应用活得更久的人来说,这笔交换通常划算。
本地优先在笔记文件夹里是什么意思
本地优先的笔记应用把磁盘上的文件当作唯一的真身,没有账号,也没有打不开的数据库。在妙言里,笔记库就是你选定的一个文件夹,里面每篇笔记都是一个扩展名为 .md、.markdown 或 .txt 的文件,标题就是去掉扩展名的文件名,所以 项目计划.md 在列表里显示为「项目计划」。
格式就这么简单。Obsidian 的文档也是同样的说法,笔记是 vault 里的纯文本 Markdown 文件,而 vault 是「本地文件系统里的一个文件夹,包括其中的子文件夹」。格式通用,一个应用写出来的文件夹换另一个应用就能打开,grep、git 和 Spotlight 也都能直接用,不需要导出。
得到什么
可迁移。 换编辑器只是让它指向同一个文件夹,没有东西被锁在私有容器里,改主意的成本接近于零。
工具多。 凡是能读文本的工具都能读你的笔记,可以用 rg 搜,可以写脚本做每周回顾,也可以把文件夹交给编码 Agent。妙言自带一个 miao 命令行工具做这件事,在 在终端里使用 Markdown 笔记 里有详细说明。
好备份。 一堆小文本文件是最容易备份的东西,Time Machine、网盘和 git 仓库都把它当普通文件,恢复出来马上就能用。
不锁定,不收集数据。 应用只读写你选的那个文件夹里的文件,妙言的 README 写明笔记是你所选文件夹里的 Markdown 文件,并且不收集数据。
要付出什么
选这条路线之前,这几条值得先看清。
没有服务端搜索和索引。 搜索发生在你自己的设备上,妙言在搜索框里输入时会在笔记库里查找标题和正文,但没有网页搜索,也不能跨机器查询。
同步要交给别人。 应用本身不负责同步,同步由网盘完成,而网盘不懂 Markdown,所以两台设备同时改同一个文件,得到的是一份冲突副本而不是合并后的笔记,细节见 跨设备同步 Markdown 笔记。
附件只是文件。 图片和 PDF 放在笔记旁边,链接只是一个路径,只搬笔记而不搬附件文件夹,图片就会失效。
历史要自己拼。 托管应用常常自带完整的修订记录,纯文件的做法是把应用自己的快照、Time Machine 和可选的 git 拼起来,见 Markdown 笔记的版本历史。
经得起时间的文件夹结构
笔记库很少是因为应用不好用而失败,多半是文件夹变成了杂物抽屉。下面这种结构比较耐用:
MiaoYan/
Inbox/
Projects/
Website redesign/
i/
Reference/
Journal/
Archive/
几条规则能让它一直好用:
- 顶层文件夹少,按用途命名。 按「要处理、要查、要归档」分,不要按主题分,因为主题会互相重叠,用途很少重叠。
- 标题要能凭记忆敲出来。 文件名就是标题,wikilink 指向的也是标题,所以好名字同时也是好链接目标,见 Markdown 笔记里的 Wikilink 与反向链接。
- 不同文件夹里不要重名。 两个文件夹里各有一个
会议记录.md是合法的,但按标题建立的链接分不清它们。 - 附件放在笔记旁边。 妙言把行内图片放在笔记所在文件夹的
i/子目录,其他文件放在files/。 - 保持浅层。 子文件夹可以用,但搜索一步就到的时候,两层通常就够了。
妙言怎么读一个文件夹
这一节是机制,大部分意外都能在这里找到解释。
文件夹在偏好设置(⌘,)的「笔记位置」里用「更改」按钮选择。妙言会先检查这个文件夹是不是可写的目录,检查失败就保留原位置,新文件夹要重启后才生效,所以接着会弹出「重新启动妙言后生效」的提示,取消的话仍然保留原位置。
文件夹打开后,妙言把每个子文件夹列在侧边栏,把每个 .md、.markdown 或 .txt 文件列为笔记,会跳过以点开头的隐藏文件夹、附件文件夹 i 和 files、名为 assets 的文件夹,以及只有附件的文件夹。删除的笔记进入系统废纸篓,在没有废纸篓的卷上则进入笔记库里的 Trash 文件夹。
妙言通过监听 macOS 文件系统事件和磁盘保持同步。别的程序改了正在编辑器里打开的笔记,妙言会从磁盘重新加载,如果你没保存的编辑内容和磁盘上的不同,它会先把你的版本写进笔记库根目录下隐藏的 .miaoyan-conflicts 文件夹,并提示「检测到外部修改,本地内容已备份~」,这些备份会保留 30 天,并且无论多久都至少保留最近的 100 份。
本地图片用  这种写法,妙言按笔记自己所在的文件夹去解析,这是妙言特有的约定,所以把同一个文件夹交给期望相对路径的工具时,要检查图片是否还能显示。
出问题时怎么查
- 列表里找不到某篇笔记。 确认扩展名是
.md、.markdown或.txt,并且所在文件夹不是隐藏文件夹,也不叫i、files或assets。 - 文件夹被拒绝。 网盘目录有时没有作为真正的文件夹暴露出来,妙言的提示是打开网盘应用,确认该文件夹已在访达中可见,或者开启离线访问。
- 同一篇笔记有两份。 几乎都是同步冲突,找找有没有同步服务加了后缀的第二个文件。
- 两个应用同时改。 虽然妙言会从磁盘重新加载并备份你没保存的文字,但最稳的习惯还是一次只用一个编辑器。
任何搬动之后都可以做个小检查,在访达里打开文件夹,确认文件在预期的位置,再搜一句你确定写在旧笔记里的话。
不适合的情况
如果需要和别人实时协作、共享数据库,或者把网页剪藏进托管工作区,纯文件夹并不是合适的工具。想用同一批文件发布网站,纯文件夹是个好起点,但还得再加一个静态站点生成器。
妙言是专为这种 Markdown 文件夹工作流做的 Mac 原生应用,内置分栏编辑预览、wikilink 和版本历史。源码在 GitHub,App Store 版本一次购买覆盖 Mac、iPhone 和 iPad。如果你从 Obsidian 过来,先看 Mac 上的 Obsidian 替代品。
常见问题
已经有 Markdown 文件的文件夹可以直接用吗?
可以,在「笔记位置」里指向它,现有的 .md、.markdown 和 .txt 文件会识别为笔记,对应的文件夹也会出现在侧边栏。
妙言把笔记存在数据库里吗?
笔记本身就是你文件夹里的文件,应用另外在自己的支持目录里保存版本快照,不会写入你的笔记文件夹。
妙言能打开哪些扩展名?
md、markdown 和 txt,来自应用允许读取的扩展名列表。
在访达里重命名或移动文件安全吗?
安全,文件系统监听会发现变化,只是文件名就是笔记标题,之前用旧名字写的 wikilink 将不再指向它。
