在Hugo中使用Org Mode书写blog
blog荒废了很久了,看看了每个月vultr寄给我的账单,觉得还是给自己找点其他事情干,不能整天玩游戏了。最近正好迷上了org mode,感觉可以用org mode写blog,于是赶紧搞一下。
选择
原生方案
hugo通过go-org 提供了对org文件的渲染,并且支持org mode的特殊的 Front Matter ,例如本文的 Front Matter 如下:
#+title: 在Hugo中使用org mode
#+subtitle: Emacs搞定一切!
#+lang: zh_CN
#+date: 2021-01-01
#+categories[]: Emacs
#+tags[]: Emacs
#+images[]: /img/emacs.png
#+cover: /img/emacs.png
#+summary: 用Emacs的org mode写blog
这个方案的问题是一些高级的Org mode特性go-org不支持(其实非Emacs的org mode实现多多少少有这样的问题),而另一个问题就是当你的*Front Matter*写错了的时候,提示非常奇怪:
Start building sites …
Built in 63 ms
Error: Error building site: failed to render pages: render of "page" failed: "/home/wgjak47/Code/tech/themes/dream_hugo/layouts/_default/baseof.html:5:43": execute of template failed: template: _default/single.html:9:7: executing "_default/single.html" at <partial "head.html" .>: error calling partial: "/home/wgjak47/Code/tech/themes/dream_hugo/layouts/partials/head.html:5:43": execute of template failed: template: _internal/opengraph.html:5:43: executing "_internal/opengraph.html" at <.>: range can't iterate over /tech/
这里是我的 #+images[]: xxx
写成了 #+images: xxx
,这个错误提示似乎完全无关,很容易造成困扰。
ox-hugo
ox-hugo 是另外一种选择,这个Emacs插件的作用是把org转换成hugo可以识别的markdown格式,对于org mode的特色,他会弄成复杂的html标签内嵌。目前我org mode用的不深,所以暂时没有用到。另外 doom-emacs和spacemacs都有ox-hugo支持,可以非常方便的通过启用特定的配置自动安装。
Org Mode学习资源
官方提供了比较完善的org mode文档
最后插入图片测试一下
这里使用hugo的问题就是如果你把图片放到 static/img/
下面,emacs这边就不能通过 org-toggle-inline-image
显示图片,比较可惜。