dav*_*rey 1 jekyll jekyll-extensions
我不熟悉 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
Run Code Online (Sandbox Code Playgroud)
和 _config.yml 我添加了
tag_dir: /tag
Run Code Online (Sandbox Code Playgroud)
我用这个包含文件显示标签列表:
<div class="tags modal">
<ul>
{% for tag in site.tags %}
<li>
<a href="/tag/{{ tag | first | slugize }}/">
{{ tag | first }}
</a>
</li>
{% endfor %}
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
当我尝试选择一个标签时,url 会相应地更改,但没有其他任何更改。它不显示我的 tag_index 模板或过滤标签。
可以预览该站点,并在此处提供完整的源代码。 我已经用头撞墙有一段时间了,该死的我无法弄清楚我做错了什么。
如果一个包含所有标签的所有帖子的单个标签页面(就像我博客上的这个)对你来说就足够了,你可以只用 Jekyll/Liquid 生成它,根本不使用任何插件。
如果您绝对希望每个标签都有一个单独的页面,那么您只有两种选择:
David Jacquel 的回答 (在本地机器上用插件生成页面,只将生成的 HTML 推送到 GitHub)
每次您在第一次使用新标签的情况下撰写帖子时,请手动创建一个带有标签名称的新页面 ,您可以在其中加载该标签的所有帖子
这两种选择都比我博客中的标签页(请参阅第一个链接)要多一些工作,但是当您希望 GitHub Pages 上的每个标签一页时,别无他法。
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |