成功叛逃到hexo

题记:生命的乐趣在于折腾.

话说前天又把博客的主题给换掉了。没办法啊,yilia实在太符合我的品味了。因此我成功的从jekyll叛逃到了hexo。

下面说说我的叛逃的过程吧。

!!以下过程默认windows系统,并且git已经安装并配置好,github账号配置好和pages都会使用。

安装node.js

node.js官网下载最新版本的安装好,安装直接一路点下去就可以了。

安装hexo

打开Git Bash,使用命令npm -v看看node.js是否安装好,如果输出对应的版本信息,说明已经安装好了。如果出现npm既不是可以执行程序等balabala什么的,再去检查一下环境变量path是否添加,如果懒得检查了,那就再打开安装包安装一遍就可以了

好,既然npm可以用,那就安装hexo

1
npm intall -g hexo

使用hexo

初始化博客

切换到你要搭建博客的文件夹。
输入下面一系列命令。

1
2
hexo init
npm install

预览博客

1
hexo s -i localhost

然后命令行会提示

1
INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

这时候,打开你的浏览器,输入127.0.0.1:4000就可以在本地预览你的博客了。当然这时候你的博客还只是一个hexo自动生成的什么也没有的demo。

生成静态的网页

1
hexo g

这个命令会生成一个文件夹public,所有的网页都会生成在里面。

!!注意:
不知道为什么,在本地预览的时候并不需要先生成,但是部署到服务器上之前总需要生成一次。

接下来,你只需要修改你的博客,并且添加文章。

修改主题

到github去搜索”hexo-theme”关键字,搜出一堆主题,找一个喜欢的clone下来。
下面以yilia主题为例

1
2
#在博客的个目录下
git clone https://github.com/litten/hexo-theme-yilia.git /themes/yilia

然后修改博客根目录下的_config.yml文件,找到themes:的配置,将默认的landscape改成yilia。

然后再用

1
hexo s -i localhost

预览你的博客。

最后再根据yilia的说明 配置你的博客即可。

写文章

1
2
3
4
5
6
7
8
9
10
hexo new [layout] title
# layout是可选参数, 默认为post
# 下面是一个实例
hexo new post hello-hexo
# 当然, 因为post是默认的,所以
hexo new hello-hexo
# 其实也是一样的效果,
# 如果你需要生成别的类型的文章
# 可以用别的参数,例如:
hexo new photo pictures

然后hexo会自动的在./source/_posts/下面生成一个md文件,编辑它,写入你的文章内容,然后再用

1
hexo s -i localhost

预览效果。

将博客部署到github上

修改博客根目录下的_config.yml 里面的 deploy:后面的配置为

1
2
3
4
deploy:
type: git
repo: git@github.com:username/username.github.io.git
branch: master

然后安装hexo-deployer-git插件

1
npm install hexo-deployer-git --save

确保你当前使用的ssh-key的公玥已经被添加到了你的github设置里面。

然后只需要在博客根目录下hexo deploy即可。

!!注意:
每次deploy前都需要用

1
hexo g

命令生成一次博客。
因为deploy提取的pbulic文件夹下面的内容push到git服务器上。

给自己的博客添加rss

安装烧制feed的插件。要在博客的根目录下。

1
npm install hexo-generator-feed --save

然后在博客的根目录下的_config.yml_文件最后添加上

1
2
plugins:
- hexo-generator-feed

这样你的hexo在generate你的博客时候会自动的给你生成atom.xml文件。

然后在你的博客里面添加rss订阅图标。

修改./themes/yilia/目录下面的_config.yml文件,把 subnav: 下面的#rss: “#”的注释去掉,并把引号里面的url改成”/atom.xml”就可以了。

修补主题的问题。

点击所有文章,你会发现,如果你的文章数量超过10篇,那么所有文章里面只会显示前10篇,不会把全部列出来。那怎么要把所有文章都列出来呢?

方法一

把根目录下的_config.yml里面的per_page:10改成per_page:0,也就是说把分页功能给关掉。
但是这样有个不好的地方,整个博客的分页功能都被关掉了,也就是说,主页也没有分页了。。

方法二

在\node_modules\hexo-generator-archive\下面找到index.js。修改之。同样的把per_page改成0!

1
2
3
4
5
6
7
8
9
10
11
'use strict';

var assign = require('object-assign');

hexo.config.archive_generator = assign({
per_page: 0,
yearly: true,
monthly: true
}, hexo.config.archive_generator);

hexo.extend.generator.register('archive', require('./lib/generator'));

几个小小的遗憾

至于sitemap我还没有折腾过。

听说yilia主题可以配置google analysis。但是我并不知道怎么搞。希望以后能搞定这个问题。到yilia的主题配置文件里面找到google_analytics: '', 在单引号里面填上tracking id就可以了。

主题没有 table of contents。

主题的psots 无法显示加粗效果。 已经被大神修复了

由于我没学过nodejs,并且hexo的封装性似乎比jekyll好得多,所以我想手动的修改yilia主题都没办法修改,郁闷之。 现在已经折腾出了点东西,虽然不多.

又发现一个问题,主页上的post的预览里面的链接点开了不会打开新标签页,而是直接在当前页面跳转。 同样被大神修复了.