Windows下使用Hexo+Github搭建个人博客

Hexo介绍

静态博客生成器,根据给定的主题,负责把写好的 Markdown 文章转换成一堆 HTML + CSS + Javascript 页面。另外,Hexo 还有把生成好的站点上传到 Github Pages 的功能。

背景

记录个人学习和生活,作为程序猿,搭建个人博客是个不错的选择。但只是个博客,购买云服务器有些不值当,服务器稍微好些的配置就得上千。之前好友买过国外的服务器,hosts不加域名解析经常访问不到,更悲催的是,.com域名还被污染了,吓得我抱紧自己,决定用免费的gitPages吧。scaryDog
搭建的时候看过一些教程,还是遇到了一些问题(其实直接看hexo官网就ok的)。
我在搭建时,使用的是Win10系统,以下搭建步骤是支持所有Wins系统的。OS系统下搭建与Wins不同,以hexo官网为准,可参考本文

搭建步骤

1.首先安装git及node,申请github账号并将ssh key配置完成。

2.cmd下输入powershell,进入cmd超级加强版(这一步可忽略,对搭建博客无影响)。

3.npm的任何操作都无法使用时,卸载node重装,并删除

C:\Users\Administrator\AppData\Roaming\npm
C:\Users\Administrator\AppData\Roaming\npm-cache文件夹

4.在安装npm时,可能根据某个教程设置了例如:

npm config set prefix "C:\Program Files\nodejs\node_global"
npm config set cache "C:\Program Files\nodejs\node_cache"

设置出错可能就导致npm无法使用,此时需恢复到默认。
npm config恢复到默认只需删除C:\Users\Administrator.npmrc文件。如果.npmrc不在这个目录下,就全局搜一下啦。
当我遇到第3和第4步,我的内心是这样的despair

5.安装hexo,执行命令

npm install hexo-cli -g

6.安装hexo生成页面部署到github的组件,执行

npm install hexo-deployer-git --save

7.创建放置博客文件的文件夹

hexo init blog

若执行报错: 无法将“hexo”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,则执行如下命令授权后继续:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

8.进入到新创建的博客项目中

cd blog

9.安装依赖包

npm install

10.生成博客页面

hexo generate

11.本地起服

hexo server

浏览器访问 http://localhost:4000/ 可以预览博客样式

12.github创建仓库:仓库名必须为youname.github.io, 例如我的仓库名为monkeydbean.github.io

13.在本地博客目录下,打开git bash,以我的为例,执行

git init
git remote add origin https://github.com/MonkeyDBean/MonkeyDBean.github.io.git

若提示如fatal: unsafe repository (‘F:/MonkeyBean/myblog/blog’ is owned by someone else),则执行如下命令授权后继续:

git config --global --add safe.directory F:/MonkeyBean/myblog/blog

若为重装系统或换电脑后的仓库二次关联, 则执行关联后继续:

git remote rm origin
git remote add origin https://github.com/MonkeyDBean/MonkeyDBean.github.io.git

14.配置文件_config.yml更改如下

1
2
3
4
deploy:
type: git
repo: https://github.com/MonkeyDBean/MonkeyDBean.github.io.git
branch: master

注:YAML语法,字典是由简单的键: 值的形式组成(冒号后面必须是一个空格),如type:+&nbsp+git

15.部署到github,执行

hexo deploy

若提交不上去,检查语法;没问题的话重新执行

npm install hexo-deployer-git --save
hexo deploy

若提示TypeError[ERR_INVALID_ARG_TYPE]: The “mode” argument must be integer. Received an instance of Object, 表示npm高版本与hexo版本不兼容, 则重新安装node版本如13.14.0后继续。

执行到这一步,以上步骤没问题的话,浏览器输入 https://monkeydbean.github.io 可访问个人博客,此时只有HelloWorld单页面。

16.每次部署,可按以下步骤进行:

hexo clean
hexo generate
hexo deploy

17.让博客炫起来,最简单的,得有个主题,搜索输入hexo 知乎,选一个主题开始使用吧,主题的使用方法在相应主题的github上有详细介绍。
包括头像、站点图标等基础设置及第三方接入等高级设置。

18.绑定域名:
首先得有一个域名,域名服务商有很多,我这里使用的是阿里云域名服务下的万网。进入阿里云域名服务,搜索心仪域名是否被使用,未被使用即可购买(已使用的可联系竞价,不建议),选个比较便宜但寓意好的域名如.cn或.top,第一年约29元,无其他特殊诉求则无需购买任何扩展服务。
域名购买完成后,dns添加cname解析如下:添加解析
同时,在博客public目录下新建CNAME文件:域名配置

19.执行步骤16,浏览器输入monkeyben.cn即可访问个人博客。finish
注意在gitPage配置下查看是否是关联域名,若未关联则添加。gitpages域名

20.关于域名续费,域名解析可用后,政策规定需备案,进行实名认证,否则会造成解析不生效,实名认证审核通过后的1-2个工作日解析可恢复使用,具体流程见阿里云详细。
域名审核通过后,建议续费3-5年,续费价跟首年价基本相同,若使用一段时间后被其他机构看上,则会竞价购买,到期再续费则比较昂贵。
亲身经历为购买了三年的域名到期后被其他机构看上或服务主体已不在阿里云,回购价格太贵。此域名除了博客使用外,还配置了二级域名供个人网站使用,不过只能放弃啦,只是博客的话其实没太必要加专属域名。