Hexo 简介
Hexo,基于Node.js的博客框架,可以方便地生成静态博客页面,并部署在github上。作者是台湾的@tommy351,引用作者的话:
hexo: A fast, simple & powerful blog framework, powered by node.js
使用hexo搭建博客
本文是在Windows
环境下配置,Linux
写在下一篇
安装Git
下载[msysgit],安装
为了以后的工作,安装完成后可能需要对git进行一些初始配置,打开git bash,查看当前的配置
$ git config —list`
设置用户名和邮箱
git config --global user.name heckaitor git config --global user.email heckaitor@gmail.com
这里有关于git的官方教程,因为平时工作中大量使用svn,所以本次搭建的过程也顺便学习了一下git,熟悉了git的常用命令和基本操作
安装node.js
下载node.js,安装
配置SSH Key
- 注册github账户
- 新建repo,命名为
heckaitor.github.io
- 打开
git bash
,生成ssh key
ssh-keygen -t rsa -C "heckaitor@gmail.com"
- 输入文件路径时直接
enter
生成的id_rsa
和id_rsa.pub
两个密钥文件(私钥和公钥)位于C:\Users\username\.ssh\.
中
- 添加至
ssh agent
很多地方都忽略了这至关重要的一步,最后虽然也配置ssh成功,但每次提交的时候都要输入用户名和密码,很麻烦
ssh-agent
是ssh key的托管,相当于我们将生成的密钥交给ssh-agent
,让他来进行SSH验证,而不必每次都要重复性的输入用户名和密码,使用ssh-add
将生成的key添加到ssh-agent
ssh-add ~/.ssh/.id.rsa
一个很奇怪的现象,之前配置到这里的时候,很顺利的就添加成功了,但这次却出现了错误
ssh add error
google之,我的理解是之前打开git bash
的时候,ssh-agent
就自动login了,但现在不行了,需要手动开启才能添加
ssh-agent bash -login -i ssh-add ~/.ssh/id_rsa
输入密码,出现Identity added:
表示添加成功,之后使用hexo 部署时不需要重复输入密码
蛋疼的事情是:如果关闭当前的
git bash
,重新打开再提交,又会出现刚才的错误,莫非ssh-agent
在bash窗口开启的时候才打开,关闭的时候就立即退出吗?
这个以后有时间的话研究一下
- 使用
sublime
之类的编辑工具打开is_rsa.pub,拷贝内容 - 登陆github账户,进入
Account Setting
—>SSH Keys
,点击Add SSh key
,将刚刚复制的密钥粘贴到key
中
至此,ssh配置完成,最后验证一下
ssh -T git@github.com
安装hexo
打开git bash
,执行
npm install -g hexo
hexo 配置
- 新建hexo文件夹,如
D:/hexo
- bash到该目录下(使用cd命令或直接在目录下右键点击
git bash
),执行hexo初始化
hexo init
生成的文件目录如下
-
在本地浏览器查看效果
hexo g
hexo s
在浏览器里输入localhost:4000
即可访问 -
部署到github上,首先需要配置github,打开
_config.yml
,编辑
deploy:
type: github
repository: https://github.com/heckaitor/heckaitor.github.io.git
branch: master
使用hexo deploy
命令部署
hexo g hexo d使用域名访问[heckaitor.github.io](http://heckaitor.github.io/) 有时,使用`hexo d`后会出现提示信息
warning: LF will be replaced by CRLF看起来很乱,但却不影响最终的部署,不明所以,参照[zipperary](http://zipperary.com/2013/06/02/hexo-guide-5/)的方法将其去掉 - 切换到`/.deploy`目录,执行
git config --global core.autocrlf false> 执行后,发现config里多了一条`core.autocrlf=false`,但之前也有一条,但并不矛盾,git的配置有`system`, `global`和当前项目的区分,对相同的配置项后一级会覆盖上一级 - 删除`/.git`
rm rf .git- 重新`git init` >hexo 的几个常用命令 >
hexo clean 清理 hexo generate 编译 hexo server 本地浏览器查看 hexo deploy 部署到github hexo new "my.md" 新的静态页面
OK,基本的工作算是完成了,优化的部分继续