Skip to content

Hexo

Hexo 是什么

Hexo 是一款基于 Node.js 开发的轻量级静态博客框架,由台湾开发者 Tommy Chen 于 2012 年创建,采用 MIT 开源协议,是国内个人博客领域知名度最高、用户基数最大的静态站点生成器之一。

它以 Markdown 为内容载体,通过简单的命令即可将文章批量渲染为完整的静态 HTML 站点,一键部署到 GitHub Pages 等平台,全程无需数据库与后端服务,是很多开发者搭建个人博客的入门首选。

Hexo核心架构与工作原理

Hexo 围绕「内容即代码」的理念设计,整体采用模块化架构,核心工作流清晰可控。

1. 核心模块

  • 内容解析模块:通过 hexo-front-matter 提取文章头部元数据,配合 Markdown 解析器将正文转换为 HTML 片段,原生支持 GFM 语法。
  • 渲染引擎(Renderer):负责将内容与模板结合,生成最终页面。原生支持 EJS 模板,可通过插件扩展 Pug、Nunjucks、Swig 等模板引擎,也支持 Sass/Less 等样式预处理器。
  • 生成器(Generator):执行 hexo generate 时的核心模块,根据路由规则批量生成所有静态页面、归档页、标签页、分类页等。
  • 本地服务器(Server):内置开发服务器,支持热更新预览,默认运行在 4000 端口,用于本地调试。
  • 部署器(Deployer):通过插件扩展部署能力,支持一键推送到 Git 仓库、云存储等多种目标平台。

2. 完整工作流程

  1. 本地编写 Markdown 文章,文件存放于 source/_posts 目录
  2. 执行构建命令,Hexo 解析文章元数据与正文
  3. 结合选中主题的模板与样式,渲染生成完整的 HTML/CSS/JS 文件
  4. 所有静态产物输出到 public 目录
  5. 通过部署命令将 public 目录的文件推送到托管平台

3. 路由映射规则

Hexo 采用基于文件系统的自动路由

  • source/_posts/文章名.md 默认映射为 /YYYY/MM/DD/文章名.html
  • source/about/index.md 会生成为 /about/ 页面
  • 路由格式可通过全局配置自定义,支持纯静态、后缀隐藏等多种格式

Hexo核心特性

1. 极速生成效率

基于 Node.js 异步 IO 实现,数百篇文章可在数秒内完成构建,相比同类型老牌工具 Jekyll 构建速度有数量级提升,完全满足个人博客的日常更新需求。

2. 全面的 Markdown 支持

原生支持标准 Markdown 与 GFM 扩展语法,同时提供专属的标签插件(Tag Plugins),可在 Markdown 中直接插入提示框、代码块、引用、视频等富内容,无需手写 HTML。

3. 灵活的模板与定制能力

支持多种主流模板引擎,主题体系成熟,既可以直接使用现成主题,也可以通过修改模板、自定义样式实现高度个性化的页面效果。

4. 丰富的扩展生态

拥有完善的插件系统,覆盖内容生成、功能增强、部署、第三方集成等全场景,RSS、站点地图、全文搜索、评论系统等常用功能都有成熟插件可直接使用。

5. 开箱即用的部署能力

支持一键部署到 GitHub Pages、Vercel、云服务器等多种平台,配合 CI/CD 工具可实现「提交 Markdown 自动更新站点」的自动化工作流。

6. 友好的迁移兼容

兼容 Octopress 的绝大多数插件与写作格式,从其他博客平台迁移成本低,也支持从 WordPress、Jekyll 等工具批量导入文章。

Hexo安装与基础使用

1. 前置依赖

使用 Hexo 前需要先安装两个环境:

  • Node.js:建议 14.x 及以上 LTS 版本
  • Git:用于主题安装与代码部署

2. 快速安装步骤

  1. 全局安装 Hexo 命令行工具:
bash
npm install -g hexo-cli
  1. 初始化博客项目:
