Hexo迁移到hugo
使用hexo
构建博客大概是5、6年的事了,在此之前一直使用wordpress
来搭建个人的博客。
而早些年博客系统仿佛也只有wordpress
,当你想要搭建个人博客时,你只会得到一个答案,那就是wordpress
。
wordpress
是如此强大,丰富的扩展,强大的管理后台,它能提供我们需要的一些。
毫无疑问,这就是我们需要的,何况全世界的人都在使用它。
然而,当面对繁杂而厚重的wordpress
时,我们意识到我们需要的只是一个简单的,优雅的,能使用markdown
书写的系统。
于是, 各种轻便的博客系统出现了,hexo
就是其中之一。
尤其近几年来,技术爆发,各种优秀博客系统如雨后春笋般大量冒出。
Hexo迁移到Hugo
这次的主题是hexo
迁移到hugo
。
hexo
很好用,比hugo
强大,插件非常丰富,然而成也插件,败也插件(个人观点),
hexo
的依赖关系非常复杂,而且有版本兼容性问题,版本升级更是望而却步,一个不小心就报错,然后就要调试许久,最后失去耐心,重新来过。- 跨平台问题,环境问题很容易在不同平台出现问题。所以一旦配置好了,都不愿意再去碰它。
为什么最后选了hugo
?
没有为什么,纯粹是因为它简洁,有几个主题入了我眼。
hugo
的文档非常简单,使用也很简单,hugo
是使用Go
语言开发的。支持全平台。
下载地址 (建议下载hugo-extended)
Mac
系统建议直接使用Homebrew
安装
$ brew install hugo
其他系统安装请参考这里
生成站点
$ hugo new site your_blog
这样一个站点就生成了
进入博客目录
$ cd your_blog
config.toml
就是你博客的配置文件
创建文章
$ hugo new posts/index.md
生成静态文件
$ hugo
就是这么简单,划重点,最好使用发布模式生成的静态页面,因为开发者模式下生成的静态页面可能出现某些功能不正常。而hugo
默认是开发模式,需要我们切换环境变量为发布模式
$ export HUGO_ENV=production
调试模式
$ hugo server
打印出
...
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
请看上面的Environment: "development"
我们发布之前一般需要设置为production
也就是需要
$ export HUGO_ENV=production
$ hugo
重点,每次发布我们最好主动去删除public目录下面的文件,因为hugo不会自动去删除
安装主题
找到喜欢的主题,然后根据文档安装,一般来说,推荐使用git子模块的方式
$ git submodule add https://github.com/xxxt.git themes/xxx
然后修改根目录下的theme = "xxx"
其他知识点
关于hugo
有几个需要了解的知识
- 默认文章模板,每个主题都有自己推荐的文章模板文件,位于
themes/xxx/archetypes/
目录下,建议把主题archetypes
下的default.md
复制到根目录的archetypes
下,覆盖即可。 - 主题都有自己的默认配置文件,位于
themes/xxx/exampleSite
下,一般来说,我们只需要把主题themes/xxx/exampleSite
下的config.toml
覆盖根目录下的同名文件即可,然后去里面把一些作者个性化的信息修改为自己的。 - 文档目录参考主题
themes/xxx/exampleSite/content
下的即可。
基本上做到这些,你的hugo
已经正常运行了。其他一些高级的自定义去参考你使用的主题就行。每个主题都有不同。
如何把hexo
的文章迁移到hugo
首先需要确认你目前的hexo
文章的格式,整体来说都是兼容的,可能不同主题有些不同,拿我hexo
之前的格式举栗子。
title: '这是标题'
tags:
- xxx
- xxx
id: 699
categories:
- xxx
- xxx
date: 2014-10-07 14:37:25
---
当把所有的md
复制到hugo
后,发现报错了,这是因为标签和分类格式不标准的问题
hugo
支持的标准格式如下:
---
title: '这是标题'
tags: [xxx, xxx, xxx]
id: 699
categories: [xxx, xxx]
date: 2014-10-07 14:37:25+08:00
---
而且这套格式也完美兼容hexo
。如果你本来就是这种格式,恭喜你,直接把文章覆盖过来就可以用了。如果不是,需要安装这个格式修改。改完后覆盖回hexo
,你的hexo
还能继续用。