Hexo博客搭建完整指南
为什么选择Hexo?
Hexo 是一个快速、简洁且高效的博客框架,具有以下优势:
- 极速生成:Node.js驱动,每秒可生成数十个页面
- 丰富插件:支持SEO、评论、统计等数百种插件
- 多平台部署:一键部署到GitHub Pages、Netlify等平台
- 主题生态:数百款精美主题,高度可定制
环境准备
系统要求
环境 | 最低要求 | 推荐配置 |
---|---|---|
Node.js | v10.13.0 | v16.0.0+ |
Git | v2.0.0 | v2.30.0+ |
操作系统 | Windows/macOS/Linux | 任意现代系统 |
安装步骤
使用标签页功能需要先安装插件:npm install hexo-tag-tabs --save
验证安装:
node -v # 应显示v16+版本
git --version # 应显示v2.30+版本
npm -v # 应显示v7+版本
- 安装 Hexo 命令行工具
npm install -g hexo-cli
- 初始化项目(在空目录中)
# 如果你是在全新环境中设置
mkdir blog-folder
cd blog-folder
hexo init .
npm install
- 如果使用当前仓库
# 克隆仓库
git clone https://github.com/wangqiqi/wangqiqi.github.io
cd wangqiqi.github.io
# 安装依赖 (确保你已经有 package.json 文件)
npm install
# 如果没有 package.json 文件,需要初始化一个新的 Hexo 项目并迁移内容
# 1. 在别处创建一个新的 Hexo 项目
mkdir temp_hexo
cd temp_hexo
hexo init .
npm install
# 2. 复制必要的配置文件到原项目
# 将 package.json, package-lock.json, _config.yml, scaffolds/ 和 themes/ 等复制到原项目
主题安装
- 安装 NexT 主题
# 方法一:使用 git clone (可能会遇到网络问题)
git clone https://github.com/theme-next/hexo-theme-next themes/next
# 方法二:使用 npm 安装 (推荐)
npm install hexo-theme-next --save
# 方法三:如果使用 npm 安装但主题不生效,需要复制到 themes 目录
xcopy /E /I /Y node_modules\hexo-theme-next themes\next
- 启用主题(在 _config.yml 中修改)
theme: next
- 安装必要的插件
npm install hexo-generator-searchdb --save # 搜索功能
npm install hexo-generator-feed --save # RSS 订阅
npm install hexo-deployer-git --save # Git 部署
本地开发
启动本地服务器
hexo server
# 或简写为
hexo s
启动后可通过 http://localhost:4000
访问本地预览。
排查本地预览问题
如果出现 “No layout” 警告或者页面样式不正确:
- 确认主题是否正确安装到 themes/next 目录
dir themes\next
- 清除缓存并重新生成
hexo clean && hexo g && hexo s
- 检查 _config.yml 中主题设置是否正确
theme: next # 必须与 themes 目录下的主题文件夹名称一致
创建新文章
# 创建名为 "article-title" 的新文章
hexo new post "article-title"
这将在 source/_posts
目录下创建一个名为 article-title.md
的新文件。
文章格式
文章头部使用 YAML front-matter 配置文章属性:
---
title: 文章标题
date: 2023-01-01 12:00:00
categories:
- 分类名称
tags:
- 标签1
- 标签2
description: 文章描述
---
这里是文章内容...
构建与部署
配置部署
编辑 _config.yml
,配置部署信息:
deploy:
type: git
repo: https://github.com/nxu-game/wangqiqi.github.io
branch: master
生成静态文件
hexo generate
# 或简写为
hexo g
部署到 GitHub Pages
hexo deploy
# 或简写为
hexo d
也可以生成并部署一步完成:
hexo generate --deploy
# 或简写为
hexo g -d
部署问题排查
如果遇到部署问题:
- 确认 hexo-deployer-git 插件已安装
npm install hexo-deployer-git --save
- 检查 GitHub 仓库配置是否正确
- 检查 Git 用户凭证是否正确设置
主题定制
当前使用的是 NexT 主题的 Gemini 风格,主题配置文件位于根目录的 _config.yml
和主题目录的 _config.yml
(或使用根目录的 _config.next.yml
)。
更换主题风格
NexT 主题提供了几种不同的风格:
- Muse - 默认方案,黑白主调
- Mist - Muse 的紧凑版本
- Pisces - 双栏布局
- Gemini - Pisces 的增强版,现在使用的风格
可在主题配置文件中修改:
# Schemes
scheme: Gemini
推荐自定义部分
- 网站图标:替换
source/images/
目录下的图标文件 - 代码高亮风格:调整
_config.yml
中的 highlight 部分
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: true
prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''
- 添加自定义页面:
hexo new page "about"
hexo new page "categories"
hexo new page "tags"
- 集成第三方服务:如 Valine 评论系统、百度/谷歌统计等
写作风格建议
- 使用 Markdown:熟悉 Markdown 语法,高效编写文章
- 图文结合:适当添加图片、代码示例增加可读性

