系列写了五十多篇,上一篇讲的是敏感笔记怎么保护。结尾预告了一个话题:怎么把笔记批量导出成 PDF 和网页。这篇来说说。
先说为什么需要导出。知识库是给自己用的,但笔记总有拿出去的时候。给别人发一份资料,PDF 最省事;写好的文章要发布,Markdown 直接能用;还有一类是存档,把某段时间的笔记打包成文件,不依赖任何软件也能打开。三种场景,三种做法。

场景一:单篇导出,Obsidian 自己就够
最常用的场景,就导一篇。Obsidian 内置了导出 PDF 的功能,不需要装插件。
把笔记切到阅读视图,右上角菜单里选「导出为 PDF」。设置里能调页边距、是否带行号,默认就行。
有个细节:Obsidian 导出 PDF 用的是当前主题的样式,笔记里的彩色标记、高亮会保留。想要干净的效果,先切到浅色简洁的主题再导。
这个方法适合偶尔导一两篇。导二十篇的话,一篇篇点菜单,手会累。
场景二:批量导出,交给 Pandoc
批量导出这种事,交给命令行工具最靠谱。Pandoc 是文档转换工具,Markdown 转 PDF、HTML、Word 都能干。
安装一条命令的事:Debian 系系统 `apt install pandoc`。装完再补一个 LaTeX 引擎,PDF 转换依赖它。
批量转换的脚本长这样:
for f in notes/*.md; do
pandoc "$f" -o "pdf/$(basename "$f" .md).pdf" \
--pdf-engine=xelatex \
-V mainfont="Noto Sans CJK SC" \
-V geometry:margin=2cm
done

三个参数是中文导出的标配。xelatex 是支持中文的排版引擎;mainfont 指定中文字体,不设的话中文变成方块;geometry 控制页边距。缺一个都会翻车。
导出的 PDF 放在 pdf/ 目录,文件名和笔记名一致,好找。
场景三:发布成网页,让笔记能分享
导 PDF 是给人看文件,发布成网页是让人直接访问。
最轻的方案:Markdown 文件扔到服务器,nginx 指个目录。浏览器打开就是纯文本,零成本,适合临时分享,比如把周报转成网页发群里。
想好看一点,用静态站点生成器。Quartz 在 Obsidian 用户里用得比较多,能把整个 vault 变成网站,双链、标签、搜索都有。配置花点时间,跑起来之后更新笔记,网站跟着变。
三个坑

第一个坑:导出的 PDF 图片是空的。笔记用相对路径引图片,换到别的机器导出,路径断了,图片出不来。导出前确认图片能显示,或者用「导出为 HTML」把图片一起打包。
第二个坑:中文乱码。默认的 PDF 引擎不支持中文,出来全是方块。装中文字体、指定 xelatex,问题就没了。这是批量导出最常踩的坑。
第三个坑:导出前没检查内容。内部链接、草稿、没定稿的想法,跟着导出内容一起出去了。往外发之前花一分钟扫一遍,该删的删掉。这个习惯比任何工具都重要。
结尾
导出这件事不复杂:单篇用内置,批量用 Pandoc,发布用静态站。选对工具十分钟搞定,选错工具折腾一下午。
系列聊了不少实操话题,还剩一个有意思的:怎么让笔记之间真正长在一起,而不是各自为政。下一篇来说说。