bash
hexo init my-blog
cd my-blog
npm install
  1. 启动本地预览服务器:
bash
hexo server

启动后访问 http://localhost:4000 即可查看默认博客。

3. 核心常用命令

完整命令简写功能说明
hexo new post "文章标题"-新建一篇博客文章
hexo generatehexo g生成全部静态文件到 public 目录
hexo serverhexo s启动本地预览服务器,支持热更新
hexo cleanhexo c清理缓存与已生成的 public 文件
hexo deployhexo d按配置一键部署站点
hexo new page "页面名"-新建独立页面(如关于页、友链页)

日常开发常用组合命令:

bash
# 清理并重新生成
hexo clean && hexo g

# 清理生成后直接部署
hexo clean && hexo g && hexo d

Hexo核心配置体系

1. 全局配置文件 _config.yml

这是 Hexo 的主配置文件,站点的所有基础设置都在此处修改,核心配置项包括:

yaml
# 站点基础信息
title: 我的博客
subtitle: 记录技术与生活
description: 博客描述(用于SEO)
author: 作者名
language: zh-CN
timezone: Asia/Shanghai

# URL 配置(影响页面链接与SEO)
url: https://your-domain.com
root: /
permalink: :year/:month/:day/:title/

# 主题设置
theme: landscape

# 分页设置
per_page: 10

# 部署配置
deploy:
  type: git
  repo: https://github.com/username/username.github.io.git
  branch: main

2. 文章 Front Matter

每篇 Markdown 文章的头部通过 YAML 格式定义元数据,用于控制文章属性,常用字段如下:

yaml
---
title: 文章标题
date: 2026-08-17 10:00:00
categories: 技术分类
tags:
  - Hexo
  - 静态站点
top: true  # 置顶文章
comments: true  # 开启评论
description: 文章摘要,用于SEO与列表展示
math: false  # 是否开启数学公式渲染
---

Hexo主题生态

Hexo 的主题生态极其丰富,官方主题站收录超过 400 款主题,覆盖简约、卡片、二次元、技术风等多种风格,中文社区的主题质量与维护度普遍较高。

主流经典主题

  • NexT(Next):最经典的 Hexo 主题,简约素雅,专注阅读体验,内置多种布局方案,功能完善,是很多用户的第一款主题。
  • Butterfly:当前中文社区最热门的主题,颜值高、功能丰富,支持暗色模式、相册、说说、友链等大量特色功能,定制性极强。
  • Matery:卡片式设计风格,响应式适配优秀,视觉效果现代,适合打造个性化技术博客。
  • Landscape:Hexo 默认主题,简洁轻量,适合追求极简、不想折腾配置的用户。
  • Maupassant:极简排版风格,专注文字阅读,加载速度极快,适合纯文字博客。

主题使用方式

主题通常存放于 themes/主题名 目录,通过修改全局配置中的 theme 字段切换;推荐使用单独的 _config.主题名.yml 配置文件管理主题设置,避免主题更新时覆盖自定义配置。

Hexo插件生态

Hexo 插件通过 NPM 安装,在 _config.yml 中注册即可生效,常用插件可分为以下几类:

1. 基础功能类

  • hexo-deployer-git:Git 部署插件,支持一键推送到 GitHub/Gitee Pages
  • hexo-generator-sitemap:自动生成站点地图,提升 SEO 收录
  • hexo-generator-feed:生成 RSS 订阅源
  • hexo-generator-search:生成本地搜索索引,实现站内全文搜索
  • hexo-generator-archive:增强归档页面功能

2. 内容增强类

  • hexo-asset-image:优化文章图片引用,支持与文章同名的资源目录
  • hexo-prism-plugin:替换默认代码高亮,实现更美观的代码样式
  • hexo-tag-xxx:各类标签插件,扩展 Markdown 可插入的内容类型

