知识库「导出」实战:把笔记变成 PDF 和网页,怎么不翻车

  系列写了五十多篇,上一篇讲的是敏感笔记怎么保护。结尾预告了一个话题:怎么把笔记批量导出成 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

Pandoc 批量转换命令

  三个参数是中文导出的标配。xelatex 是支持中文的排版引擎;mainfont 指定中文字体,不设的话中文变成方块;geometry 控制页边距。缺一个都会翻车。

  导出的 PDF 放在 pdf/ 目录,文件名和笔记名一致,好找。

场景三:发布成网页,让笔记能分享

  导 PDF 是给人看文件,发布成网页是让人直接访问。

  最轻的方案:Markdown 文件扔到服务器,nginx 指个目录。浏览器打开就是纯文本,零成本,适合临时分享,比如把周报转成网页发群里。

  想好看一点,用静态站点生成器。Quartz 在 Obsidian 用户里用得比较多,能把整个 vault 变成网站,双链、标签、搜索都有。配置花点时间,跑起来之后更新笔记,网站跟着变。

三个坑

三个坑

  第一个坑:导出的 PDF 图片是空的。笔记用相对路径引图片,换到别的机器导出,路径断了,图片出不来。导出前确认图片能显示,或者用「导出为 HTML」把图片一起打包。

  第二个坑:中文乱码。默认的 PDF 引擎不支持中文,出来全是方块。装中文字体、指定 xelatex,问题就没了。这是批量导出最常踩的坑。

  第三个坑:导出前没检查内容。内部链接、草稿、没定稿的想法,跟着导出内容一起出去了。往外发之前花一分钟扫一遍,该删的删掉。这个习惯比任何工具都重要。

结尾

  导出这件事不复杂:单篇用内置,批量用 Pandoc,发布用静态站。选对工具十分钟搞定,选错工具折腾一下午。

  系列聊了不少实操话题,还剩一个有意思的:怎么让笔记之间真正长在一起,而不是各自为政。下一篇来说说。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部