之前有朋友问我个人博客怎么搞, 这里简单记录一下利用Github
和Hexo
自建博客的教程。
1 准备工作
1.1 安装Node.js
安装Node.js
的原因是Hexo
是基于Node.js
的博客框架, 因此需要先安装Node.js
。而Node.js
是运行在V8
引擎上的JavaScript运行时。
安装方式:
- 官网下载: https://nodejs.org/en/download/
- mac:
brew install node
- windows:
- 官网下载安装包, 一路安装即可
- 或者使用包管理器安装:
choco install nodejs
scoop install nodejs
这里非常推荐使用
scoop
安装, 因为scoop
是Windows
下的通用包管理器, 不仅仅可以安装Node.js
, 还可以安装各类软件, 可以参考我的这篇文章: Scoop–windows下的软件包管理工具
1.2 安装Hexo
Hexo
是一个基于Node.js
的博客框架, 可以用来生成静态博客。官网: https://hexo.io/zh-cn/
安装方式:
npm install -g hexo-cli
2 Hexo的使用和配置
这里先列出一些常用的Hexo
命令, 更多命令可以参考Hexo官网, 后续我会使用这些命令来逐渐搭建博客。
命令 | 缩写 | 描述 |
---|---|---|
hexo init <folder> |
- | 在指定的文件夹中初始化一个新的 Hexo 站点。 |
npm install |
- | 安装 Hexo 及其所需的依赖包。需在 Hexo 项目根目录下执行。 |
hexo generate |
hexo g |
根据配置文件和源文件生成静态网页文件。生成的文件会被放置在 public 文件夹中。 |
hexo server |
hexo s |
启动本地服务器,方便预览你的博客。默认访问地址为 http://localhost:4000。 |
hexo clean |
- | 清除缓存文件 (db.json ) 和已生成的静态文件 (public 文件夹)。 |
hexo deploy |
hexo d |
将生成的静态文件部署到你配置的远程仓库或服务器。 |
hexo new "post title" |
- | 创建一篇新文章。 |
hexo new page "page-name" |
- | 创建一个新的页面(如关于我、联系我等)。 |
npm update hexo -g |
- | 全局更新 Hexo 到最新版本。 |
npm update |
- | 更新当前 Hexo 项目的依赖包到最新版本。 |
hexo list |
- | 显示可用的命令列表。 |
hexo help |
- | 显示帮助信息。 |
hexo version 或 hexo v |
- | 显示 Hexo 和相关软件的版本号。 |
3 博客的搭建
3.1 初始化博客
在命令行:
1 | hexo init CSBlog |
这样就初始化了一个博客文件夹CSBlog
。其目录结构如下:
其中重要的几个文件夹或文件的含义是:
_config.yml
: 博客的配置文件, 可以在这里配置博客的各种信息, 从官网或者主题中可以获取_config.landscape.yml
: 博客的主题配置文件, 可以在这里配置博客的主题信息, 从官网或者主题中可以获取source
: 博客的源文件夹, 所有的博客文章、页面、资源文件等都放在这里_posts
: 博客文章的文件夹, 所有的博客文章都放在这里(默认的行为, 也没必要去更改)- 其他
_xxx
文件夹: 和选择的主题相关
themes
: 博客的主题文件夹, 所有的主题文件都放在这里, 换句话说, 在这里执行git clone <theme-url>
就可以安装一个主题public
: 博客的生成文件夹, 所有的生成文件都放在这里, 也就是将Markdown
文件生成html
,css
,js
等文件的地方
3.2 创建博客文章
在命令行:
1 | hexo new -p "随笔/利用Github和Hexo自建博客" |
这样就创建了一篇博客文章, 文章的文件会放在source/_posts
文件夹中, 文件名中支持使用/
来表示文件夹, 例如随笔/利用Github和Hexo自建博客
。这样就可以看到生成的.md
文件了。
生成的文章会自动填充一些元数据, 例如title
, date
, category
, tags
等, 其中title
, date
是hexo
自动识别的 其他的字段是由具体的主题所支持的。需要注意的是, 这些元数据的格式是yaml
格式, 因此需要使用yaml
的语法, 例如表示多个tag
需要这么写:
1 | tags: |
其他就没啥好说的了, 就是正常的Markdown
写作。
3.3 渲染博客
这里的渲染博客指的是将多个Markdown
文件渲染成html
文件, 也就是将博客文章生成到public
文件夹中。具体操作在命令行:
1 | hexo generate # 可以简写为 hexo g |
渲染后的博客支持在本地预览, 具体操作在命令行:
1 | hexo server # 可以简写为 hexo s |
这个命令会启动一个本地服务器, 默认访问地址为http://localhost:4000
。
4 部署博客
4.1 创建仓库
部署博客照理说是需要去购买域名、服务器等, 但是这里我们利用Github
免费的Pages
服务来部署博客,纯免费,薅资本主义的羊毛。
首先先创建一个仓库, 仓库名格式为<username>.github.io
, 例如我的仓库名就是ToniXWD.github.io
, 然后如下进行设置:
这样以后,每次commit
就会触发一次Github Actions
, 将博客部署到Github Pages
上。
4.2 一键部署
hexo
支持一键部署, 需要再_config.yml
中配置自己的仓库url
, 然后执行hexo deploy
即可, 例如:
1 | type: git |
这样就可以按照如下步骤进行部署:
1 | hexo g # 渲染博客 |
5 主题配置
https://hexo.io/themes/ 中有很多主题, 可以自行选择。每个主题的配置方式都不一样, 这里就不展开了。不过不少的主题都要求在github
中配置一些插件(Github APP
), 这里介绍一些插件的配置方式, 例如utterances
就是一个评论插件, 配置方式参考: https://utteranc.es/