钟柱的博客

坚持做一些自己觉得好玩的事儿


  • 首页

  • 技术

  • 感想

  • 闲暇

  • 搜索
close

把博客从Hexo转到了Hugo

时间: 2020-04-14   |   分类: 技术     |   阅读: 1157 字 ~3分钟

从前天开始了个人博客从Hexo迁移到Hugo的旅程。统共分四步:

  1. 建新的GitHub Repo来host博客的源文件
  2. 把Hexo的博客源文件转成Hugo能认识的文件
  3. 配置Hugo的theme
  4. 推送静态网站到Github

建新的GitHub Repo来host博客的源文件

这一步没有任何难度,就不多说了。唯一的惊喜是发现GitHub free账号现在可以建无限量的private Repo,感谢Microsoft! 果断建了一个private Repo来host博客的源文件,毕竟你也不想别人随意来修改你的博客,对吧?

把Hexo的博客源文件转成Hugo能认识的文件

这么多年我就写了10篇博客,所以这一步对我来说比较简单:纯手工把所有的Markdown文件改改就可以了。要改3个地方

  1. md文件名

Hexo的文件名

2016-03-10-用cytoscape-js展示neo4j网络关系图-1-Flask.md

Hugo的文件名

用cytoscape-js展示neo4j网络关系图-1-Flask.md
  1. md文件头部内容里的时间戳格式

Hexo的时间戳是这样的:2016-03-10 16:03:23

---
title: 用cytoscape.js展示neo4j网络关系图 - 1. Flask
date: 2016-03-10 16:03:23
tags:
- neo4j
categories:
- 技术
---

Hugo的时间戳是这样的:2016-03-10T16:03:23+08:00

---
title: 用cytoscape.js展示neo4j网络关系图 - 1. Flask
date: 2016-03-10T16:03:23+08:00
tags:
- neo4j
categories:
- 技术
draft: false
---
  1. 把图片都移到 <my_hugo_blog>/static/images目录下

这样在Markdown文件里访问图片的路径就是/images/pic.png

![整体的架构](/images/cytoscape/1/1.png)

配置Hugo的theme

Hexo时代一直用Next做博客主题, 所以Hugo我也准备用Next作为Theme. 你需要

  1. 把Next的代码加入到博客源文件目录
$ cd <my_hugo_blog>
$ git submodule add https://github.com/zhongzhu/hugo-theme-next.git themes/next
  1. 配置<my_hugo_blog>/config.toml来定制Next的外观

基本就是照着<my_hugo_blog>/themes/next/config.toml里面的配置抄一遍就好了。

  1. 在本地看看网站的显示效果

运行如下命令启动Hugo本地服务器,它会把你的Markdown源文件编译成静态网站,并且启动一个web服务器。

$ cd <my_hugo_blog>
$ hugo server -D

在浏览器里访问http://localhost:1313/就可以看到你的博客网站啦。

推送静态网站到GitHub

步骤比较多,可以用如下Hugo建议的脚本来自动推送生成的静态网站文件到Github。

#!/bin/sh

# If a command fails then the deploy stops
set -e

# check out static web pages
git clone https://github.com/zhongzhu/zhongzhu.github.io.git public

printf "\033[0;32mDeploying updates to GitHub...\033[0m\n"

# Build the project.
hugo -t next # if using a theme, replace with `hugo -t <YOURTHEME>`

# Go To Public folder
cd public

# Add changes to git.
git add .

# Commit changes.
msg="rebuilding site $(date)"
if [ -n "$*" ]; then
	msg="$*"
fi
git commit -m "$msg"

# Push static web pages to GitHub
git push origin master
#hugo#
用GitHub Actions来自动编译和推送Hugo网站
重新开始写Blog吧
钟柱

钟柱

架构, 写代码, 自动化测试, 看书, 音乐, 画画

15 日志
2 分类
16 标签
GitHub 微博
© 2016 - 2020 钟柱的博客
Powered by - Hugo v0.69.0
Theme by - NexT
0%