相信很多互联网从业者都特别爱学习,都会经常记笔记,比如笔者自己经常使用印象笔记和为知笔记。那么问题来了,我们如果只是把笔记放在属于自己的私密空间,那么它将无法发挥太大的价值。要知道唯一能穿越时空而永垂不朽的唯有思想,而文字是思想的载体,每一份笔记便是一份思想。我们如果可以分享笔记,分享工作和学习中踩过的坑和获取的经验,那么我们不仅在帮助了别人的同时,也提高了自己的写作水平和思维能力,让自己的思想具备了穿越时空的能力。分享笔记最好的方式莫过于博客,而目前最流行的博客框架之一是hexo,本文将演示如何利用Github Pages搭建静态hexo博客。
安装Git
我们在电脑上安装Git,这样可以在本地建立项目并push到远程仓库上。推荐使用Homebrew来安装Git。打开终端(Windows用户可以使用Git Bash等),根据Homebrew官网输入以下指令安装Homebrew(Mac需要安装Xcode):
$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)")
安装成功后输入:
$brew install git
这样我们就安装好了Git。如果出现问题,尝试在指令前加入sudo,sudo可以获得root权限,执行带有sudo的指令电脑会要求你输入密码。
后续我们还会用到很多git的指令,推荐阅读廖雪峰老师的Git教程。
安装Node.js
Hexo是基于Node.js的,所以Node.js的环境是必须的。
先安装nvm,在终端中输入以下指令:
`$curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
`
安装好以后,重启终端,执行以下指令:
$nvm install v5.11.0
$nvm use v5.11.0
$nvm alias default v5.11.0
Node.js安装就完成了,接下来注册Github帐号并配置ssh keys
配置SSH Keys
打开Github网站,点击右上方的头像,选中并点击下拉框中的settings选项,之后页面左侧面板中出现SSH And GPG keys选项,点击该选项,之后点击New SSH Key就可以添加一个新的SSH key。SSH keys的好处是让我们以后在本地进行操作并同步到GitHub上时不用输密码,那么如何配置SSH keys?
首先,打开你的终端(Terminal),输入如下代码:
$cd ~/.ssh
这行代码能够帮助你检查电脑上是否存在SSH key。
如果提示:No such file or directory说明没有key文件,输入以下代码生成新的key文件:
$ssh-keygen -t rsa -C "user_name@xxx.com"
这里的邮件地址填自己注册时的邮件地址,注意大小写,双引号不能省略,终端会返回代码让你确定文件名,回车就好。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/chenxin/.ssh/id_rsa): //这里可以直接回车,使用系统默认提供的保存路径
Created directory '/Users/chenxin/.ssh'.
Enter passphrase (empty for no passphrase): //如果不想使用密码,空着就好
Enter same passphrase again: //同上
看到如下所示的输出,就代表你已经成功的创建了一个SSH key
Your identification has been saved in /Users/chenxin/.ssh/id_rsa.
Your public key has been saved in /Users/chenxin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Ldpwue4Oru8WWW4ATlUQyljhKKK2FB0atTD9BiIao/o user_name@xxx.com
The key's randomart image is:
+---[RSA 2048]----+
|.oOBX*o. |
|==+o.=o. |
|.=..= .. |
| oo.o+ .. |
| . +oo.oS . |
|. . . * . |
|. . + o . |
|.. * . |
|.=E o |
+----[SHA256]-----+
接着打开终端,键入以下命令在终端界面打印出.ssh目录下id_rsa.pub的内容:
$cat ~/.ssh/id_rsa.pub
终端界面应该是这样的:
$ssh-rsa xxxxxx user_name@xxx.com
以ssh-rsa开头,以邮箱结束,中间xxxxxx代表一长串字符串,将该段内容完整拷贝,粘贴到下图中的key对应的框中
image之后点击Add key就添加成功了。输入下面的指令测试是否配置成功:
$ssh -T git@github.com
如果返回的结果如下:
The authenticity of host 'github.com (192.30.252.130)' can't be established.
RSA key fingerprint is SHA256:Ldpwue4Oru8WWW4ATlUQyljhKKK2FB0atTD9BiIao/o.
Are you sure you want to continue connecting (yes/no)?```
输入 ****==yes==**** ,就能看到:
Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts.
Hi ethan979! You've successfully authenticated, but GitHub does not provide shell access.
这样你的SSH key就配置完成了。完成之后,我们设置好个人信息,用于提交代码说明是谁提交的,怎么联系。可以用以下指令完成:
$git config --global user.name "你的名字"
$git config --global user.email "你的邮箱"
# 安装npm
先输入以下指令查看本机是否安装过npm:
`$npm -v`
如果抛出以下异常,说明尚未安装npm
module.js:340
throw err;
^
Error: Cannot find module 'npmconf'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/Users/chenxin/.nvm/v0.8.14/lib/node_modules/npm/lib/config.js:16:15)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
需要先安装npm。就像[[NPM的官网](https://www.npmjs.com/package/npm)](https://www.npmjs.com/package/npm)上介绍的那样,安装NPM仅仅是一行命令的事情:
`$curl -L https://npmjs.org/install.sh | sh
`
但是可能会安装失败:
sh: line 21: npm-install-5326.sh: Permission denied
rm: npm-install-5326.sh: No such file or directory
Failed to download script```
把安装命令改一下即可:
`$curl -L https://npmjs.org/install.sh | sudo sh
`
这里详解一下这句命令的意思,通过curl命令获取这个安装shell脚本,按后通过管道符| 将获取的脚本交由sh命令来执行。这里如果没有权限会安装不成功,需要加上sudo来确保权限.安装成功以后最后一行会提示:
It worked
至此,npm安装结束。
安装Hexo
打开终端,输入以下指令:
$npm install -g hexo-cli
接着通过以下指令创建博客目录:
$hexo init <folder>
$cd <folder>
$npm install
以上命令执行完成后,会在目标目录生成以下的结构目录:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
相关字段说明如下:
-
_config.yml 是博客的配置文件
-
scaffolds 是博客文章模板
-
source 是博客文章目录
-
themes 存放主题风格文件
Hexo就会在该文件夹建立博客所需要的所有文件。本地的Hexo博客已经初步搭建起来,输入以下指令:
$hexo generate
$hexo server //在本机运行博客程序,可以在浏览器中输入localhost:4000查看效果
要注意的是,所有的hexo指令都必须在你所建立的目录下执行。
配置自定义域名
使用github提供的username.github.io格式的二级域名请略过本节。
首先去goaddy购买域名。goaddy本身提供域名解析服务,但是使用goaddy的域名解析服务会导致国内用户打开网站过慢甚至打不开网站,建议使用国内的Dnspod提供的免费DNS解析服务,具体教程请自行搜索。
然后在你的Hexo目录中找到source文件夹,在其中新建一个名为CNAME的文件,没有后缀名(建议使用Sublime Text新建),内容为你的域名比如blog.engchen.com),保存。
部署Hexo到Github上
本地的博客已经搭建好了,如何能让别人从网上访问到你的博客?只要将你的本地博客deploy到GitHub上就好。输入以下指令:
npm install hexo-deployer-git --save
然后打开博客目录的_config.yml文件,设置deploy的type为git。repository的格式可以有2种:https和ssh。如果采用https,以后每次上传博客代码都要输入github用户名和密码,相当费时,具体格式为repo :https://github.com/你的id/你的id.github.io.git。 建议采用ssh,上传博客代码不需要用户名和密码,Git版本管理工具会自动校验保存在本机的ssh私钥和之前配置ssh的时候上传到github的公钥是否匹配,匹配则上传成功,具体格式为repo:git@github.com:你的ID/你的ID.github.io.git。之后输入以下指令:
$hexo generate //可以简写为 hexo g
$hexo deploy //可简写为 hexo d
然后在浏览器中输入自己的域名就能看到自己的博客内容了。
网友评论