Hexo 与 GitHub 搭建静态博客笔记
整理了一下 Hexo 搭建过程中的流程:
在使用 Hexo 和 GitHub 搭建静态博客的方案中,初步阶段需要使用到博客框架 Hexo 、代码托管服务平台 GitHub和分布式版本控制软件 git。环境搭建过程:
安装 Hexo 框架 因为该框架是依赖于 Node.js ,因此在先需要安装 Node 之后,通过
npm
包管理命令进行安装 Hexo(需要注意除了通过 CMD 方式安装 Node 外,可以在 Node.js 链接中选择长期稳定版本进行导航安装):1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# mac 通过 homebrew 进行安装
$ brew install node
# 检查是否安装正确,分别显示 node 和 npm 的版本
$ node -v
v12.18.2
$ npm -v
6.14.5
# 安装 hexo 框架
$ npm install -g hexo-cli
# 检查 hexo 安装是否正确
$ hexo -v
# 为了部署的时候使用 git ,可以在这里安装上 hexo-deployer-git
$ npm install --save hexo-deployer-githexo -v
命令会显示 hexo 版本信息、系统信息以及其他依赖的版本信息安装 git 软件 安装方式同样可以通过 CMD 和安装程序导航两种方式:
1
2# homebrew 安装
$ brew install git
2. Hexo 搭建博客
Hexo 搭建博客,包括的过程:
初始化一个博客目录,该目录最后会生成博客框架需要的基础内容
1
2
3
4
5# 创建并进入一个文件目录
$ mkdir Blog && cd Blog
# 初始化服务
$ hexo init启动服务 主要是用于预览博客效果,使用的命令为
hexo s
或者hexo server
。其他选项参数使用说明:1
2-p <port_num> # 设置端口
-i <ip_address> # 设置默认的 IP 地址,不重写的情况下,默认是 0.0.0.0
创建 post 生成一个
<post_name>
的 post 文件,可以通过命令hexo new “<post_name>”
生成一个 markdown 文件;也可以通过直接在通过一般管理文件的方式,可以直接在source
目录下的_posts
目录中管理——即直接在source/_posts
下创建、编辑以及删除等操作post
文件生成静态文件 要以前端的方式展示出博客,可以生成静态文件这样可以部署到相关服务器上,以方便网页访问。生成静态文件命令是
hexo generate
,或者使用hexo g
。推荐在生成之前进行清除数据(设置的public_dir
目录)和数据库,需要使用命令hexo clean
。默认生成的内容是在一个public
目录中,如果需要调整到其他目录需要在_config.yml
文件中Directory
部分中修改public_dir
对应的值即可调整部署 需要注意部署到 GitHub 之前需要设置好仓库,之后才能部署
创建 GitHub 仓库时,其名称一个可以用于访问的地址,例如:
<name>.github.io
的仓库是可以直接访问的,其中<name>
是可以任意取(但是建议是直接使用自己的 GitHub 的用户名称^1),但github.io
必须加上修改配置信息 需要在
_config.yml
中修改deploy
部分信息,更多信息可以参考 官方文档部署说明1
2
3
4
5
6# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: <远程仓库链接>
branch: <git 管理的分支>使用
hexo d
或者hexo deployment
进行部署。此外可以直接使用一条命令完成生成静态文件和部署,即hexo generate --deploy
或者hexo deploy --generate
3. 定制化主题
通常情况下都是依赖于其他相对应的主题,在进行优化调整。这里主要说明怎么样使用主题,以及相关配置修改。一般在页面 Themes | Hexo 中筛选使用的主题之后:
- 在 Blog 文件夹中使用 git 进行 clone repo:
git clone <git_url> themes/<theme_name>
,通过该命令对应的主题 repo 会在 themes 目录下创建一个对应的主题[^2] - 修改主题配置,在
_config.yml
文件中修改theme
对应的属性值,例如theme: icarus
使用的就是icarus
主题 - 后续步骤完成生成静态文件和部署过程即可
参考
主要是因为后面文件引用会存在某些问题,用户名是被当作根目录来使用,因此在使用内部引用 CSS 和 JS 文件时可以方便使用<name>.github.io/<other_info>
。如果需要解决掉因为链接引用是否使用相对链接,可以调整 _config.yml
中 Writing
部分中的 relative_link
设置为 true
[^2]: 主题 repo 作为独立的 submodule 管理
如果主题是直接克隆 repo 到本地的情况下,那么需要添加 submodule 的方式让第三方插件作为 submodule 和个人文件保持独立: git submodule add <github_link> themes/<theme_name>
[^3]: 部署过程提示需要配置 git 全局用户名
这个提示信息是因为使用的 hexo 部署工具没有识别到用户名和邮箱,只需要修改 .deploy_git/.git/config
文件信息即可,并不需要真正的部署全局信息。将以下信息添加到 config
中即可:
1 | [core] |