- Published on
在 Github Pages 上部署 Hexo
- Authors

- Name
- Hentai
安装
安装 Hexo 相当简单,只需要先安装下列应用程序即可:
| Hexo 版本 | 最低兼容 Node.js 版本 |
| ----------- | -------------------- |
| 6.0+ | 12.13.0 |
| 5.0+ | 10.13.0 |
| 4.1 - 4.2 | 8.10 |
| 4.0 | 8.6 |
安装 Hexo
所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。
npm install hexo-cli -g
安装 Hexo 完成后,执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
hexo init blog
cd blog
npm install
安装完成后,输入hexo server以下命令以启动服务器,网站会在 http://localhost:4000 下启动。在服务器启动期间,Hexo 会监视文件变动并自动更新,无须重启服务器。
建站
新建完成后,指定文件夹的目录如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
├ ├── _drafts
├ └── _posts
└── themes
_config.yml 网站的 配置 信息,您可以在此配置大部分的参数。
package.json 应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,可以自由移除。
scaffolds 模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。 Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。
source 资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。
themes 主题 文件夹。Hexo 会根据主题来生成静态页面。
部署
- 新建一个 repository。如果你希望你的站点能通过域名
<你的 GitHub 用户名>.github.io访问,你的 repository 应该直接命名为<你的 GitHub 用户名>.github.io。 - 前往 GitHub 新建 Personal Access Token,只勾选 repo 的权限并生成一个新的 Token。Token 生成后请复制并保存好。
- 在
_config.yml(如果有已存在的请删除)添加如下配置:## Docs: https://hexo.io/docs/one-command-deployment deploy: type: 'git' repo: https://github.com/Hentai02/hentai02.github.io.git branch: gh-pages token: Personal Access Token - 安装 hexo-deployer-git。
npm install hexo-deployer-git --save - 运行
hexo clean && hexo deploy。 - 查看 username.github.io 上的网页是否部署成功。
Gitalk(可选的)
NexT主题Gitalk配置
# Gitalk
# For more information: https://gitalk.github.io
gitalk:
client_id: GitHub Application Client ID.
client_secret: GitHub Application Client Secret.
repo: gitalk-comments
github_id: Hentai02 # GitHub repository 所有者
admin_user: Hentai02 # GitHub repository 的所有者和合作者
#distraction_free_mode: true # 类似Facebook评论框的全屏遮罩效果.
language: zh-CN
自定义域名(可选的)
- 自定义域名。打开 repository 点击
Settings/Pages在Custom domain中填入域名并保存。 - 添加一条主机记录(主机记录相当于域名的前缀,比如 www),记录类型
CNAME(将域名指向另一个域名地址,与其保持相同解析,如 hentai02.github.io)。