3. 优化类

  • hexo-all-minifier:自动压缩 HTML/CSS/JS/图片,优化站点加载速度
  • hexo-filter-nofollow:自动为外链添加 nofollow 属性,优化 SEO

Hexo主流部署方案

Hexo 生成的 public 目录是纯静态文件,几乎支持所有静态托管平台,主流部署方式如下:

1. 代码托管平台 Pages

  • GitHub Pages:最经典的免费方案,配合 hexo-deployer-git 一键部署,适合个人用户
  • Gitee Pages:国内访问速度更快,适合国内用户,配置方式与 GitHub 基本一致

2. 自动化托管平台

  • Vercel / Netlify / Cloudflare Pages:绑定 GitHub 仓库后自动构建部署,自带全球 CDN、HTTPS、预览部署,是当前体验最优的方案
  • 优势:无需本地执行构建命令,提交 Markdown 到仓库后自动完成构建与发布

3. 云服务器部署

public 目录上传到服务器,通过 Nginx 托管;也可配合 Git Hook 实现推送自动更新,适合有自有服务器的用户。

4. 对象存储 + CDN

部署到阿里云 OSS、腾讯云 COS 等对象存储服务,搭配 CDN 加速,适合追求国内访问速度、有自定义域名需求的用户。

Hexo优缺点分析

优点

  1. 中文生态完善:国内用户基数大,中文教程、主题、问题排查资源极其丰富,新手遇到问题极易找到解决方案
  2. 上手门槛极低:命令简单,配置清晰,默认配置即可生成可用的博客,无需掌握前端工程化知识
  3. 主题插件丰富:从简约到复杂的各类需求基本都有现成方案,不用从零开发
  4. 写作体验流畅:纯 Markdown 写作,本地编辑,配合 Git 可实现版本管理
  5. 部署成本极低:大量免费托管平台可选,零成本即可上线个人博客

缺点

  1. 大内容量性能有限:当文章数量超过 500 篇后,构建速度明显慢于 Hugo、Zola 等编译型工具
  2. 主题质量参差不齐:大量第三方主题维护状态不一,部分主题存在兼容性问题、长期不更新
  3. 定制深度有限:相比 Astro、Next.js 等现代框架,Hexo 的组件化能力较弱,高度定制化开发成本较高
  4. 依赖 Node.js 环境:需要本地安装 Node.js 环境,相比单二进制工具便携性稍差

Hexo适用场景与选型建议

适合人群

  • 想搭建个人技术博客/生活博客的新手用户
  • 习惯 Markdown 写作、追求简单省心的内容创作者
  • 不想维护服务器与数据库、希望零成本上线站点的用户
  • 有一定前端基础,想适度定制博客外观的开发者

不适合场景

  • 文章数量上千篇的超大体量内容站(更推荐 Hugo)
  • 需要大量动态交互、用户系统的复杂站点(更推荐 Next.js/Nuxt)
  • 企业级营销官网、品牌站(更推荐 Astro)

整体而言,Hexo 是个人博客领域的「国民级入门工具」,生态成熟、学习资源丰富,如果你是第一次搭建个人博客,它是非常稳妥的选择。

Hexo 从零搭建到部署完整教程

这是一份面向新手的保姆级操作指南,全程跟着做就能从 0 到 1 上线属于自己的个人博客。

一、前置环境准备

Hexo 依赖 Node.js 和 Git 两个工具,安装完成后才能进行后续操作。

1. 安装 Node.js

Hexo 基于 Node.js 运行,建议安装 16.x 及以上的 LTS(长期支持)版本

  • 下载地址:Node.js 官网
  • 安装时全程默认下一步即可,安装完成后打开终端(Windows 用 CMD/PowerShell,Mac 用终端),输入以下命令验证:
bash
node -v
npm -v

输出版本号即说明安装成功。

2. 安装 Git

Git 用于后续安装主题、代码提交和部署。

  • 下载地址:Git 官网
  • 同样默认安装即可,安装完成后在终端验证:
bash
git --version

