使用Emacs Script自动将org文件导出为Markdown
目录
接上篇 用Org Mode + Hugo写博客,并通过Github Action自动部署到Github Pages
痛点
代码仓库里会同时保存org文件和markdown文件,markdown文件其实是中间产物,不想保存。
如何解决
首先,Emacs是可以执行Emacs Script的,写个脚本,然后在Github Action里执行即可。Emacs环境哪里来?purcell大神已经准备好了。
废话不多说,直接上代码。
嵌入Gist
|
|
等等,直接用markdown写是不是就没有这个痛点了?嗯😄。
存在的问题
目前是全量导出,找到指定目录下的全部org文件,然后转成markdown文件。 这样每提交一篇文章,就需要处理全部存量文章。另外,全部文章的更新时间都会跟着变,这个和HUGO_AUTO_SET_LASTMOD这个property设置有关。详见:ox-hugo last modified 。待改成增量导出。
遇到的问题
1、org导出markdown文件了,但未生成静态文件
原因:时区问题。Github Action是按UTC时间执行的,而文件的发布日期是东八区的,这样Hugo可能会看到发布日期还未到,就不处理了1。
解决方案:修改Github Action job的时区,可一并解决文件修改时间不对的问题;或修改Hugo运行时的配置,增加–buildFuture参数。
参考文档
using ox-hugo without duplicating content in the repository