Contents

昨天找了好几篇教程终于成功把这个博客架起来了,为了表示感谢我也来整理下资料方便其他臭味相投的人。

hexo你的博客

主要的参考资料是上面这篇,按部就班能够完成大部分的操作,可能是去年和今年之间一些东西已经发生变化了,我按教程去做的时候有些地方总是有问题,这里主要针对这些地方做下补充。

文中提到生成的rsa私钥要放到git安装目录的.ssh文件夹下,默认情况下安装完msysgit是没有这个文件夹的,众所周知Windows下面常规操作是创建不了带 . 符号的文件/文件夹的,所以自己建的话是这样:
在git安装目录下打开控制台(win7+的系统可以按住shift在空白处右键点击打开)

>mkdir .ssh

另外安装hexo的时候我的网络环境下面经常会在下载一些文件包的地方毫无征兆的卡住(卡到你结束它为止),据说是特色社会主义造成的 = =。可以考虑改用这条命令进行hexo的安装:

>npm --registry=http://r.cnpmjs.org install hexo

实际上就是换一个资源镜像,网络会稳定很多,基本上一次搞定。

然后创建文章、本机浏览之类的都比较顺利。

但是会遇到打开http://localhost:4000后只看到一堆代码的问题,这个地方上面教程说的不是很清楚,正确的话应该是看到一个成形的高大上的博客首页了,不应该看到代码。
这个原因不太好查,搜了下貌似没有人遇到同样的问题,我反复试了比较长时间,最后原因确定在hexo没有对那些动态网页代码进行解析。
为此我重装了node.js但是没有效果,最后在翻了n多hexo搭建相关文章之后,使用下面这条命令解决:

在本地博客根目录下,打开控制台运行:
>npm install

这个操作根据当前目录的package.json下载依赖文件,会产生一个node_modules文件夹。
和上面提到安装hexo一样,直接安装可能会出现下载卡住的情况,可以参考上面更换资源镜像的方法解决。如果安装到一半被终止,需要先把node_modules文件夹删除才能重新安装。

这样一来,运行hexo generate之后public目录下产生的就是最终可供浏览的静态html了,此时打开http://localhost:4000能看到正确的结果。否则执行hexo generate也不会报错,但是public/index.html下面还是会有代码没被替换。

另外文中说的github的repository需要按照username/username.github.com进行创建,这个规则后来貌似改了,详情见这里:

https://help.github.com/articles/user-organization-and-project-pages

实测如果按.com的方式创建,访问的时候会被自动跳转到.io的页面。

最后留意下,第一次按规则把web站更新到github上后,github为自动为你生成一个username.github.io的域名,但这过程中大概需要等待10多分钟的时间,期间通过这个域名是打不开网站的。
以后再更新内容上去的时候就都是实时生效的了。

最后,上传之前,还要再修改一下博客根目录下的_config.yml,在最下面deploy:处填写(注意空格):

deploy:
  type: github
  repository: git@github.com:your_username/your_username.github.com.git
  branch: master

保存以后每次发文章:

hexo n "title"
hexo d -g

然后刷新下你的网站,就搞定了。

日志保存在source/_posts/下面,文本工具打开直接编辑,删除日志就直接选中后戳下delete键,然后更新一下就可以了。


用下来总体感觉还是略复杂,大概受众还是会以coder和geek为主。不过用起来感觉真不错。

hexo的工作过程我也来大致说下我的理解,通过传递不同的参数hexo承担了以下几项工作:

创建文章模板(hexo new [layout] “title”)
翻译md和组织内容(hexo generate)
web服务器(hexo server)
快捷同步到服务器(hexo deploy)

其中翻译工作的过程为:根据_config.yml中的配置选取主题模板,再在对应模板目录下从layout.ejs开始,解析代码并替换成相应的文件内容,最终组装成仅包含html/css/js的静态网站。

文章在本地都是以md文件的形式存储的,支持md常用语法。实际上相当于本机才是内容服务器,github只是一个对外发布的媒介,我们只是把本地博客同步过去。

这里利用了github提供的github pages服务,它提供了免费的静态网页浏览和域名服务。

markdown就是hexo生成日志的文件格式(.md),它提供了一组比较简单的语法,方便快速的对web格式进行编辑,试下来觉得上手是非常容易的。这样写日志基本上只需要一个像样的记事本工具就可以了,个人推荐notepad++吧。

Contents