Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 带URL参数的Jekyll按标记筛选_Ruby_Tags_Jekyll - Fatal编程技术网

Ruby 带URL参数的Jekyll按标记筛选

Ruby 带URL参数的Jekyll按标记筛选,ruby,tags,jekyll,Ruby,Tags,Jekyll,我正在开发一个静态Jekyll网站(用于个人投资组合)。我有9个帖子(项目),每个项目都包含一组不同(或类似)的标签。例如,我对“项目A”的首要任务是: “项目B”是: 所以很明显,类似的标签是html5 我在页面上检索这些标记,如下所示: (我在一个降价文件中执行此操作,在该文件中存储我的帖子内容,但如果需要,可以在_layout/post.html上执行此操作。) {page.tags%中的标记的%s} 杰基尔有可能这样吗?或者,即使分类是一个更好的选择,我也可以走这条路。如果你在谷歌上

我正在开发一个静态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 &ldquo;'
      tag_title_suffix = site.config['tag_title_suffix'] || '&rdquo;'
      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 &ldquo;'
      tag_title_suffix = site.config['tag_title_suffix'] || '&rdquo;'
      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 %}