Hello Hexo

来源:互联网 发布:godaddy主机绑定域名 编辑:程序博客网 时间:2024/06/05 17:00

今天决定折腾一下这个 github.io,想来想去只能做一个个人主页了,而且是静态的,于是选择了Hexo这款产品。

Hexo是基于NodeJS开发的一款命令行工具,本质上是从源到资源的转换工具。

SourceResource

初始化工作空间

Hexo的用户,也就是博主,使用Hexo工具处理一个空的文件目录,使得它变成一个符合条件的工作空间:

$ hexo init

配置主题

看了一些主题,选择了这款 yilia 作为自己博客的主题。

按照安装说明安装起来还是简单的,没有什么坑。

Notice: 博客根目录的_config.yml 与 主题根目录的_config.yml 是不同的。

预览

Hexo的预览就是临时建立一个HTTP服务器,提供一个端口让你访问。

$ hexo server

这个时候还不会在public生成静态资源文件,要知道静态资源文件本质上是Hexo服务器处理源文件之后的产物,是一种缓存(Cache)。

发博文

博文在Hexo里面是不存在所谓数据库里的,而是以文件的形式存在source/_posts 里面,而且Hexo特别推崇Markdown,默认就是使用Markdown来保存博文。

$ hexo new [layout] <title>$ hexo new hello-hexo # Create a post named hello-hexo, with file 'hello-hexo.md'

显然你是需要直接编辑这个文件来写博文的,Hexo并不提供一个Web页面来供你写博文,它甚至不提供一个登录页面!

静态资源生成

Hexo提供将这些资源处理生成一系列静态资源文件(到public目录)的功能,这也是它的核心功能(如果没有这个,Hexo将毫无竞争力)。

$ hexo generate$ hexo g # they are the same

听说它的生成算法是并行的,性能很高……现在我博文少尚不清楚,以后再看,咱们走着瞧。

这些静态资源是符合最一般的Web资源格式的,目录与URL路径一一对应,可以直接放到某个Web服务器容器中正常运作。

比如你可以把public 的内容整个拷贝到Nginx、Apache下定义的一个虚拟主机目录中(或者将它们软链接),它可以直接生效。

这就是Hexo被称为静态博客引擎的原因。

静态资源清理

静态资源的清理则使用另一命令:

$ hexo clean

与生成相反,它会直接把 public 目录整个删除。

部署

这里有一个深坑,很多人都被坑进去了,官方提供的部署命令有很大的问题。

$ hexo deploy

这个命令会各种出错,直到最后我也没有调出来,也不知道为什么会爆炸。

其实不管怎么样,思考一下部署的思路,自己实现一个部署脚本即可,所谓官方的部署指令,如果没用不要也罢。

部署就是把public中的文件传到某个Web容器中。

这里以github.io为例,我们要把public中的文件传到自己github.io的Repository中。

首先要在GitHub上建立对应的Repository,以我为例,在 zccz14账号下建立 zccz14.github.io 这个Repository。

注意不要把整个博客工作目录推到这个Repo里,这个Repo的内容包含且仅包含public目录中的文件

现在我们需要建立一个本地git仓库与github对接:

$ mkdir .deploy_git # naming '.deploy_git' is to be compatible with the offical hexo deploy command$ cd .deploy_git$ git init # create a bare repo here$ git remote add origin git@github.com:zccz14/zccz14.github.io.git # add remote URI

这样一来,.deploy_git 就与GitHub建立了联系,不直接使用public目录的原因是hexo clean 命令会将public整个摧毁。

接下来我们只要每次将public目录中的文件拷贝到.deploy_git 中,再使用Git命令就可以部署到GitHub上了:

$ cp -r public/* .deploy_git # or you can use hexo deploy instead$ cd .deploy_git$ git add .$ git commit -m "update"$ git push -u origin master # push it to GitHub

以上这部分命令就是 hexo deploy 主要完成的工作。

0 0