Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
Html 如何使用Jekyll按自定义YAML front matter变量对帖子进行排序?_Html_Github_Jekyll_Liquid_Yaml Front Matter - Fatal编程技术网

Html 如何使用Jekyll按自定义YAML front matter变量对帖子进行排序?

Html 如何使用Jekyll按自定义YAML front matter变量对帖子进行排序?,html,github,jekyll,liquid,yaml-front-matter,Html,Github,Jekyll,Liquid,Yaml Front Matter,我试图在我的Jekyll站点中创建一个页面,该页面将显示一个自定义变量,并列出包含该自定义变量的帖子 我使用Thiago Rossener创建的模板创建了一个电影评论博客: Thiago的模板: 我的网站: 在每一篇文章中,我都在YAML前端定义了与电影细节相关的自定义变量(即演员、导演得分等) 例如: --- layout: post title: "Baby Driver" image: 'https://res.cloudinary.com/how-dare-you-review/imag

我试图在我的Jekyll站点中创建一个页面,该页面将显示一个自定义变量,并列出包含该自定义变量的帖子

我使用Thiago Rossener创建的模板创建了一个电影评论博客: Thiago的模板: 我的网站:

在每一篇文章中,我都在YAML前端定义了与电影细节相关的自定义变量(即演员、导演得分等)

例如:

---
layout: post
title: "Baby Driver"
image: 'https://res.cloudinary.com/how-dare-you-review/image/upload/c_fill,h_399,w_760/v1529865791/baby-driver.png'
tags:
- action
score: 72
director: Edgar Wright
written-by: Edgar Wright
staring: 
- Ansel Elgort
- Lily James
- Eiza González
- Jon Hamm
- Jamie Foxx
---
我希望创建与此模板中已存在的标记页面完全相同的页面:

除了我想按导演、主演等排序,而不是按标签排序。 标记页面是在tags.html文件中使用以下代码创建的:

---
layout: minimal
title: "#Tags"
permalink: /tags/index.html
description: "Procure por sua #tag favorita."
---

<div class="tags">
{% assign tags_list = site.tags %}
  {% if tags_list.first[0] == null %}
    {% for tag in tags_list %}
        <a href="#{{ tag | slugify }}">{{ tag }}</a>
    {% endfor %}
  {% else %}
    {% for tag in tags_list %}
        <a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
    {% endfor %}
  {% endif %}
{% assign tags_list = nil %}
</div>

{% for tag in site.tags  %}
    <div class="tag-wrapper">
    <span class="tag-title" id="{{ tag[0] | slugify }}">{{ tag[0] }}</span>
    <ul class="post-list">
        {% assign pages_list = tag[1] %}
        {% for post in pages_list reversed %}
            {% if post.title != null %}
            {% if group == null or group == post.group %}
            <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}<span class="entry-date"><time datetime="{{ post.date | date_to_xmlschema }}" itemprop="datePublished">{{ post.date | date: "%m/%d/%Y" }}</time></a></li>
            {% endif %}
            {% endif %}
        {% endfor %}
        {% assign pages_list = nil %}
        {% assign group = nil %}
    </ul>
</span>
</div>
{% endfor %}
---
布局:最小
标题:“标签”
permalink:/tags/index.html
描述:“购买por sua#tag favorita。”
---
{%assign tags\u list=site.tags%}
{%if标记\u列表。第一个[0]==null%}
{标记列表%中的标记的百分比}
{%endfor%}
{%else%}
{标记列表%中的标记的百分比}
{%endfor%}
{%endif%}
{%assign tags_list=nil%}
{site.tags%中的标记的%s}
{{tag[0]}
    {%assign pages\u list=tag[1]} {%用于页面中的帖子\u列表已反转%} {%if post.title!=null%} {%if group==null或group==post.group%}
  • {%endif%} {%endif%} {%endfor%} {%assign pages\u list=nil%} {%assign group=nil%}
{%endfor%}
为了对我创建的自定义变量实现这一点,我尝试用director替换“tag/tags”,并将文件以“directors.html”的形式保存到根目录中,但页面为空

---
layout: minimal
title: "#Directors"
permalink: /directors/index.html
description: "Procure por sua director favorita."
---
<div class="directors">
{% assign directors_list = site.director %}
  {% if directors_list.first[0] == null %}
    {% for director in directors_list %}
        <a href="#{{ tag | slugify }}">{{ director }}</a>
    {% endfor %}
  {% else %}
    {% for director in directors_list %}
        <a href="#{{ director[0] | slugify }}">{{ director[0] }}</a>
    {% endfor %}
  {% endif %}
{% assign directors_list = nil %}
</div>

{% for director in site.director  %}
    <div class="director-wrapper">
    <span class="director-title" id="{{ tag[0] | slugify }}">{{ director[0] }}</span>
    <ul class="post-list">
        {% assign pages_list = director[1] %}
        {% for post in pages_list reversed %}
            {% if post.title != null %}
            {% if group == null or group == post.group %}
            <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}<span class="entry-date"><time datetime="{{ post.date | date_to_xmlschema }}" itemprop="datePublished">{{ post.date | date: "%m/%d/%Y" }}</time></a></li>
            {% endif %}
            {% endif %}
        {% endfor %}
        {% assign pages_list = nil %}
        {% assign group = nil %}
    </ul>
