搭建hexo博客并部署到github上
这几天一直在想用什么来搭建自己的博客。无意中接触到hexo
hexo是由Node.js驱动的一款快速、简单且功能强大的博客框架,支持多线程,数百篇文章只需几秒即可生成。支持markdown编写文章,可以方便的生成静态网页托管在github上。
感觉不错。
前端人员都在用github分享自己的代码。所以想着用hexo部署到git上。搞一个自己的博客。
1,安装hexo
安装hexo前:
安装Git
下载 msysgit 并执行即可完成安装。
安装node.js
在 Windows 环境下安装 Node.js 非常简单,仅须下载安装文件并执行即可完成安装。
安装hexo:
利用 npm 命令即可安装。(在任意位置点击鼠标右键,选择Git bash)
npm install -g hexo
创建hexo文件夹:
安装完成后,在你喜爱的文件夹下(如H:\hexo
),执行以下指令(在H:\hexo
内点击鼠标右键,选择Git bash),Hexo 即会自动在目标文件夹建立网站所需要的所有文件。
hexo init
安装依赖包
npm install
启动本地服务
现在我们已经搭建起本地的hexo博客了,执行以下命令(在H:\hexo
),然后到浏览器输入localhost:4000
看看。
hexo generate hexo server
好了,至此,本地博客已经搭建起来了,只是本地哦。别人是看不到了,
下面我们讲博客部署到github上面。
注册Github帐号。
已有就跳过。
这里的就不用介绍了。
创建repository
登录github后,将鼠标点击github右上角“+”号,在下拉菜单上,选择“New repository”项,将跳到如下页面,填写库名称,勾选“Initialize this repository with a README”,点击“create repository”,即可完成创建库。
部署
编辑_config.yml
(在H:\hexo
下)。你在部署时,要把下面的zippera
都换成你的账号名。
deploy: type: github repository: https://github.com/xiaomiya/xiaomiya.github.com.git branch: master
执行下列指令即可完成部署。
hexo generate hexo deploy
注意:有些新用户需要设置 ssh,否则上述命令会失败。ssh 的介绍和设置方法请看官方教程,不用担心,很简单。
记住:每次修改本地文件后,需要hexo generate
才能保存。每次使用命令时,都要在H:\hexo
目录下。
Okay,我们的博客已经完全搭建起来了,在浏览器访问zippera.github.io
就能看到你的成就了!
还有一点,有一些用户在hexo deploy之后会有个这个提示
那么我们要输入我们在git上验证的邮箱
如这样。再次hexo deploy
就发布上去了。
就可以看到我们就成就了。。。
bugs
- 有网友反应右键菜单中没有
git bash
选项,可以进入开始菜单找到git bash
,然后通过cd
进入相应目录执行命令。 - 在github部署完成之后,马*问可能出现404错误,这是正常的,(最多)等待十分钟左右就可以访问了。如果还不行,那很可能是 github 发送给你的验证邮件你没有打开看,据多方反映,验证后就没问题了。
- 如果在
hexo d
之后出现fatal: 'username.github.io' does not appear to be a git repository
,一是检查 repo 的名字是否合乎规范、是否含有大写字母、config.yml 中的 deploy 配置是否正确,二是把 git bash 关掉,重新打开再执行命令。 - 有的同学可能不是 IT 界的,或者对shell 命令不太了解。在要求输入密码时,你输入之后密码是不显示的,这是为了安全,并非是你没输上。
- 出现乱码的,不要使用 windows 中的「记事本」打开并编辑文件,推荐使用 sublime text,很简单。如果已经在「记事本」中编辑过,需要使用 sublime text 转码为「utf8」。
- 安装 hexo 时卡在那儿不动,很可能是网络不给力,能全局 break wall 就好了。
- 遇到什么其他的问题,不妨删除.deploy 和db.json 再重新生成试一试。
tips
hexo现在支持更加简单的命令格式了,比如:
hexo g
== hexo generate
hexo d
== hexo deploy
hexo s
== hexo server
hexo n
== hexo new
上一篇: 大概知道分布式架构怎么搭建了
下一篇: 对Ext editGrid的尝试