build by hexo
HELLO WORLD
受Tony
影响,一时兴起就开始建这个博客。把过程写下来也算是留个记录。
环境和工具
平台是winows 7 X64
,同时要保证可以顺利访问Github
。都不能上Github
怎么来建站?当然其他代码托管网址应该也是可以的(猜测)。我这里使用Shadowsocks
来访问国际网络。这里有一个坑。
命令行工具用的是Cmder
。原因嘛……颜值比较高。这里是另一个坑。 使用其他工具也是可以的,但是不建议使用windows
自带的cmd
工具。如果平台是windows 10
的话,可以试试自带的Bash
。Cmder
是一个开箱即用的工具。在其官网下载回来后打开就可以使用了。
注意:为了以后的方便,请务必下载完整包
安装 Hexo
Hexo
的官网上提供的安装方式是npm
,所以需要先安装node.js
。
这里推荐使用chocolatey来安装。自己手动安装的话,还需要配置环境变量。
安装 chocolatey
以管理员权限打开Cmder
。输入命令1
λ @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
这里全部使用chocolatey
的默认设置,如果需要自定义的话,访问Installing Chocolatey。
安装 node.js
作为一个windows
下的包管理器,chocolatey
以命令行安装软件。安装node.js
,需要在Cmder
中输入1
λ choco install nodejs
然后耐心等待完成。npm
作为node.js
的默认包管理工具,安装完成后就可以直接使用了。
安装 Hexo
对照Hexo
网站的教程,就剩下最后一步了1
λ npm install -g hexo-cli
没有出错的话,Hexo
的安装就已经完成了。
建立 GitHub Pages
Github Pages
是一项不限流量的静态页面托管服务,本身是为了展示项目和开发者用的。现在更多的是当作小型Blog
来使用。
申请 Github 账号
就像其他网站申请账号一样,能不填就可以不填
链接 Github
默认使用SSH
链接,为了安全需要验证SSH Key
。这段参考网上教程的SSH
部分
检查SSH keys的设置
1 | $ cd ~/. ssh 检查本机的ssh密钥 |
如果提示:No such file or directory
说明你是第一次使用SSH
生成新的SSH Key
1 | $ ssh-keygen -t rsa -C "邮件地址@youremail.com" |
然后系统会要你输入密码:1
2Enter passphrase (empty for no passphrase):<输入加密串>
Enter same passphrase again:<再次输入加密串>
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。
注意:输入密码的时候没有*
字样的,你直接输入就可以了。
最后看到这样的界面,就成功了请原谅我的盗图
添加SSH Key到GitHub
在本机设置SSH Key之后,需要添加到GitHub上,以完成SSH链接的设置。
- 打开本地
id_rsa.pub
文件。可以通过Everything
或Listary
输入文件名直接找到文件。打开的工具系统自带的记事本
就可以了。或者将密匙复制到剪贴板中1
λ clip < ~/.ssh/id_rsa.pub
- 登陆
Github
。点击右上角的头像:Setting
->SSH and GPG keys
->New SSH key
- 输入
Title
,将密匙复制到Key
输入框
测试 SSH
可以输入下面的命令,看看设置是否成功,git@github.com
部分不要修改1
$ ssh -T git@github.com
如果是类似下面的反馈:1
2
3The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
输入yes
就好1
Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.
yourname
部分是你的Github
账号就说明链接成功。
一点小事
Git
会根据用户的名字和邮箱来记录提交。GitHub
也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成自己的1
2$ git config --global user.name "yourname"//用户名
$ git config --global user.email "邮件地址@youremail.com"//填写自己的邮箱
建立 Github Pages
这里基本可以跟着官方教程走。
建立名称为username.github.io
的repository
,其中username
用你的账户名替换。
在该repository
的Setting
标签页下找到GitHub Pages
,点击Launch automatic page generator
。接着要你确认一些名称啥的。不用管,点击网页下方的Continue to layouts
。然后是选择主题,随便选一个看得顺眼的,点击Publish page
。完成!
到此为止,专属的Blog
已经可以算建立了。浏览器访问username.github.io
(username
是账户名)已经可以看到一个网页了。
建站
总体的思路是:使用Hexo
将本地资源生成静态站点,上传到Github
。也就是说:前面的Github Pages
名称主题什么的全部都会被替换成本地生成的。这里跟着Hexo
的官方教程走。
安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。1
2
3$ hexo init <folder>
$ cd <folder>
$ npm install
第一条命令就碰到一开始提到的坑了:npm
依赖下载不了……就算Shadowsocks
开启全局,也不能拯救。
处理方法是使用国内镜像。在执行以上命令之前,先执行:1
npm config set registry http://registry.cnpmjs.org
或者1
npm --registry http://registry.cnpmjs.org info express
两者都是临时的。
现在再执行上面的就不会卡网络了。1
2$ hexo generate #生成站点
$ hexo server #启动服务器
浏览器打开http://localhost:4000
就可以看到默认的Hexo Blog
了。
部署
本地已经有了一个网站,需要把它放到网上。
打开Hexo
站点目录下的_config.yml
。找到最后的deploy
部分1
2
3
4
5# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:yourname/yourname.github.io.git
其中yournam
替换成Github
账号。
到最后激动人心的上传部分了。1
$ hexo deploy
结果是:失败!这里就是开头提到的“另一个坑”:Cmder
默认不启用ssh-agent
。
解决办法是在Cmder
的init.bat
文件中加上这么一段1
2
3
4
5
6@echo off
ssh-agent | grep -v echo | sed -e "s/^/@set /" | sed -e "s/;.*$//" - > call.cmd
call call.cmd
del call.cmd
ssh-add "%HOME%\.ssh\id_rsa"
@echo on
重新打开Cmder
,执行1
$ hexo deploy
没有报错的话就可以在yourname.github.io
访问自己的Blog
了。