身为低保户还要写博客是不是搞错了什么
没有枪(指域名),没有炮(指服务器),只有一杆冲锋号(穷学生一个)。该如何搭建一个属于自己的博客?
个人建站明显不可能了,而又想定制外观、乱折腾的话,其实也就只剩 博客园 和 Hexo 两个选择了。
最终我选择了在 GitHub Pages 上搭建基于 Hexo 的静态网页博客,主要原因还是希望能多折腾,否则博客园无疑是个更好的选择。接下来本文就会详细介绍下如何使用 Hexo + Github 搭建博客的过程。
简介
什么是 Hexo?
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
什么是静态网页
本人的理解是:静态网页并非静止不动的网页,而是指除了通过 URL 获得网页信息就没有其他方法与服务器交互的网页。
什么是 GitHub Pages?
GitHub Pages 是由 GitHub 官方提供的一种免费的静态站点托管服务,让我们可以在 GitHub 仓库里托管和发布自己的静态网站页面用于介绍和宣传自己的项目。
什么是 GitHub Pages + Hexo?
即将 Hexo 生成的静态网页部署在 GitHub Pages。我不太清楚 GitHub 官方对用户蹭服务器写博客的态度如何,但从大量采用这个方式的个人博客和 Hexo 官网的介绍来看,这一行为最起码是被长期默许的。整个过程如下图
- 优点:完全免费;可自由选择主题外观;静态网页;维护稳定
- 缺点:相比动态博客,发文不够便利;Github 在国内访问日常性抽风
如何使用 GitHub Pages + Hexo?
环境
GitHub
- 没有账号先注册 GitHub 账号,CMD 输入以下指令,用于设置用户名和邮箱(GitHub 账号所使用邮箱):
1 | git config --global user.name "GitHub 用户名" |
- 创建并添加 SSH 密钥(为了 GitHub 服务器验证身份,从而使得 Hexo 可以自动 Push),CMD 输入以下指令 :
1 | ssh-keygen -t rsa -C "GitHub 邮箱" |
一路回车,最后在 C:\Users\用户名\.ssh 目录(要勾选显示“隐藏的项目”),用记事本打开 id_rsa.pub,并复制内容,在 GitHub 网页上的个人设置中添加 SSH keys,将之前复制的内容添加进去。
- 最后在 CMD 内输入:
1 | ssh -T git@github.com |
显示 “Hi xxx! You’ve successfully……” 则成功。
- 创建一个 GitHub 仓库(public)用于发布博客。
Hexo
创建一个文件夹,该文件夹用于你日后本地原文件的存储,然后 CMD 内 cd 到该文件夹下,并输入以下指令:
1 | npm install -g hexo-cli # 安装 Hexo |
然后访问 http://localhost:4000
,出现 Hexo 默认初始化界面。
Hexo + GitHub Pages
首先安装 hexo-deployer-git,Hexo 用于部署到类GitHub网站上的插件(Gitee 也可以,似乎能解决国内访问困难的问题):
1 | npm install hexo-deployer-git --save |
然后修改全局 _config.yml 的 deploy 项如下:
1 | deploy: |
使用
以后每次要发布新文章或者修改就,
1 | hexo new "<name>" # 新建文章 |
然后 source 文件夹中会出现一个 \
1 | hexo g # 生成页面 |
在 http://localhost:4000
打开预览,没有问题就可以部署了。
1 | hexo d # 部署 |
主题
本博客使用的主题为 hexo-theme-diaspora ,具体方法参考该链接。
这个主题也可以说是比较小众又年久失修,使用的主要原因就是审美契合,然而实际用起来真是哪哪哪都有问题。如果需要功能完善的主题,可以选择 NexT 更受欢迎的主题。
略微可能的 todo-list:
- 统计网页访问量等;
- 音乐音量调节功能;
- 漂浮且不会把文章挤到边上的 TOC ;
- 支持更多的 Markdown 第一方及第三方语法。