缘起

用了好几年 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 处理

官方文档的 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

在使用 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
---

可以看到, 标题都不完整.

下面是我目前使用的模板, 有需要可以参考一下:

hugo variables files

---

title: "{{ replace .BaseFileName "-" " " | title }}"
date: {{ .Date }}
draft: true
tags:
- default

---