小陆菜园

播种成长的种子

记录生活的点滴


Welcome~

Jekyll折腾标签的那些事

动机

博客一开始建立的时候,就一直在思考,只有一个列表的话,怎么更好地展示个人博客的内容呢?于是乎,就产生了给这个主题增加一个分类的小功能,了解到在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

思考

在寻找问题的解决方案的时候,有时候太过于一根筋,一味着寻找相关答案,但是答案往往是要跳出来,才能更好的寻找到答案。

参考博客

最近的文章

算法学习日志2——最长公共前缀

题目描述 题目均来自leetcode:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z思考过程 在进行题目分析的时候:那就是通过第一个元素的第一个字母去匹配后面每一个元素的对位的字母,如果全部匹配那么匹配第二个字母...…

算法继续阅读
更早的文章

算法学习日志1——罗马数字转整数

题目描述 题目均来自leetcode:罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  X...…

算法继续阅读