输出版本号即说明安装成功。


二、安装 Hexo 并初始化项目

环境准备好后,就可以安装 Hexo 命令行工具并创建博客项目了。

1. 全局安装 Hexo 脚手架

在终端执行以下命令,全局安装 hexo-cli:

bash
npm install -g hexo-cli

安装完成后验证:

bash
hexo -v

输出版本信息即安装成功。

2. 初始化博客项目

选择一个存放博客的文件夹,在终端进入该目录后,执行初始化命令(my-blog 可替换为你自己的项目名):

bash
hexo init my-blog

初始化完成后,进入项目目录并安装依赖:

bash
cd my-blog
npm install

至此,一个基础的 Hexo 博客就已经创建完成了。


三、项目目录结构说明

初始化完成后,项目根目录下的核心文件和文件夹如下:

my-blog/
├── _config.yml      # 站点全局配置文件(改站点信息、主题、部署等都在这里)
├── package.json     # 项目依赖与脚本配置
├── scaffolds/       # 文章模板,新建文章时会套用这里的格式
├── source/          # 内容资源目录
│   └── _posts/      # 所有博客文章都存放在这里
├── themes/          # 主题目录,每个子文件夹对应一个主题
└── public/          # 构建生成的静态文件目录(执行 hexo g 后才会出现)

日常使用中,90% 的操作都围绕 _config.ymlsource/_posts 两个位置。


四、本地预览与第一篇文章

1. 启动本地预览服务

在项目根目录执行:

bash
hexo server

启动成功后,打开浏览器访问 http://localhost:4000,就能看到 Hexo 默认的博客页面了。

提示:修改文章内容会自动热更新,修改配置文件后需要重启服务(Ctrl+C 停止后重新执行 hexo server)。

2. 新建第一篇文章

新开一个终端窗口,在项目根目录执行:

bash
hexo new post "我的第一篇Hexo博客"

执行后会在 source/_posts 目录下生成一个同名的 .md 文件。

3. 编写文章内容

打开生成的 Markdown 文件,顶部是文章元数据(Front Matter),下方是正文内容:

yaml
---
title: 我的第一篇Hexo博客
date: 2026-08-17 15:30:00
tags:
categories:
---

这里是文章正文,直接用 Markdown 语法书写即可。

常用 Front Matter 字段说明:

  • title:文章标题
  • date:发布日期
  • tags:文章标签,可写多个,换行缩进即可
  • categories:文章分类
  • top: true:置顶文章
  • comments: false:关闭该文章的评论

写完保存后,刷新本地页面就能看到新文章了。


五、核心站点配置

打开根目录下的 _config.yml 文件,修改以下基础信息,让博客变成你自己的:

yaml
# 站点基础信息
title: 我的个人博客          # 博客标题
subtitle: 记录技术与生活      # 副标题
description: 这是我的个人技术博客,分享编程与生活感悟  # 站点描述,用于SEO
author: 你的名字             # 作者名
language: zh-CN             # 语言,设为简体中文
timezone: Asia/Shanghai     # 时区,必须设置,否则时间会出错

# URL 配置(部署后必须改成你的实际域名)
url: https://你的用户名.github.io
root: /

# 永久链接格式,推荐简洁格式
permalink: :year/:month/:title/

# 分页设置
per_page: 10  # 每页显示10篇文章

# 当前使用的主题,默认是 landscape
theme: landscape

注意:YAML 格式对缩进非常严格,冒号后面必须加一个空格,层级用两个空格缩进。


六、更换主题(以 Butterfly 为例)

默认主题比较简约,Hexo 最吸引人的就是丰富的主题生态,这里以目前中文社区最热门的 Butterfly 主题为例,演示更换流程。

1. 安装主题

在项目根目录执行,将主题克隆到 themes/butterfly 目录:

bash
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

2. 启用主题

打开根目录 _config.yml,找到 theme 字段,修改为:

yaml
theme: butterfly

