Я не знаком с Ruby и знаю, что для этого есть общий плагин Jekyll, но я пытался весь день и не смог заставить его работать.
Я добавил этот плагин:
module Jekyll
class TagIndex < Page
def initialize(site, base, dir, tag)
@site = site
@base = base
@dir = dir
@name = 'index.html'
self.process(@name)
self.read_yaml(File.join(base, '_layouts'), 'tag_index.html')
self.data['tag'] = tag
tag_title_prefix = site.config['tag_title_prefix'] || 'Posts Tagged “'
tag_title_suffix = site.config['tag_title_suffix'] || '”'
self.data['title'] = "#{tag_title_prefix}#{tag}#{tag_title_suffix}"
end
end
class TagGenerator < Generator
safe true
def generate(site)
if site.layouts.key? 'tag_index'
dir = site.config['tag_dir'] || 'tag/tag'
site.tags.keys.each do |tag|
write_tag_index(site, File.join(dir, tag), tag)
end
end
end
def write_tag_index(site, dir, tag)
index = TagIndex.new(site, site.source, dir, tag)
index.render(site.layouts, site.site_payload)
index.write(site.dest)
site.pages << index
end
end
end
и в _config.yml я добавил
tag_dir: /tag
Я показываю список тегов с этим включаемым файлом:
<div class="tags modal">
<ul>
{% for tag in site.tags %}
<li>
<a href="/tag/{{ tag | first | slugize }}/">
{{ tag | first }}
</a>
</li>
{% endfor %}
</ul>
</div>
И когда я пытаюсь выбрать тег, URL-адрес изменяется соответствующим образом, но больше ничего не меняется. Он не отображает мой шаблон tag_index и не фильтрует теги.
Предварительный просмотр сайта, полный исходный код доступен здесь. Я бился головой какое-то время к стене и не могу, черт возьми, понять, что я делаю неправильно.