用 Hexo 在 Github 搭建博客

一. 博客?Hexo?Github?

1.1 你为什么需要一个博客

1.2 为什么用 Hexo

博客的所有内容全部生成静态文件(HTML+CSS+JS),不仅对服务器负载小,而且速度快。
拥有大量的优质主题和拓展插件,官方提供国际化支持(包含中文支持),可以绑定域名。

1.3 为什么搭建在 github

因为免费,因为免费,因为免费。(重要的事情说三遍)
而且省去申请 & 管理网络空间、备案等一系列复杂的事情。
比起博客平台提供商,无广告,高度自由化简直不能再棒。

二. hexo 的本地搭建

推荐方式:查看官方文档

  1. 安装 Node.js
  2. 安装 Git
  3. 运行 Git bash 或其他命令行终端
  4. 执行下列命令安装hexo及其依赖
1
2
3
4
cd "*博客的目标文件夹*"
npm install -g hexo-cli
hexo init
npm install
  1. 安装 github 部署插件:
1
npm install hexo-deployer-git --save

三. 创建 github 博客

配置用户名邮箱,生成 SSH 秘钥并绑定。参考以下教程:
https://blog.csdn.net/liuwengai/article/details/52072344
在 github 官网新建仓库,仓库名为 “用户名.github.io”。
这样子,就创建了一个 github 博客,网址为仓库名(用户名.github.io)。

接着修改博客根目录下的_config.yml 中的 deploy(默认在文档尾部)项:

1
2
3
4
deploy:
type: git
repo: git@github.com:你的github用户名/你的github用户名.github.io.git
branch: master

这样你才能使用 hexo 上传你的博客到 github 上。

四. hexo 的使用

4.1 创作文章

使用命令新建文章:
hexo new post 文章名称

该命令会在 hexo 根目录的
source 文件夹_post 子文件夹中
新建一个后缀名为.md 的文本文件。
用文本编辑器打开该文件即可创作文章。

4.2 日常维护

hexo g : 将编辑好的文章生成博客网页
hexo s : 启动本地 hexo 博客服务器
(启动后可用浏览器通过 localhost:4000 访问)
hexo d : 将生成好的博客网页同步到 github
hexo clean : 清除所有生成好的博客网页

4.3 个性设置

博客根目录下的_config.yml 文件为配置文件,可进行自定义修改。
包括网站名称,副标题,作者信息,使用的主题等,
具体查看文件注释和善用翻译工具。

4.4 高级功能

4.4.1 创建新的页面

命令 hexo new page 页面名称
可以为你的博客创建一个新的页面
该命令在 source 文件夹下新建子文件夹并在其中生成 index.md 文件。
可以用 markdown 语法甚至 html 标签编辑它来创建你的网页。
当然别忘了给他一个超链接以使你能够访问到它。

4.4.2 本地搜索功能

1
2
3
npm install hexo-generator-search --save
npm install hexo-generator-searchdb --save
hexo new page search

编辑博客根目录下的 source/search/index.md 文件

1
2
3
4
---
title: Search
search: true
---

4.4.3 RSS订阅功能

1
npm install hexo-generator-feed --save

五. 开始写作

5.1 选择一款编辑器

工欲善其事,必先利其器。
拥有一个好的文本编辑器将让你的文章创作如虎添翼。
推荐 sublime text,notepad++ 这类功能强大、界面美观的文本编辑器,
重要的是他们还支持 markdown 语法高亮。

5.2 Markdown 语法

hexo 的文章文件.md 意味着支持 markdown 语法,
使用 markdown 语法能实现排版等更多高级功能,
让你的文章不再是只有干巴巴的文字,语法教程链接:
https://www.appinn.com/markdown/


用 Hexo 在 Github 搭建博客
https://tech.initialize.in/old_before_2021/Build-github-Blog-with-hexo/
作者
Emmett Woo
发布于
2018年3月23日
许可协议