介绍

The world’s fastest framework for building websites

Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.

The world’s fastest framework for building websites | Hugo

环境

  • macOS 10.13.2
  • Python 2.7.10

快速开始

Quick Start | Hugo

1
brew install hugo

Hugo 有提供社区制作的迁移工具链接: Migrate to Hugo | Hugo

官方提供了 import jekyll 命令与两个社区迁移工具

迁移尝试一

使用官方提供的 hugo import jekyll 子命令执行时出错:

1
2
3
4
Importing...
panic: assignment to entry in nil map

...

hugo import jekyll | Hugo

迁移尝试二

最后提交是 2016 年 5 月 fredrikloch/JekyllToHugo: Small script for converting jekyll blog posts to a hugo site

1
2
3
4
5
$ python jekyllToHugo.py -h
Traceback (most recent call last):
  File "jekyllToHugo.py", line 35, in <module>
    import yaml
ImportError: No module named yaml

两个 Python 工具都依赖 yaml 库,需要手动安装

1
sudo pip install pyyaml

开始前需要清理 .DS_Store 文件,使用以下命令清理

1
find . -type f -name ".DS_Store" -print -delete

迁移尝试三

最后提交是 2015 年 9 月 coderzh/ConvertToHugo: Convert blog from Jekyll to Hugo

1
python ConvertToHugo.py <jekyll_root>/_posts/ <hugo_root>/content/posts/

批量处理了 52 篇之后 Hugo 居然没有检测到,于是重启 Hugo 终于可以看到转换之后的效果。

正式迁移

初始化

1
2
3
4
5
hugo new site <site>
cd <site>
git init
git add .
git commit -m "Initial commit"

设置主题

1
2
3
4
5
cd themes
git clone https://github.com/jrutheiser/hugo-lithium-theme
rm -rf hugo-lithium-theme/.git/
git add .
git commit -m "Add theme hugo-lithium-theme"

美化

修改设置、增加 logo、去除 google CSS 引用、增加 about 页面

迁移日志

使用之前介绍的迁移尝试三中的 coderzh/ConvertToHugo,由于需要将日期增加到日志链接中,同时保留之前链接的跳转,所以要稍微改造下脚本。

首先改造脚本增加导出 aliases 功能,因为原有链接是带有 .html 扩展名的,在生成 alias 需要增加扩展名。

其次由于默认生成的 yaml 中的数组并未正确缩进两个空格,还需要修正一下:python yaml.dump bad indentation - Stack Overflow

1
python ConvertToHugo.py <jekyll_root>/_posts/ <hugo_root>/content/post/

部署

直接按照官方文档中的 rsync 方法即可: Deployment with Rsync | Hugo