2026 重读:这是十年前的旧文,方案上保留原貌,Hexo 今天仍在维护,这条路线依然走得通;但如果是现在从零开始,可能会考虑 Hugo / Astro / Eleventy——我自己也把博客从 Hexo 迁到了 Hugo。评论系统 Disqus 因广告与隐私问题不再推荐,今天的同类选项是 Giscus(基于 GitHub Discussions)。部署环节如今基本由 GitHub Actions 接管,不再需要手动把 public/ 推上去。


WordPress 这类博客系统功能强大,但对只想随手写点东西的人来说有点重。而且 WordPress 需要部署,服务器本身就是负担:国内服务器要备案、费用不低,国外服务器访问速度受影响。

近来接触到一种新的博客系统 Hexo,它的不同之处是:把博客的编写和页面渲染都放到线下完成。在本地编写博文的 Markdown 文件,使用 Hexo 生成博客网站的全部静态 HTML,然后把生成的文件上传到服务器就行了。

那么 WordPress 里的评论等动态功能怎么办呢?放心,第三方服务商早已为我们考虑过。例如 Disqus 就是一家第三方社会化评论系统,主要为站长提供评论托管服务。

了解 Hexo

A fast, simple & powerful blog framework

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页,Hexo setup 官方文档

安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo:

npm install -g hexo-cli

建站

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件:

hexo init <folder>
cd <folder>
npm install

新建完成后,指定文件夹的目录如下:

├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

新建一篇文章

hexo new [layout] <title>

如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。

生成静态文件

hexo generate
# 可以简写为
hexo g

启动服务器

hexo server
# 可以简写为
hexo s

网站会在 http://localhost:4000 下启动。在服务器启动期间,Hexo 会监视文件变动并自动更新,您无须重启服务器。

部署静态网页到 GitHub

注册设置 GitHub

  1. 登录 GitHub,注册自定义用户名如:imzyf
  2. 在主页右下角创建 New repository,name 必须和用户名一致如:imzyf.github.io
  3. 等待 3 分钟左右,之后即可访问静态主页如:https://imzyf.github.io

同步内容至 GitHub

  1. 在 Hexo 目录下 git clone git@github.com:imzyf/imzyf.github.io.git
  2. public 文件下的所有文件拷贝到 imzyf.github.io
  3. git add . 增加当前子目录下所有更改过的文件至 index
  4. git commit -m 'xxx' 提交到本地
  5. git push origin master 将当前分支 push 到远程 master 分支1
  6. 最后访问主页 https://imzyf.github.io 观察效果

绑定个人域名

在 GitHub 项目页面,Settings → Pages,Source 选择部署分支,Custom domain 填写自己的域名,并勾选 Enforce HTTPS。2

在你的域名服务商那里,将填写的域名解析到 <username>.github.io,例如 imzyf.github.io

– EOF –


  1. GitHub 自 2020 年起新建仓库的默认分支改为 main,老仓库的 master 仍可继续使用,命令本身没有变。 ↩︎

  2. GitHub Pages 的设置界面已经多次改版,当前路径是 Settings → Pages;HTTPS 在 2018 年之后基本默认启用,证书由 GitHub 自动签发。 ↩︎