1. Hexo 简介
Hexo 是使用 Node.js 开发的一个简洁、高效、开源的静态博客生成器。Hexo 能够以非常快的速度将 Markdown 渲染成静态的 HTML 文件。类似于 Jekyll、Ghost、Octopress,可以用于创建博客。
Hexo 具有如下优势:
- 使用 Node.js ,搭建环境简单。Jekyll 搭建环境非常麻烦。
- 方便托管到 GitHub Pages ,由于 Hexo 生成的是 HTML ,十分方便部署
- 支持 Markdown
2. 安装 Hexo
安装 Node.js 和 NPM 之后,建议更换为国内的 NPM 源,加快依赖包的安装速度
|
|
安装 Hexo
|
|
初始化 Hexo
|
|
生成 scaffolds、drafts、public、db.json、_config.yml、package.json、theme 等文件。
本地启动服务,默认为 4000 端口
|
|
3. Ghost 迁移文章
由于之前使用 Ghost 搭建博客,需要从 Ghost 后台,导出 json 格式的博客数据。然后,通过 Hexo 插件工具,将 json 数据转换为 Markdown 文件。
安装 hexo-migrator-ghost
|
|
导入数据,转换为 Markdown 文件
|
|
执行完毕后,在 source 目录下,会自动生成每篇文档对应的 Markdown 文件。
4. 发布到 GitHub Pages
第一步,在 GitHub 新建一个 your_name.github.io 的项目。
第二步,在 _config.yml 中配置 repo
|
|
第三步,生成 HTML
|
|
第四步,部署到 GitHub Pages
|
|
根据提示输入账户,密码即可完成部署。通过 http://your_name.github.io 访问博客。
5. CI 自动发布
由于仅使用 GitHub Pages 作为博客的发布地址,还需要一个仓库地址用于托管 Hexo 项目,还有 Markdown 源文件。
第一步,在 GitHub 的 https://github.com/settings/keys 页面,生成一对 SSH Key ,点击【Add SSH key】将 pubulic key 填入其中。
第二步,在 GitLb 项目的 【settings/ci_cd】页面,【Secret variables 】处,新增环境变量 DEPLOY_KEY,值为 private key。
第三步,配置 CI 流程。使用 GitLab 作为 Hexo 源码托管仓库,通过 CI 自动发布到 GitHub Pages。
在根目录下,新建文件 .gitlab-ci.yml 内容如下:
|
|
如果没有 CI 配置,那么需要在本地生成 HTML 文件,再部署到 GitHub Pages 。通过配置 CI ,现在仅需要将 Markdown 文件提交到 GitLab ,GitLab CI 将自动完成部署。