前言
我 已经使用了 Hexo 快两年了,主题换过 Butterfly, Fluid, NexT, Icarus ……这两天又开始准备瞎折腾的时候,我试了下 Hugo,然后发现真香啊,索性就一鼓作气把博客整个迁移了😂,体验了几天来说说 Hugo 相对于 Hexo 的一些优点吧:
没有依赖,就单纯的一个二进制文件,不会像 Hexo 一样动辄几百 MB 的
node_modules
肉眼可见的快,同样使用 Cloudlfare Pages 集成部署网站,从开始构建到部署到 Cloudlfare 全球 CDN,Hexo 一般需要 2~5 分钟1,Hugo 只需要不到 30 秒2
Hugo 的本地预览服务器使用的是基于 websocket 的 livereload.js,hugo server 非常快,当你编辑完 Makrdown 文件或者配置文件保存修改,再切换到浏览器查看本地预览的时候,你看到的已经是新的网页了3
Hugo 的 Markdown 渲染简单易用,像“脚注”都是默认支持的
安装 Hugo
在 Windows 系统下,我还是建议 使用 Scoop 管理 Windows 下的软件和开发环境,安装 Hugo 也很简单
scoop install hugo-extended
这时候 Hugo 就安装完成了,是不是很快?🤣
初始化博客
这步是在本地新建一个 blog
目录存放博客相关的文件,类似于 Hexo 的 hexo init blog
hugo new site blog
在这个目录初始化下 Git
cd blog && git init
设置默认分支为 master
git config --global init.defaultBranch master
安装主题
博客使用 Git 进行版本管理,所以如果使用 git 方式安装主题的话,要将主题添加给 Git 子模块
# Git 方式安装主题
git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth=1
# 添加 Hugo-Papermod 主题为子模块
git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
# 如果以后从 Git 托管平台克隆博客的时候,子模块可能不会被克隆(比如 GitHub)
git submodule update --init --recursive
现在这个博客路径如下
blog:.
│ .gitmodules # Git 子模块
│ config.toml # Hugo 配置文件,建议转换成 Yaml 格式
├───archetypes # 模板,类似于 Hexo 的 scaffolds
│ default.md # 默认模板
├───content # 内容路径,文章和页面的 Markdown 文件都放这里
├───data # 储存供模板调用的数据文件?暂时用不上不管它
├───layouts # 布局目录
├───static # 静态文件目录(构建时全部拷贝到 /public 里,相当于网站资源的根目录)
└───themes # 主题目录
修改配置
我 比较习惯使用 Yaml 配置文件,所以将配置文件改为 config.yaml
后修改自己的配置
# 基础配置
baseURL: "https://dejavu.moe"
title: "Dejavu's Blog"
languageCode: "zh-tw" # 语言编码(如简体中文: zh-CN)
DefaultContentLanguage: "zh-tw"
hasCJKLanguage: true # 检测 CJK
paginate: 6 # 每个分页文章数
paginatePath: "page"
permalinks: # 永久连结格式
post: /:slug/
page: /:filename/
theme: "PaperMod"
enableInlineShortcodes: true # 短代码支持
enableRobotsTXT: true # 启用 Robots.txt
buildDrafts: false
buildFuture: false
buildExpired: false
enableEmoji: true # 启用 Emoji
enableGitInfo: true # Using the last git commit date for that content file.
pygmentsUseClasses: true
# googleAnalytics: UA-123-45
启用 RSS
outputs:
home:
- HTML
- RSS
- JSON
params:
ShowFullTextinRSS: true # RSS 全文输出
更换 Hugo 后 RSS 路径也发生了变化,之前 Hexo 是 atom.xml
,现在是 index.xml
迁移网站
Hugo 的 Front Matter
部分几乎和 Hexo 差不多
title: "静态博客博客框架从 Hexo 迁移到 Hugo"
description: "博客框架迁移体验——从 Hexo 转到 Hugo,主题是简约而不简单的 PaperMod"
date: 2022-03-16T07:23:50+08:00
lastmod:
slug: hexo-to-hugo
categories:
- 博客维护
- 折腾日志
tags:
- Hexo
- Hugo
- Blog
image: hexo-to-hugo.svg
comments: true
hidden: false
math: false
toc: true
然后修改下文章的永久链接格式,基本不需要太多的迁移成本,其他的配置参考 Hugo 文档 & Papermod 主题文档 就好啦~