代码示例:
```python
def hello_world():
print("Hello, World!")
- 段落结构:注意段落划分,使用标题层级组织内容
- 代码展示:使用代码块标注语言类型以获得语法高亮
常见问题
主题配置无效
确保你的主题配置文件正确:
- 使用独立主题配置文件:将主题目录下的
_config.yml
复制到站点根目录,并重命名为_config.next.yml
- 使用根目录和主题目录的配置文件配合
文章不显示
检查文章 front-matter 是否正确,特别是日期格式。
更新主题
更新 NexT 主题:
cd themes/next
git pull
清除缓存
遇到异常情况,可尝试清除缓存:
hexo clean
Windows 特有问题
- 路径问题:Windows 使用反斜杠
\
,但配置中应使用正斜杠/
- 编码问题:确保所有文件使用 UTF-8 编码,避免中文显示乱码
- 权限问题:某些操作可能需要管理员权限
图片资源管理
开启文章资源文件夹功能后,可以为每篇文章创建同名资源文件夹:
- 确保
_config.yml
中设置了post_asset_folder: true
- 创建文章时会自动生成同名文件夹:
hexo new post "my-post"
- 在文章中引用图片:

或使用{% asset_img image.jpg 描述 %}
参考资源
- Hexo 文档
- NexT 主题文档
- Markdown 基本语法
- Hexo 部署到 GitHub Pages
- NexT 主题配置
日常工作流程
目录结构说明
博客项目的核心是 source
目录,它包含了所有需要维护的内容:
source/
├── _posts/ # 博客文章
│ ├── 文章1.md
│ └── 文章2/ # 文章资源文件夹(如果有图片等资源)
├── images/ # 全局图片资源
│ ├── person.jpg # 个人头像
│ └── wechat.jpg # 微信二维码等
├── about/ # "关于"页面
├── tags/ # 标签页面
├── categories/ # 分类页面
└── CNAME # 域名配置
写作和更新流程
-
写新文章:
# 1. 创建新文章 hexo new post "文章标题" # 2. 编辑文章(在 source/_posts/文章标题.md) # 3. 如果文章包含图片等资源: # - 创建同名文件夹:source/_posts/文章标题/ # - 将图片等资源放入该文件夹 # - 在文章中使用相对路径引用:
-
添加全局图片:
- 将图片放入
source/images/
目录 - 在文章中使用绝对路径引用:

- 将图片放入
-
修改页面:
- 关于页面:编辑
source/about/index.md
- 标签页面:编辑
source/tags/index.md
- 分类页面:编辑
source/categories/index.md
- 关于页面:编辑
-
本地预览:
# 清理缓存并重新生成 hexo clean # 生成静态文件 hexo g # 启动本地服务器 hexo s
访问 http://localhost:4000 预览效果
-
部署网站:
# 部署到 GitHub Pages hexo d # 或者一键生成并部署 hexo g -d
维护建议
-
定期备份:
- 定期提交到 Git 仓库
- 备份
source
目录最重要,它包含所有原始内容
-
图片管理:
- 文章配图放在文章同名文件夹中
- 全局图片(如头像)放在
source/images/
中 - 压缩图片以优化加载速度
-
定期清理:
- 可以安全删除的临时文件:
.deploy_git/
(部署缓存)public/
(生成的静态文件)db.json
(数据库缓存)
- 这些文件会在需要时自动重新生成
- 可以安全删除的临时文件:
-
版本控制:
- 主要关注
source
目录的变更 - 可以忽略的文件已在
.gitignore
中配置
- 主要关注
常见问题解决
-
部署失败:
- 检查网络连接
- 确认 GitHub 仓库设置正确
- 验证 Git 凭证是否有效
-
图片显示问题:
- 检查图片路径是否正确
- 区分相对路径和绝对路径的使用场景
- 确保图片已经提交到正确的目录
-
预览异常:
- 使用
hexo clean
清理缓存 - 重新生成静态文件
- 检查主题配置是否正确
- 使用
高级配置技巧
_config.yml核心配置
site:
title: 我的技术博客
subtitle: '分享AI与计算机视觉技术'
description: '专注于AI、机器学习和计算机视觉领域的技术博客'
keywords: AI, 机器学习, 计算机视觉, 技术分享
author: 王七七
language: zh-CN
timezone: 'Asia/Shanghai'
# URL配置
url: https://znza.top
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
lang: zh-CN
# 分页设置
per_page: 10
pagination_dir: page
# 主题配置
theme: next
Next主题个性化
内容创作指南
Markdown高级语法
数学公式
使用Hexo渲染数学公式需安装插件:
npm install hexo-filter-mathjax --save
在文章中使用LaTeX语法:
$$E=mc^2$$
\(a^2 + b^2 = c^2\)
流程图
```mermaid
graph TD
A[开始] --> B{条件A}
B -->|是| C[结果A]
B -->|否| D[结果B]
C --> E[结束]
D --> E
### SEO优化策略
1. **标题优化**
- 包含核心关键词
- 控制在50-60个字符
- 使用吸引人的表述
2. **内容优化**
- 首段包含关键词
- 合理使用小标题(h2-h4)
- 关键词密度控制在2%-5%
3. **Meta标签**
```yaml
# 在文章Front-matter中添加
keywords: Hexo, SEO, 博客优化
description: 详细介绍Hexo博客的SEO优化方法
部署与维护
多环境部署方案
博客维护 checklist
- [ ] 定期备份
_config.yml
和文章内容 - [ ] 使用
hexo clean
清理缓存 - [ ] 更新Hexo和插件到最新版本
- [ ] 检查死链接和图片引用
- [ ] 优化大型图片和资源
常见问题解决
部署后样式丢失
# 检查站点URL配置
hexo config url
# 确保配置正确后重新部署
hexo clean && hexo deploy
本地预览与线上差异
# 生成静态文件并本地预览
hexo generate && hexo server -s
插件冲突解决
# 查看已安装插件
npm list --depth=0
# 卸载冲突插件
npm uninstall hexo-plugin-name
推荐资源
优质插件
- hexo-generator-searchdb: 站内搜索功能
- hexo-filter-nofollow: 添加nofollow属性
- hexo-autoprefixer: CSS自动前缀
- hexo-related-popular-posts: 相关文章推荐
学习资源
- Hexo官方文档
- Next主题文档
- Hexo插件大全