动机
博客一开始建立的时候,就一直在思考,只有一个列表的话,怎么更好地展示个人博客的内容呢?于是乎,就产生了给这个主题增加一个分类的小功能,了解到在jekyll里面有一个插件jekyll-tagging
可以自动根据文章的tag生成各种标签的插件。
动手
1.利用Gem
工具安装jekyll-tagging
插件
gem install jekyll-tagging
2.在GemFile里面增加相关的插件配置
gem 'jekyll-tagging',:git => 'https://github.com/pattex/jekyll-tagging.git'
3.在根目录下面增加一个_plugins/ext.rb
的文件
4.在ext.rb
文件中增加插件的配置项
require 'jekyll/tagging'
5.在_config.yml
增加下面的配置项
tag_page_layout: tag_page #配置布局
tag_page_dir: tag #标签页的连接目录
tag_permalink_style: pretty #生成的链接的样式
通过上面的配置,jekyll就可以通过site命令访问到tagcloud变量
6.在_layout
目录下面增加tag_page.html
的标签列表页面
具体代码参考文章jekyll-tagging官方文档
7.通过上面步骤即可通过your-host/tag/your-tag
去访问个人的标签列表了
问题
由于我个人博客是建立在github
上面的,所以当我以这样的配置上传到github
的仓库里面去之后,发现git pages
并不能像我想象之中的正常运行,在显示所有的标签页的内容全部显示为Jekyll::Drops::SiteDrop
google显示的内容很少,只有少部分指出说是由于Jeykll无法正常使用site全局变量导致的,参考了很多的博客,归纳成下面的几点
- 配置文件没有配置相关的变量
- 自己删除了_plugins文件夹
- 没有安装到相关的插件
经过我的测试,如果在配置文件里面配置了safe:true
,那么在我本地显示的内容就和github上面的一摸一样。那么结果很清晰了,那就是github没有关闭jekyll的安全模式。所以转变思路,如何在gitpage上面使用插件。看到官方的Configuring Jekyll plugins没有任何的作用。
最后偶然地找到相关解决方案:用编译后的静态内容直接放到master分支的根目录之下,将其他的文件全部删除。(参考链接Jekyll 插件和 Github Pages)
思考
在寻找问题的解决方案的时候,有时候太过于一根筋,一味着寻找相关答案,但是答案往往是要跳出来,才能更好的寻找到答案。