从开始搭博客到现在,陆陆续续也有二十多天了,来简单聊聊我所知道的hexo。

we

就像旅行中对擦肩而过的那个女孩念念不忘,初用hexo,觉得很容易上手,架构很清晰。awe主题大方地展示图片,很对自己的胃口,就不用自己从头写了。于是想照自己的想法改点东西,但awe毕竟不如默认风格light那么成熟,改的过程中遇到不少问题,有些体会总结如下:

THEME结构

每个hexo主题都至少由以下几个部分构成

├── _config.yml
├── languages
├── layout
├── scripts
└── source

其中languages用于配置语言包,比如在ejs文件中写<%= __('tags') %>,在根目录的config中配置了languages为zh-CN,就会到languages文件夹中选择zh-CN.yml文件中的对应项来翻译。

_config.yml用于配置参数,scripts文件不是必须的,source文件中包含css,js以及用到的images。 而layout中又包含至少包含这几个模板文件:

├── layout.ejs
├── index.ejs
├── post.ejs
├── page.ejs
├── archive.ejs
├── tag.ejs
└── category.ejs

这几个文件其实都不是必须的,但是用这几个模板会让搭建变得很简单。

不用模板文件的话,只需要在页面中加入layout:false,否则至少会使用layout.js布局。如果未指定layout,则会使用config文件中指定的default_layout。

如果自己制定,写好layout以后,指定layout:xxx,其中xxx为文件夹名。在init产生的文件中,有一个scaffolds文件夹,这是干什么用的呢?scaffolds中的md文件,举个例子,执行hexo new post xxx时,就会使用scaffolds中的post.md模板。

YAML语法

hexo中很多地方都使用了YAML语法(比XML简洁得多),比如想给一篇文章打上多个tag的时候,可以这么写:

tags:  
- tag1
- tag2

要注意YAML语法格式的正确,比如-后要加空格。

HEXO的小缺陷

在服务器运行的时候,如果你手动新增了一个文件夹,并把它改名,下一次编译的时候,就有可能提示说无法打开“xxx/xxx/新建文件夹”。这是因为这些都被记录在了db.json中,遇到这种情况清空db.json文件或者执行

hexo clean

在发布的时候,记得删掉public和.deploy文件夹重新生成一次,清空db.json文件文件也可以,否则public和.deploy文件夹只会有增无减。

当然,如果删掉数据库的话,里面的原有信息也会丢失,比如最后修改时间就都变成了生成时的时间。因此一旦发布,还是不要随意删除数据库。

博客推荐

趁着寒假没有干其他事的动力,想把博客搭得漂亮一点,虽然在意料之中地失败了,但也借此机会欣赏了很多漂亮的博客,推荐几个自己觉得风格不错的个人博客:
zespia(hexo主人自己的,docs简约清新)
hahack(wiki尤其赞,简历也很棒)
还有一个是大帝推荐的,我觉得也很好:
BeiYuu(IOS风格)