静态博客网页生成器,相较于其他生成器来说速度较快,功能相对完善,官网有较多的主题和插件来丰富网站展示。本文使用Hexo版本为8.1.1,记录Hexo在使用过程中涉及的知识和遇到的问题
Hexo安装
Hexo静态博客生成器需要Node.js环境,官网建议使用Node.js 12.0及以上版本,同时可以安装Git来进行代码管理
// 默认安装最新的版本
npm install hexo-cli -g
// 指定版本进行安装
npm install -g hexo@8.1.1
这里的-g表示全局安装(系统任何地方可使用),不建议局部安装(仅项目文件夹中可用),局部安装无法直接使用hexo命令,需要配置环境变量,较为复杂,安装完成后可以使用npm view hexo version查看安装的版本
然后在某个文件夹中打开终端执行hexo init即可初始化一个博客模板,使用hexo s就能运行,之后的一切操作都是在这个模板上进行,其中
source/_posts;该文件夹下放文章的Markdown文件themes:该文件夹下放主题,可在Hexo官网中找到_config.yml:该文件为配置文件
使用hexo init初始化文档项目时可能因为网络原因较为慢(国外网址),建议多尝试几次
Hexo相关命令
- 项目生成:
hexo init [name] - 本地启动:
hexo s - 本地打包:
hexo g - 清除打包:
hexo clean - 部署网站:
hexo d - 创建页面:
hexo n page [name]
npm相关命令
- 查看本地Hexo版本:
npm view hexo version - 查看已发布的Hexo版本:
npm info hexo versions - 卸载Hexo:
npm uninstall -g hexo-cli - 查看所有全局安装插件:
npm ls -g
网站信息配置
配置文件为目录下_config.yml,注意该文件的改动需要重新执行hexo s命令才会生效
# Site
title: FANMR.CN # 网站名称
subtitle: 因为热爱,所以追求 # 副标题
description: 坚持学习新的知识 # 描述
keywords: 知识库,博客网站 # 网站关键字
author: FANMR.CN # 作者
language: zh-CN # 语言
timezone: '' # 时区
个人网址
url: https://fanmr.cn
用于版权声明等情况,注意使用http或https开头
永久链接
permalink: /article/:year:month:day:hour:minute:second.html
默认的文章路径为:year/:month/:day/:title/,即文章发布时间加文章名字,如果文章的名字有所调整,那么文章原有的链接就无法访问该文章,对于收藏和分享来说是不友好的
以上方式将文章的链接改为了文章发布时间,只要不对发布时间做调整,文章就可以被永久访问到
文章创建及格式
文章放在source/_posts下,采用Markdown语法格式,可以随意创建文件夹,文章的完整格式如下:
---
title: 文章名
categories: 分类名称 # 分类,支持多级,同tags
sort: 1 # 排序号,需要启用
date: 2026-04-29 10:47:55 # 发表日期,改为永久链接后这个就不要改动了
updated: 2026-04-29 10:47:55 # 更新日期
tags: # 标签
- Hexo
- 博客系列
photos: # 顶部图片
---
# 正文从这里开始
阅读全文
在文章合适的位置加上分割标志,在VsCode编辑器中可以使用CTRL+/快速打出注释
<!--more-->
以下内容不会展示在首页
本地图片
默认情况下发现本地图片是无法显示的,网上的解决方案大部分都是使用hexo-asset-image插件,但是我发现source下非_posts的目录是被打包的,利用这个特性,即可实现本地图片的使用。在source下创建图片目录,如images,将图片放入其中,在引用的文章中直接使用Markdown的图片语法即可,如:
// 绝对路径(仅网站可用)

// 相对路径(不影响编辑器直接查询文章),VsCode会提示

VsCode写Mardown
使用VsCode进行Markdown写作时,个人其中使用的一些必要插件:
- Markdown All in One:VsCode对
Markdown的语法支持 - Markdown Image:直接粘贴图片到本地(或Githud图床),建议改为时间命名,记得调整格式和位置,默认快捷键冲突,搜索
markdown image调整为ctrl + shift + alt + v或者自定义
同时可以使用Snipaste进行截图操作
VsCode文章头自动生成
使用的是VsCode的代码片段,在设置、代码片段,新建全局代码片段,在其中添加以下配置:
{
"hexo post header info": {
"prefix": "hexo",
"body": [
"---",
"title: xxx",
"categories: xxx",
"sort: 1",
"date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}",
"updated: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}",
"tags:",
" - xx",
"photos: ",
"---",
"",
""
],
"description": "hexo post header info template"
}
}
注意:此时是无法使用的,VsCode默认并没有开启Markdown的全局片段,在硬盘上搜索C:\Users\Administrator\AppData\Roaming\Code\User\settings.json文件,在其中加入以下配置:
"[markdown]": {
"editor.quickSuggestions": {
"other": "on",
"comments": "on",
"strings": "on"
}
}
然后在头部打hexo就会出现提示,自动生成头部信息
Github Pages自定义域名
域名的自定义在开启Pages的仓库中即可绑定,但是前提是添加进了Github的域名管理,点击我的头像Settings、Pages中根据提示添加domains并校验成功,即可使用。同时注意,绑定自定义的域名会在部署仓库下多一个CNAME文件,别忘了放入博客中
部署Github Pages
需要先安装部署插件
npm install hexo-deployer-git
然后配置
# Deployment
deploy:
type: git
repo: https://github.com/fanmore/fanmore.github.io
branch: main
最后使用hexo d就能将public中的文件推送到仓库了
部署阿里云OSS
解决访问慢问题,部署插件:hexo-deployer-aliyun
阿里云的配置:
- 创建Bucket
- 开启静态页面(必须开启子目录首页)
- 配置域名管理
阿里云的Region查阅:https://www.zyku.net/aliyun/2017.html
使用感受:对于图片过大的情况会报错,因为上传机制是上传所有文件,而非Git的更新