</span>
</div>
{% endfor %}
---
布局:最小
标题:“董事”
permalink:/directors/index.html
描述:“采购por sua主管favorita。”
---
{%assign directors\u list=site.director%}
{%if directors\u list.first[0]==null%}
{directors_list%}中的director为%
{%endfor%}
{%else%}
{directors_list%}中的director为%
{%endfor%}
{%endif%}
{%assign directors\u list=nil%}
{site.director%中的director%
{{director[0]}
    {%assign pages\u list=director[1]} {%用于页面中的帖子\u列表已反转%} {%if post.title!=null%} {%if group==null或group==post.group%}
  • {%endif%} {%endif%} {%endfor%} {%assign pages\u list=nil%} {%assign group=nil%}
{%endfor%}
由于代码和概念与填充标记的方式完全相同-我无法理解为什么这不起作用-我希望有人能提供帮助

以下是我的整个目录供参考:
标签页使用了
site.Tags
,这是一个
site.posts的数组,按标签分组,由Jekyll在生成时创建

您正试图通过定位
site.directors
进行复制,但此预期阵列不存在。但是,您可以使用group_by filter来实现您的目标

<div class="directors">
  {% assign directors = site.posts | group_by: 'director' | sort: "name" %}
  {% for director in directors %}
    {% if director.name == "" %}
      {% assign name = "Anonymous" %}
    {% else %}
      {% assign name = director.name %}
    {% endif %}
    <a href="#{{ name | slugify }}">{{ name }}</a>
  {% endfor %}
</div>

{% for director in directors %}
<div class="director-wrapper">
  {% if director.name == "" %}
    {% assign name = "Anonymous" %}
  {% else %}
    {% assign name = director.name %}
  {% endif %}
  <span class="director-title" id="{{ name | slugify }}">{{ name | debug }}</span>
    <ul class="post-list">
      {% assign pages_list = director.items %}
      {% for post in pages_list reversed %}
        <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}<span class="entry-date"><time datetime="{{ post.date | date_to_xmlschema }}" itemprop="datePublished">{{ post.date | date: "%m/%d/%Y" }}</time></a></li>
      {% endfor %}
    </ul>
  </span>
</div>
{% endfor %}

{%assign directors=site.posts | group_by:'director'| sort:'name'%}
{directors%中的director%为%1}
{%if director.name==“”%}
{%assign name=“匿名”%}
{%else%}
{%assign name=director.name%}
{%endif%}
{%endfor%}
{directors%中的director%为%1}
{%if director.name==“”%}
{%assign name=“匿名”%}
{%else%}
{%assign name=director.name%}
{%endif%}
{{name | debug}}
    {%assign pages\u list=director.items%} {%用于页面中的帖子\u列表已反转%}
  • {%endfor%}
{%endfor%}

提示:您可以使用inspect筛选器调试VAR
{myvar | inspect}}

l如果前面的物质变量是空间分隔数组,如何使用它?例如,我在一些帖子中有变量
words:hello world sun
,我想通过这些单词来获取帖子(所有帖子都带有
hello
world
sun
)。@FilipŠ,问一个真正的SO问题。有更多的机会得到帮助。