之前一直有使用Hexo来生成静态博客,如今将博客迁移到了Hugo下。两种工具总体而言各有优势,个人此次转移到hugo的主要原因大概是希望能够重拾写博客的习惯,本文主要介绍了使用Hugo的大致流程。首先给出个人博客的文件结构:
| |
其中只有 ox-hugo 为自定义文件夹, .dir-locals 为ox-hugo自动转换的配置文件,其他都是自动生成的。接下来个人就hugo生成博客关键部分展开介绍下。
主题的选择
首先搭建博客面对的问题就是主题,如果你非常擅长网页设计可以自己DIY一款主题。大多数还是会选择已有的主题,我们在选择主题时,除了最重要的UI外,还应当考虑以下的因素:
- 是否支持写作的基本功能,如公式的显示(通常是MathJax);
- 是否支持博客网站的基本功能,如分类,标签,分享,评论等。
尤其是评论这块,个人之前用的disqus, 但好像在国内的访问存在一些问题,目前比较推荐的方案是使用git issues来实现评论功能,如gitment。像我这样的懒人当然是选择不支持评论功能啦:)
博客的托管
比较推荐的方案是将整个blog作为一个git项目,并且将 public 和 themes/xxx 作为该项目的submodule。其中 public 对应于你的要作为Github pages的
git项目地址,通常建议是 <username>.github.io 这个项目,这样Github会自动将该项目作为 http://<username>.github.io 页面的文件,完整的将博客自动托管到Github的流程可以参考hugo上的教程;而 themes/xxx 则是对应于主题的项目地址。这样使用submodule的一个好处是可以保证主题的同步以及public的自动托管与发布。
使用org-mode写作
如果你对于emacs的org-mode向往已久并且希望使用其来写博客的话,一个推荐的方案是使用ox-hugo自动地将你用org-mode写的内容转为markdown,虽然hugo本身也有org-mode 的引擎,但好像支持的不是很好。在这样的工作模式下建议的方案是将所有相同category的且不是很长的博客都集中到一个org文件中,文件的开头配置大致如下:
| |
每次新建一个博客时就在该文件中加入一个todo事项,如本博客的开头为:
| |
这些可以利用org-capture自动生成的,具体可以参考ox-hugo上的文档。另外建议将文件加入到org-agenda文件列表中,这样可以快速定位未完成的博客(即TODO状态下的博客)。完成一篇博客时只需要将博客标记为DOWN即可。ox-hugo还会将org的tag转为相应的分类和标签,其中 @ 开头的为分类, ox-hugo的自动生成可以参考相应的文档。
以上就是我在使用hugo生成博客时遇到的一些主要问题。如果你有什么问题,欢迎邮件我。