Hexo框架搭建和部署GitHub博客
假如你没有云服务器,但是又囊中羞涩不想购买云服务器,那么用Hexo+GitHub建立一个静态的网站或博客也是一个不错的选择!而且你还可以购买域名解析到对应的Github-Pages的URL上。不花钱而且能存上自己写的笔记博客,甚至自己写的app也有show-web了,可以说是非常美滋滋了~
准备工作
- 在GitHub官网注册你的账号,如果有账号忽略本条。码云应该同样适用,作者没在码云搭建过,不能确定
- 注册之后创建一个名为”XXX.github.io”的空项目(XXX为你的GitHub用户名),例如作者的GitHub用户名为umatobu,那么我创建了这样一个项目:umatobu.github.io
有了这个项目之后,我们在这个项目提交一个名为“index.html”文件,内容如下。如此之后,你再浏览器输入链接youusername.github.io即可访问到你的博客,虽然这个网站只有一行“hello world”。
1 | <html> |
由此可以看出,其实在GitHub上搭建静态网站,其实就是创建一个特殊名称的项目并且这个项目的根目录有名为“index.html”的文件。这个前提有了之后,访问youusername.github.io其实就访问到了“index.html”的文件。
Hexo 安装
1 | npm install hexo-cli -g |
淘宝 NPM 镜像
由于npm服务器在国外,很多时候使用npm包管理来安装包的时候,会出现安装失败或者速度较慢,这里我推荐使用淘宝的npm镜像,命令如下:
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
然后npm命令替换为cnpm就可以愉快的安装npm包了~
本地搭建
更为详细的命令,例如开启debug调试、指定端口等等,请查看Hexo官网的文档。运行以下命令,在浏览器输入http://localhost:4000即可查看到自己的博客。
1 | npm install hexo-cli -g |
如果想加更多的博客文章,使用以下命令,然后在source目录的_posts文件夹下找到新添加的文章md文件编辑它,然后再次 hexo s 在本地进行预览:
1 | hexo new "postName" |
切换主题的话,现在theme文件夹下载你想要的主题,然后编辑根目录_config.yml文件的theme配置项:
1 | theme: xxx |
配置ssh-key
我们如何让本地 git 项目与远程的 GitHub 建立联系呢?用 SSH keys。首先我们需要检查电脑上是否已有ssh key:
1 | cd ~/.ssh 检查本机的ssh密钥(如果提示的是No such file or directory,说明你是第一次在本机上使用,需要使用以下命令创建一个) |
1 | ssh-keygen -t rsa -C "邮件地址@http://youremail.com" (此处的邮箱地址,推荐使用你的GitHub账户邮箱) |
然后系统会要你输入密码,在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。
1 | $ Enter passphrase (empty for no passphrase):<输入密码> |
最后添加ssh key到GitHub:
- 打开本地 id_rsa.pub 文件(如:/Users/fuujiro/.ssh/id_rsa.pub)。此文件里面内容为刚才生成的密钥。如果看不到这个文件,你需要设置显示隐藏文件。准确的复制这个文件的内容,才能保证设置的成功。
- 登陆 GitHub 系统。点击右上角的Account Settings—>SSH Public keys—>add another public keys
- 把你本地生成的密钥复制到里面(key文本框中), 点击add key就ok了
测试。可以输入下面的命令,看看设置是否成功,git@GitHub.com 的部分不要修改:
1 | ssh -T git@GitHub.com |
按道理会显示下面的反馈:
1 | The authenticity of host 'http://GitHub.com (207.97.227.239)' can't be established. |
输入yes就ok,按道理会显示::
1 | Hi (你的GitHub名字)! You've successfully authenticated, but GitHub does not provide shell access. |
恭喜你!SSH Key 配置成功!本机已成功连接到 GitHub。
部署到GitHub
配置Git信息,已经配置过请忽略:
1 | git config --global user.name "你的git用户名" |
修改根目录_config.yml文件的deploy配置项:
1 | deploy: |
安装hexo deploy插件:
1 | cnpm install hexo-deployer-git --save |
部署到GitHub:
1 | hexo clean & hexo g & hexo d |