3. 主题配置(避免更新覆盖)

不要直接修改 themes/butterfly/_config.yml,后续主题更新会被覆盖。正确做法是:

  1. 将主题目录下的 _config.yml 复制到项目根目录
  2. 重命名为 _config.butterfly.yml
  3. 以后所有主题配置都修改这个文件

配置完成后,重启本地服务,就能看到新主题的效果了。


七、必备插件安装

Hexo 的功能通过插件扩展,以下是几个几乎必装的基础插件:

1. Git 部署插件

用于一键部署到 GitHub/Gitee 等平台:

bash
npm install hexo-deployer-git --save

2. 站点地图插件

生成 sitemap.xml,帮助搜索引擎收录,提升 SEO:

bash
npm install hexo-generator-sitemap --save

3. RSS 订阅插件

生成 RSS 订阅源,方便读者订阅:

bash
npm install hexo-generator-feed --save

4. 本地搜索插件

配合主题实现站内全文搜索:

bash
npm install hexo-generator-searchdb --save

安装后在主题配置文件中开启搜索功能即可。


八、部署上线(两种主流免费方案)

本地调试完成后,就可以把博客部署到网上,让所有人都能访问了。这里推荐两个最常用的免费方案。

方案一:GitHub Pages(经典免费方案)

  1. 新建 GitHub 仓库 登录 GitHub,新建一个名为 你的用户名.github.io 的仓库(名称必须和用户名完全一致,否则无法正常访问)。

  2. 配置部署信息 打开根目录 _config.yml,在最底部添加部署配置:

    yaml
    deploy:
      type: git
      repo: https://github.com/你的用户名/你的用户名.github.io.git
      branch: gh-pages
  3. 执行部署 在终端执行:

    bash
    hexo clean && hexo g && hexo d

    按提示输入 GitHub 账号和 Personal Access Token。

  4. 开启 Pages 服务 进入 GitHub 仓库的 Settings → Pages,选择 Source 为 gh-pages 分支,保存后等待几分钟,访问 https://你的用户名.github.io 就能看到你的博客了。

方案二:Vercel 自动部署(更推荐)

Vercel 是目前体验最好的静态站点托管平台,自带全球 CDN、HTTPS,提交代码自动构建部署,无需本地执行部署命令。

  1. 将项目推送到 GitHub 仓库 把整个 Hexo 项目(不需要 publicnode_modules 目录,.gitignore 已经自动排除)推送到你的 GitHub 仓库。

  2. 绑定 Vercel 打开 Vercel 官网,用 GitHub 账号登录,点击「Add New → Project」,导入刚才的仓库。

  3. 一键部署 Vercel 会自动识别 Hexo 项目,自动填充构建命令和输出目录,直接点击「Deploy」即可。 等待 1-2 分钟构建完成,就可以通过 Vercel 分配的域名访问博客了。

优势:以后写新文章只需要把 Markdown 文件提交到 GitHub,Vercel 会自动构建更新,完全不用手动执行部署命令。


九、日常写作常用命令汇总

命令作用
hexo new post "标题"新建一篇博客文章
hexo new page "页面名"新建一个独立页面(如关于页、友链页)
hexo server / hexo s启动本地预览服务
hexo generate / hexo g生成静态文件到 public 目录
hexo clean / hexo c清理缓存和已生成的 public 文件
hexo deploy / hexo d一键部署站点
hexo clean && hexo g && hexo d常用组合:清理→生成→部署

十、常见问题排查

  1. 修改配置后页面没变化:先执行 hexo clean 清理缓存,再重新生成预览。
  2. 部署后样式丢失、页面错乱:检查 _config.yml 中的 urlroot 配置是否与实际域名路径一致。
  3. 4000 端口被占用:启动时指定其他端口:hexo server -p 5000
  4. 主题不生效:检查主题文件夹名称是否与配置中的 theme 字段完全一致,YAML 缩进是否正确。