Hexo 是一个基于 Node.js 的开源静态博客生成框架,用 Markdown 等标记语言解析文章,再通过主题模板渲染出静态网页。它由 Tommy Chen 于 2012 年创建,采用生成器机制把处理后的原始文件映射为静态文件路由,并支持一条指令部署到 GitHub Pages、Heroku 等平台。由于其生成速度较快、模板与插件生态丰富,Hexo 成为个人技术博客常见的搭建方案之一,尤其在使用中文的开发者社区中工具链与教程积累较多[1]。
定义
Hexo 是一个基于 Node.js 的静态博客生成框架,官方将其定位为快速、简洁且高效的博客框架。它读取 Markdown 或其他标记语言写成的文章,结合主题模板在本地渲染成静态网页文件,而不依赖数据库和服务器端脚本。
与 WordPress 一类依靠服务器实时查询数据库生成页面的动态博客系统不同,Hexo 的产物是一批预先编译好的 HTML 文件,可直接托管在静态托管服务上[2]。使用前需要先安装 Node.js 与 Git,安装 Hexo 本身通过包管理器 npm 完成。
原理
Hexo 的工作流程可以概括为「解析—渲染—输出」三步:先读取 source 目录下的 Markdown 文章与站点配置,再把文章数据注入主题模板进行渲染,最后将结果写入 public 目录[3]。文章头部通常带有 front-matter 元数据,用于声明标题、日期、标签与分类等信息[2]。
生成器是 Hexo 的核心机制,负责根据处理后的原始文件建立路由。开发者可通过 hexo.extend.generator.register 注册生成器函数,函数返回包含 path、data、layout 属性的对象或其数组,分别表示路由路径、渲染数据和布局模板。原始文件更新时,所有生成器会被重新执行并重建路由。
渲染环节依赖模板引擎。Hexo 内建 Nunjucks 引擎,也可通过插件获得 EJS、Pug、Haml、Swig 等支持,框架依据模板文件的扩展名选择对应引擎。在文件写入阶段,Hexo 会比对文件的 SHA1 checksum,仅写入发生变动的内容,从而提高重复生成的效率;配合 --watch 参数可以监视文件变动并即时重建。
常用命令包括 hexo init 初始化站点、hexo new 新建文章、hexo server 启动本地预览、hexo generate 生成静态文件以及 hexo deploy 部署发布,其中生成与部署命令可分别简写为 g 和 d[4]。
发展历程
Hexo 由 Tommy Chen 于 2012 年创建并持续维护,项目源码托管在 GitHub 上,采用 MIT 许可证。2012 年 9 月 23 日,项目仓库在 GitHub 建立。
版本迭代中,Hexo 多次调整对运行环境的要求。官方文档给出过对应关系:Hexo 5.0 及以上要求 Node.js 不低于 10.13,Hexo 6.2 及以上要求 12.13.0,Hexo 7.0 及以上要求 14.0.0,Hexo 8.0 及以上要求 20.19.0。2024 年 7 月 1 日发布 7.3.0 版本,2025 年 9 月 16 日发布 8.0.0 版本,2025 年 10 月 26 日发布 8.1.0 版本[5]。8.0.0 属于破坏性更新,主要变化是移除对 Node.js 16 和 18 的支持[6]。
项目文档同样开源,并借助 Crowdin 平台进行多语言翻译协作;用户可通过 GitHub Issues 反馈问题,也可在 Google Group 等渠道获得社区帮助。主题作者可将自制主题提交到官方主题列表,经审核后收录。
应用
Hexo 最典型的用途是搭建个人博客,尤其是技术类博客。文章按归档、分类和标签组织,配合 hexo-pagination 等工具生成分页页面。生成的静态站点可部署到 GitHub Pages、Heroku、Netlify 等托管服务,借助 hexo-deployer-git 插件可把生成结果推送到指定仓库分支。
除官方提供的基础能力外,社区围绕 Hexo 积累了数量可观的主题与插件。插件可覆盖站点地图生成、订阅源生成、站点文件压缩、搜索与评论等功能,模板语言和 CSS 预处理器也可通过插件扩展[1]。常见主题如 NexT 被较多个人站点采用。
在工程实践中,部分用户把 Hexo 与 GitHub Actions 等持续集成服务结合,由工作流自动完成安装依赖、生成页面和发布部署,使内容创作与版本管理分离。
局限
作为静态站点生成器,Hexo 的输出没有服务端运行时,因此不支持用户注册、登录一类需要动态处理的功能,评论、访问统计等交互能力通常要接入第三方服务或接口来实现[7]。本地搜索同样依赖预先构建的索引文件或外部接口,在文章量较大时生成索引会明显变慢[8]。
生成性能受文章规模影响明显。在项目的问题讨论中,有用户反馈站点文章接近 1 万篇时,生成过程耗时超过 20 分钟仍未完成,并提到查询操作为 O(n) 复杂度、缓存对象深拷贝等环节是耗时来源之一。有横向评测把「文章数量庞大后构建速度下降」和「Node 依赖容易出现版本冲突」列为 Hexo 的主要短板[9]。
此外,Hexo 的内容源以本地文件系统为主,扩展功能需要通过插件修改全局变量实现,在组件化界面和复杂交互逻辑方面能力有限,更适合轻量内容站点而非应用式网站[3]。本地环境也是使用前提,更新内容后需要重新生成静态文件再发布[10]。
参见
参考资料
- Hexo | Jamstack [引用日期2026-10-14]
- Hexo搭建个人博客指南:从零开始打造专属技术空间 [引用日期2026-10-14]
- Gatsby vs Hexo vs VuePress:静态站点生成器深度技术对比 [引用日期2026-10-14]
- hexo [引用日期2026-10-14]
- hexo 8.0.0 Released [引用日期2026-10-14]
- Release v8.0.0 · hexojs/hexo - Skip to content [引用日期2026-10-14]
- blog-engine-05-博客引擎 Hexo 入门介绍+安装笔记 [引用日期2026-10-14]
- hexo到Typecho的迁移日志 [引用日期2026-10-14]
- 开源博客框架横向对比 [引用日期2026-10-14]
- 从零开始搭建个人博客:Hexo + Butterfly [引用日期2026-10-14]