从Hexo到Hugo
Contents
缘起
用了好几年 Hexo , 但发现它生成站点的速度和性能是越来越慢, 我的博客生成一次要10多分钟, 作为一名程序员, 真的是受不了还有比Java项目打包耗时还长的项目 ^_^. 下定决心, 切换为 Hugo , 珍惜生命, 珍惜时间~
安装
brew install hugo
创建站点
hugo new site my-blog
cd my-blog
添加主题
git clone https://github.com/spf13/hyde.git themes/hyde
添加文章
hugo new post/hello.md
它会在站点的根目录下的 content
目录下, 创建 post/hello.md
目录和文件的.
本地运行
hugo server --theme=hyde
兼容 Hexo
现在的 Hugo, 可以不用修改原来的 Hexo 的 markdown 内容, 就可以直接生成站点了. 其实最初的时候, Hugo 兼容 Hexo 不强, 我之前也试用过 Hugo, 发现 Hexo 日期格式就不怎么兼容, 那时候还要特别处理一下. 所以, 我当时也向 Hugo 的子项目提交了个 Github PR 来兼容 Hexo 的日期格式.
现有 Hexo 的 URL 处理
这个, Hugo 也可以有比较强的兼容了, 可以参考 Hugo 的配置:
[permalinks]
post = "/:year/:month/:day/:title/"
这里修改为你 Hexo 原来的 URL 格式.(因为原来的 Hexo 格式, 已经放在网上, Google 等搜索引擎已经收录了, 如果不做兼容的话, 那原来的搜索结果的链接就不正确了 ~)
导航目录的处理
[[menu.main]]
name = "Home"
weight = 10
identifier = "home"
url = "/"
[[menu.main]]
name = "Archives"
weight = 20
identifier = "archives"
url = "/archives/"
[[menu.main]]
name = "Tags"
weight = 30
identifier = "tags"
url = "/tags/"
这些就是站点的导航配置管理. url = "/tags/"
表示是在站点根目录下的 content/tags/
目录, 其他类似, 一一对应即可.
URL 大小写
Hugo 默认情况下, 会将 URL 变成小写. (但Hexo 原来是与标题一样的, 并不会统一, 所以这里也要配置一下)
在站点的配置文件下, 添加:
DisablePathToLower = true
更新说明
好像 Hugo 的 DisablePathToLower
对有些文章生效, 有些又不生效~(所以, 我将这个选项注释掉重新生成站点, 默认为小写~) 如果通过搜索访问之前的URL有问题的话, 请统一修改为小写就可以了.
添加评论系统
在使用 gitment 过程中, 关键是 repo
参数的值问题,它是你的仓库名称(不是完整路径)~, 比如我这里是~
emacsist.github.io
Hugo new post 标题不完整
默认情况下, Hugo 的创建文章的模板文件内容为:
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
但是, 这样子在创建一些比较长的标题好像有问题, 例如 hugo new "post/[翻译]Netty4中 ctx.close 与 ctx.channel.close 的区别.md"
生成后的内容为:
---
title: "[翻译]Netty4中 Ctx.close 与 Ctx.channel"
date: 2018-04-27T16:43:56+08:00
draft: true
---
可以看到, 标题都不完整.
下面是我目前使用的模板, 有需要可以参考一下:
---
title: "{{ replace .BaseFileName "-" " " | title }}"
date: {{ .Date }}
draft: true
tags:
- default
---