用GitHub搭建Hexo

操作系统:macOSHighSierra(黑苹果)

参考网站
使用hexo搭建github博客 hexo+git搭建博客一步一个坑

创建GitHub仓库

先在GitHub创建一个仓库Newrepository

仓库名字:用户名.github.io

并且需要勾选InitializethisrepositorywithaREADME(虽然我没有做过这步)

创建完之后,在仓库的SettingsGitHubPagesCustomdomain绑定你的域名,将会在Code那边生成一个CNAME文件,它的内容就是你所绑定的域名

PS.中文域名和转码后的中文域名不共通!如果你用了中文域名,那么你绑定的域名只能是中文域名、不能用转码的!

电脑安装Git和Node.js

下载Git客户端:https://git-scm.com/download/mac

下载Node.js:http://nodejs.org/zh-cn/

如果你不确定是否安装成功,可用下面的命令查看(也可用于查看版本)

node-v #查看Node.js版本

git--version #查看Git版本

安装Hexo

首先,在电脑里找个地方创建文件夹,随便找地方,只要你记得住路径就好

(路径:硬盘\用户名\blog

PS.最好是建在用户名下面,比较方便点

用命令行进入文件夹

ruby
cd/users/用户名/blog

如果是直接在用户名下面创建文件夹直接:cdblog就可进入

这时候,你终端前面就会变成

电脑名称:blog用户名表示已进入你创建的blog文件夹

输入npminstallhexo-g开始安装Hexo

输入hexo-v检查hexo是否安装成功

版本号成功显示,输入hexoinit初始化该文件夹(这里会比较久,可以去看看别的,过会再来,可能有10~30分钟)

一段时间后,看到显示“StartbloggingwithHexo!”就说明初始化好了

输入npminstall安装所需要的组件

安装好后,使用下面命令

hexog #generate生成静态文件

hexos #server启动服务器。默认情况下,访问网址为:http://localhost:4000/

一般写完想看看有没有什么问题,用hexog部署之后,再用hexos启动服务器,在本地查阅一遍

连接Hexo和Git

重新打开终端(这里我只会返回系统文件夹,有点笨就不写了)

设置你的用户名与邮件地址

ruby
gitconfig--globaluser.name"你的GitHub用户名"
gitconfig--globaluser.email你的GitHub邮箱

使用ssh-keygen生成私钥和公钥

ruby
ssh-keygen-trsa

首先会出现/users/用户名/.ssh/id_rsa这串代码,敲个回车就好

然后下面是XXXX(y/n)?选y(确定)

还会让你设置一个密码,会在后面每次上传博客的时候用到,请务必记住密码,随你设置,纯数字也行

然后会给你生成两个秘钥文件id_rsaid_rsa.pub

在GitHub添加SSHkeys

登录GitHub→点击个人资料SettingsSSHandGPGkeysNewSSHkey

title随便写个,然后将id_rsa.pub的内容复制粘贴进去

保存之后在终端输入ssh-Tgit@github.com

如果SSH文件夹里没有公钥的话,会在这里提示你是否创建一个公钥,确认就好,然后输入你刚刚设置的密码,创建一个公钥(如果有多个博客最好分开备份一下,因为会串道)

测试SSH是否成功,等待反馈,如果反馈的是你的用户名就说明成功了

到此,就成功了一大半了

然后我们要去修改一下Hexo根目录下面的_config.yml文件

里面有个Deployment更改成自己的

ruby
# Deployment

# # Docs:https://hexo.io/docs/deployment.html

deploy:
type:git
repository:git@github.com:用户名/用户名.github.io.git
branch:master

HexoBlog部署到git我们需要安装npminstallhexo-deployer-git--save插件,在blog目录下运行一下命令进行安装

Hexo一些命令

hexon<title> #创建文章

hexonpage<title> #创建页面

hexoclean #清除缓存文件(db.json)和已生成的静态文件(public)

hexog #generate生成静态文件

hexos #server启动服务器。在本地预览效果,默认情况下,访问网址为:http://localhost:4000/

hexod #deploy部署网站同步到github。部署网站前,需要预先生成静态文件

hexoclean&&hexog&&hexod #清除缓存&&生成文件&&部署到网站

上传到GitHub失败

提示错误pushdeclinedduetoemailprivacyrestrictions到GitHub网站,点击setting再点击Emails看看下面的Emailpreferences第二项Blockcommandlinepushesthatexposemyemail是否打勾了,把打勾取消掉就好

后记

折腾起来还是很简单的,就是一开始各种不懂命令行的意义,所以搞混也很正常

CNAME

突然想起来还有这个坑

经常会重新部署之后绑定的域名就上不去了,是因为CNAME文件被删除啦!

那么要怎么办呢,我也试过插件,但是后来发现,直接丢到你本地Hexo博客的source文件夹里/users/用户名/blog/source/就好了,每次都会给你重新部署到public里/users/用户名/blog/source/public/