jekyll 标签
一、安装
-
执行
gem install jekyll-tagging
安装插件 -
在
Gemfile
文件中添加一行gem 'jekyll-tagging'
-
在
_plugins/ext.rb
文件中添加:require 'jekyll/tagging'
如果没有此文件(夹),请先创建。
二、配置
- 修改
_config.yml
文件
增加tagging配置:
tag_page_layout: tag_page
tag_page_dir: tag
tag_page_layout
为标签页面模版;tag_page_dir
为生成带标签页面的位置。
- 新增标签页面模板布局
在_layouts
下新建tag_page.html
,内容参见附录
- 添加标签
tags
在文章的头信息(Front Matter)中添加tags
,如下:
---
layout: post
title: "爱在记忆消逝前"
date: 2018-02-21 15:00:55
tags: 剧情 爱情
---
三、效果
访问tag_page_dir
配置的文件夹,可以看到此文件夹下为每个标签生成了一个html文件:
访问其中的一个标签页面,效果如下:
但如果标签使用中文,在windows下会有编码问题,导致在该页面中点击跳转其他标签,会找不到文件
四、其他配置
- 配置要忽略的标签
源文档中还提到可以通过在_config.yml
文件中添加ignored_tags: [tags,to,ignore]
实现此数组中的标签不生成标签页面。
此配置在以下环境测试失败,未生效!
ruby 2.4.3p205
jekyll 3.6.2
jekyll-tagging 1.10
特意看了下jekyll-tagging-1.1.0
安装目录下的/lib/jekyll/tagging.rb
文件:
def generate(site)
self.class.site = self.site = site
generate_tag_pages
add_tag_cloud
end
def generate_tag_pages
active_tags.each { |tag, posts| new_tag(tag, posts) }
end
def active_tags
return site.tags unless site.config["ignored_tags"]
site.tags.reject { |t| site.config["ignored_tags"].include? t[0] }
end
加了些日志,看到的结果是:
在generate_tag_pages
方法中调用的active_tags
中并没有过滤掉ignored_tags
,但我自己模拟的测试reject方法都是有效的,由于对ruby不熟悉,所以暂时只能这样了,如果哪位大神有解决方法请发邮件(albertbamboo@foxmail.com)告知,感激不尽!
附:
-
tag_page.html