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