Ruby 带URL参数的Jekyll按标记筛选
我正在开发一个静态Jekyll网站(用于个人投资组合)。我有9个帖子(项目),每个项目都包含一组不同(或类似)的标签。例如,我对“项目A”的首要任务是: “项目B”是: 所以很明显,类似的标签是html5 我在页面上检索这些标记,如下所示: (我在一个降价文件中执行此操作,在该文件中存储我的帖子内容,但如果需要,可以在_layout/post.html上执行此操作。)Ruby 带URL参数的Jekyll按标记筛选,ruby,tags,jekyll,Ruby,Tags,Jekyll,我正在开发一个静态Jekyll网站(用于个人投资组合)。我有9个帖子(项目),每个项目都包含一组不同(或类似)的标签。例如,我对“项目A”的首要任务是: “项目B”是: 所以很明显,类似的标签是html5 我在页面上检索这些标记,如下所示: (我在一个降价文件中执行此操作,在该文件中存储我的帖子内容,但如果需要,可以在_layout/post.html上执行此操作。) {page.tags%中的标记的%s} 杰基尔有可能这样吗?或者,即使分类是一个更好的选择,我也可以走这条路。如果你在谷歌上
杰基尔有可能这样吗?或者,即使分类是一个更好的选择,我也可以走这条路。如果你在谷歌上用keywors“tags in jekyll”搜索,你可以找到你想要的东西 我试着解释一下在jekyll中使用标签 在
\u plugins
目录中创建tag\u gen.rb
,并放置此代码
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'
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
资料来源:
或者你可以试试这个插件
这是一个jekyll插件,它覆盖了内置的相关文章
函数根据帖子的标签计算相关帖子
安装:
将\u plugins/related\u posts.rb
复制到项目的\u plugins
目录中
用法:
将此代码放在项目的目录中,并命名文件related\u post.html
或其他任何内容
{% for post in site.related_posts %}
<a href="{{ post.url }}">{{ post.title }}</a><br />
{% endfor %}
第一个似乎工作得最好,尽管我不能让第二个做很多事情(除了抛出错误)。谢谢你的信息!事实上,我在谷歌上找到了“jekyll过滤器标签”、“jekyll标签url”和“jekyll标签过滤器”的多种组合,只是不是你的确切短语。
<ul class="tags">
{% for tag in page.tags %}
<li><a>{{ tag }}</a></li>
{% endfor %}
</ul>
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'
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
---
layout: default
---
<h2 class="post_title">{.{page.title}}</h2>
<ul>
{.% for post in site.posts %}
{.% for tag in post.tags %}
{.% if tag == page.tag %}
<li class="archive_list">
<time style="color:#666;font-size:11px;" datetime='{.{post.date | date: "%Y-%m-%d"}}'>{.{post.date | date: "%m/%d/%y"}}</time> <a class="archive_list_article_link" href='{.{post.url}}'>{.{post.title}}</a>
<p class="summary">{.{post.summary}}
<ul class="tag_list">
{.% for tag in post.tags %}
<li class="inline archive_list"><a class="tag_list_link" href="/tag/{.{ tag }}">{.{ tag }}</a></li>
{.% endfor %}
</ul>
</li>
{.% endif %}
{.% endfor %}
{.% endfor %}
</ul>
{% for post in site.related_posts %}
<a href="{{ post.url }}">{{ post.title }}</a><br />
{% endfor %}
{% include related_post.html %}