安装

  • 安装 nodejs
  • 初始化hexo并启动
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 全局安装 hexo 脚手架
    npm install hexo-cli -g
    # 初始化
    hexo init blog
    cd blog
    # 安装依赖
    npm install
    # 启动
    hexo server

hexo 脚手架命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建文章
hexo n '我的第一篇博客文章'
hexo new '我的第一篇博客文章'
# 创建目录
hexo new page tags # 标签页
hexo new page categories # 分类页
hexo new page archives # 归档(时间轴)

# 清理缓存
hexo cl
hexo clean
# 打包
hexo g
hexo generate
# 发布
hexo d
hexo deploy
# 运行
hexo s
hexo server -p 80

使用皮肤

  • 安装皮肤npm i hexo-theme-butterfly
  • 根目录_config.yml文件配置:theme: butterfly

发布到 github

1
2
# 安装依赖
npm install --save hexo-deployer-git
1
2
3
4
5
6
# Deployment
# Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: https://github.com/cxvh/cxvh.github.io
branch: main # 你的分支名

部署到git指令: hexo cl & hexo d


站点地图/方便收录

1
2
3
4
5
6
7
8
9
10
11
# 查看是否被收录
site:cxvh.github.io

# 进入:[百度搜索提交入口](https://ziyuan.baidu.com/linksubmit/url?sitename=http%3A%2F%2Fsite%3Acxvh.github.io)
# 验证个人网站 提交 url 地址

# 增加站点地图
npm install hexo-generator-sitemap hexo-generator-baidu-sitemap --save
# 目录下找到 sitemap.xml 以及 baidusitemap.xml 这两个文件已经生成了。
hexo g
hexo d

配置

内容多标签或多分类配置

1
2
3
4
5
tags: [a, b, c]
categories:
- a
- b
- c

基本配置

  • 为了得到更好的使用体验,以下内容请务必填写完整,因为这些内容会在主题中得到展示。更多
    1
    2
    3
    4
    5
    6
    7
    title: your title
    subtitle: your subtitle
    description: your description
    keywords: your keywords
    author: your name
    email: your email
    url: your site url

feed 配置


高级技巧

使用hexo d提交代码到你的linux服务器指定目录

  • 参考文章《git进阶》中的创建 Git 账户
  • 创建好之后配置根目录下_config.yml文件,添加deploy.repo=git@cxvh.com:/var/repo/blog.git
  • 安装依赖:cnpm i hexo-deployer-git -S
  • 执行命令:hexo d
  • 保姆级教程,特别注意权限问题,有问题通过联系方式发送消息,收到会回复。

hexo 常见错误整理

端口占用解决方法:关掉占用端口的进程、或者更改端口hexo s -p 4001

1
2
3
4
5
6
FATAL Port 4000 has been used. Try other port instead.
FATAL {
err: Error: listen EADDRINUSE: address already in use :::4000
at Server.setupListenHandle [as _listen2] (net.js:1317:16)
at listenInCluster (net.js:1365:12)
at Server.listen (net.js:1451:7)

文件命名不能使用 HTML 中有用的字符实体(如:03.首页:接口定义&组件拆分.md),否则生成的 sitemap.xmlbaidusitemap.xml 无法正常解析
具体参考 字符实体 HTML ISO-8859-1

类似这样错误的—>Plugin load failed: %s hexo-all-minifier
解决方法:重新安装hexo-all-minifier;或者删掉node_modules重新install

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
INFO  Validating config
ERROR {
err: TypeError: ext[key].bind is not a function
at E:\v\blogs\blog\node_modules\cheerio\node_modules\domutils\index.js:12:28
at Array.forEach (<anonymous>)
at E:\v\blogs\blog\node_modules\cheerio\node_modules\domutils\index.js:11:19
at Array.forEach (<anonymous>)
at Object.<anonymous> (E:\v\blogs\blog\node_modules\cheerio\node_modules\domutils\index.js:10:3)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (E:\v\blogs\blog\node_modules\cheerio\node_modules\htmlparser2\lib\FeedHandler.js:40:29)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (E:\v\blogs\blog\node_modules\cheerio\node_modules\htmlparser2\lib\index.js:81:14)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
} Plugin load failed: %s hexo-all-minifier
INFO Deleted database.
INFO Deleted public folder.