先说句废话:

我一直习惯用 Markdown 来写笔记、写文章、写书,用纯文本写作就是有突突突地快感啊,从写作、保存到 Github、再发布这个流程总感觉一气呵成,并且从来不用担心于类似 Wordpress 的数据备份与恢复这类麻烦事情(但凡做过系统与数据库运维工作的人就知道这个备份与恢复有多麻烦,不然公司为啥要专门请人干这个呢?)。后续对文章的修订与修改也简单,打开文本编辑器再来一次突突突的修改与提交即可。虽然我的站点也没几个人看,但是依然不妨碍我偶尔就是有写作与表达的欲望。

从 Quarto 直接发布为 Hugo 工程

今天做了一件事情,就是直接把 Quarto 建立的 blog 工程发布为 Hugo 工程,然后就可以直接在 Hugo 里启动这个工程来预览、发布。

为什么要使用 Quarto 发布到 Hugo 的方案?

我从很多年前就已经抛弃 Wordpress 而采用静态网站生成工具来建立自已的博客站点,还专门写了一篇文章来介绍我最喜欢的 Quarto 和 Hugo 工具。在我看来,Quarto 相对于 Hugo 来说最大的优势就在于对 BibTeX 文献索引的便捷性,在建静态站点这一块两者其它方面差不多,当然 Quarto 在写大部头作品上的优势另当别论,和现在这里讨论的不是一回事。

Hugo 在科技写作方面,具备一个最大的痛点:无法通过 BibTeX 来自动生成参考文献,必须手动用 Pandoc 之类的工具来置换一次。

对于经常需要写一些长篇大论、参考文献含金量十足的我来说(手动狗头),必须解决这个痛点才有可能提高写作与修改效率,不再需要每次需要发布的时候,都用 pandoc 来手动转一次参考文献。

为什么不直接更换 Hugo 为 Quarto?

  1. 因为我的网站本质上是用 Hugo + netlify 来搭建的,Hugo 在模板、建站上比 Quarto 资源丰富得多;并且这么多年过去了,因为惯性的原因整个站点都是用 Hugo 来建立。没有特别的理由,我也不想折腾再换一套建站工具。毕竟,光一天上 8 个小时(好吧,我承认起码是11个小时)班就够累了。

  2. 还有一个重要的原因,Netlify 托管对 Hugo 更友好,我只要提交 github 的代码,Netlify 就会自动编译与部署。而 Quarto 则需要自己在本地编译好后再发布到 Netlify,对于我偶尔想换个电脑写作有点不方便,我还是习惯打开一个记事本直接快速 markdown 下我的想法,写完后往 Github 上一提交就闪人。PS:就算咱的站点没有什么读者,也一样对行云流水的流程特别有感觉。

为什么不直接使用 Quarto?

Quarto 在科技文献写作上很专业,我平时习惯用 Quarto 来作为写作的基本平台与框架,用来平时记录笔记、写书、写一些比较厚重的内容。在技术写作上,尤其是依赖大量参考文献的写作上,在我看来,没有哪个写作平台比 Quarto 更优秀。尤其是 Quarto 使用 pandoc 来引用 BibTeX,语法简洁明了,没有哪个类似的工具在语法效率上比 Quarto 更高。另外,偶尔需要用代码计算、绘图的时候,Quarto 也方便集成其它语言。

既然 Quarto 这么好,那我为什么不直接使用 Quarto 来替换我的站点呢?

  1. 懒,还是因为懒。我可以只替换部分子站点,这样工作量还好,不过之前写的文章,我也不想再挪一遍来检查一下格式、URL地址这些设置。

  2. 主站和子站风格要统一,需要开发 Quarto 模板,我不想,也不愿意(好吧,我承认,主要是我不会做这个事情)。如何给 Quarto 做一个模板,我还真没研究过;能否给 Quarto 做一个和我主站点的模板,我就更没把握。

  3. Quarto 不具备一键提交到 Github 然后在 Netlify 发布的能力(有可能是因为功能过于复杂),我不想每次本地预览、编译再发布,操作太多步骤太多。

  4. 每次都需要建一个目录来新建 post,大部分时候对于写一写小技术文章来说,杀鸡用牛刀,略显麻烦。

解决办法:用 Quarto 来写作,用 Hugo 来发布

比较理想的方案就是:用 Quarto 来写作,用 Hugo 来发布!这样就满足我所有的要求,当我写大部分头的长篇文章时,我会选择使用 Quarto 来写作,解决Hugo 参考文献引用、自动生成的痛点问题。

原本我还想自己写一个脚本来把 Quarto 的 markdown 转为 Hugo 的 markdown 文件,今天仔细研究后,发现 Quarto 支持发布文件为 Hugo 工程,Quarto 在设计的时候,就考虑到了多种格式发布的能力,而 Hugo 这些平台就是其中的一种。

实施过程就按文档里的说明来做即可,这里要注意的两点:

  1. Quarto 只支持从文件夹里发布文章。

  2. 把内容直接发布到 Hugo 的 content 目录里。

  3. Quarto preview 的功能在我这里暂时不可用,有空研究一下为啥不能与 Hugo 一起联合起来用,应该是哪里的设置不对。

希望本文对有同样需求你有帮助!