创建、部署、备份Hexo博客一条龙

本文最后更新于:2024年9月16日 下午

准备工作

安装环境部署:

安装git:

1
apt install git-core
安装node:
1
2
curl -fsSL https://deb.nodesource.com/setup_15.x | bash -
apt-get install -y nodejs

安装hexo

1
2
3
4
5
6
7
8
9
# 安装命令
npm install -g hexo-cli
# 初始化博客(会自动在当前文件夹创建blog文件夹)
hexo init blog
cd blog
# 根据package.json文件里面的内容安装各种需要的包,安装到node_modules文件夹
npm install
# 启动hexo服务器(注意运行此命令时应该在blog文件夹下)
hexo server

如果无特殊需求,这时一个简单的hexo博客已经建好了

安装next主题

切换到blog文件夹运行下列命令

1
git clone https://github.com/next-theme/hexo-theme-next themes/next
修改网站_config.yml,启用主题
1
theme: next

数学公式支持设置

卸载渲染包

1
npm uninstall hexo-renderer-marked
安装pandoc作为新的渲染包
1
npm install hexo-renderer-pandoc
linux系统安装pandoc包
1
apt install pandoc
解决渲染错误问题(这个错误可能跟linux安装的pandoc包版本新旧有关)
1
2
3
4
# 将node_modules\hexo-renderer-pandoc\index.js中的
var args = [ '-f', 'markdown-smart'+extensions, '-t', 'html-smart', math]
# 改成
var args = [ '-f', 'markdown'+extensions, '-t', 'html', math]
开启next主题的mathjax支持,修改themes/next/_config.yml中关于math的设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Math Formulas Render Support
math:
# Default (true) will load mathjax / katex script on demand.
# That is it only render those page which has `mathjax: true` in Front-matter.
# If you set it to false, it will load mathjax / katex srcipt EVERY PAGE.
per_page: true

# hexo-renderer-pandoc (or hexo-renderer-kramed) required for full MathJax support.
mathjax:
enable: true
# See: https://mhchem.github.io/MathJax-mhchem/
mhchem: false

# hexo-renderer-markdown-it-plus (or hexo-renderer-markdown-it with markdown-it-katex plugin) required for full Katex support.
katex:
enable: false
# See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
copy_tex: false

博文格式范例

http://yearito.cn/posts/hexo-writing-skills.html

1
2
3
4
5
6
7
8
---
title: 文章标题
tag: 标签
categories:
- 技术
- 数学
mathjax: true
---

关于next主题的配置

详见next主题帮助页

备份与恢复

使用插件hexo-git-backup进行备份

1.插件安装:

1
npm install hexo-git-backup --save
2.新建一个私有的github库:比如 git@github.com:xx/xx.git

3.插件设置:设置 _config.yml ,在最后添加如下内容

1
2
3
4
5
6
backup:
type: git
theme: next
message: Back up hexoblog
repository:
origin: git@github.com:xx/xx.git,master
其中 repository 项,网上的教程是填写 github: git@github.com:xx/xx.git,master ,但是备份时会提示错误说
1
2
3
4
5
6
7
8
INFO Start backup: git
[backup 0431bed] Site updated: 2020-02-29 21:16:51
1 file changed, 1 insertion(+), 1 deletion(-)
fatal: 'github' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
INFO Backup done: git
后来按这个issue更改为 origin 就正常了

4.备份命令

1
2
3
# 二选一
hexo backup
hexo b
5.可选动作:执行第4步备份之前,可以将原先主机的ssh私钥一同备份,这样在新电脑上恢复的时候,可以先将私钥下载下来放在.ssh文件夹,才能进行ssh连接了

恢复

1.在新电脑上配置好nodejs,git

2.放置好用于建立和github连接的ssh私钥

3.执行下列命令:

1
2
3
4
5
6
7
8
# 可选动作,我是为了配置数学公式渲染
apt install pandoc
# 安装hexo
npm install -g hexo-cli
# 在你想把hexoblog放置的文件夹内执行
git clone git@github.com:xx/xx.git
# 进入hexoblog文件夹,安装依赖包
npm install
4.恢复数学公式渲染设置:由于我们对依赖包内的 hexo-renderer-pandoc 做的修改并没有备份,所以重新修改一下

5.hexo server 一下,测试未报错即可

6.如果有多台电脑需要同步,备份以后,在需要同步的电脑上 git pull 一下,如果安装了新的hexo插件,记得还要 npm install 一下,不然就有可能在 hexo g 的时候出错,或者不报错但是出现莫名其妙的问题。


创建、部署、备份Hexo博客一条龙
https://andyppang.github.io/2021/04/05/创建、部署、备份Hexo博客一条龙/
作者
PL
发布于
2021年4月5日
许可协议