背景
最开始用hexo
搭建了这个博客网站,主要用来记录自己的一些学习笔记或一些杂七杂八的东西,内容主要以零散为主。
但随着内容的增多,特别是同一分类相关内容的增多,又希望这部分内容能够更加系统一点,增加其相关性。
于是考虑能不能在Hexo
中集成下Gitbook
,用Gitbook
显示系统的博客内容,零散的内容依旧用Hexo
显示。
需求
在Hexo
中集成Gitbook
,要求在hexo
中点击系统的博客内容时能够跳转到Gitbook
中。
分析
hexo
生成的静态文件都在其public
目录下,其目录结构:
1 | ➜ public tree -L 1 |
如果在_config.yml
中配置的permalink
选项为:year/:month/:day/:title/
时,则文章主要按年月日分布在2020
目录中;
如果配置的permalink
选项为:category/:title/
时,则文章主要按分类分布在categories
中。
再来看看gitbook
,其生成的静态文件
都在其_book
目录下,目录结构为:
1 | ➜ _book git:(master) ✗ tree -L 1 |
那么将gitbook
生成的静态文件置于hexo
的2020
或者categoried
目录下应该就可以了?
而2020
目录年月日的归档,不方便我们归档gitbook
的内容,使用categoried
就好解决了,每个categories
下一个分类存放我们的一个gitbook
内容。
实现
修改_config.yml
首先得修改hexo
根目录下的_config
文件,使其hexo
下文章链接的格式按照分类分布。
1 | permalink: categories/:category/:title.html |
第一个categories
对应publish
目录下的categories
目录;
第二个:category
为hexo
每篇文章front-matter
指定的categories
属性,这里也可以代表每本gitbook
的书名;
第三个:title.html
为文章名,因为gitbook
的链接中都带有.html
后缀,为了正确跳转,这里我们保持同步。
创建gitbook目录。
在hexo
根目录下创建gitbook
目录用于存放gitbook
书籍。
构建
构建时,将构建后的目录指定到categories
,最方便就是在gitbook
下创建个脚本:
1 | #!/bin/bash |
每次hexo g
完成后,使用脚本文件再将gitbook静态文件构建到publish
目录下。
这样publish
目录下就同时集成了hexo
和gitbook
。
使用hexo d
命令将静态文件发布github page
或者个人网站后就可以通过目录页进行跳转了
点击跳转
如果想要在首页中看到gitbook中的文章,只需要将gitbook中的文章复制到source\_post
目录下;
当然为了保持两边的文章一致,可以使用软链接的方式:
1 | ln -s source/_posts/***.md gitbook/Django/***.md |
重新构建一遍即可