Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
Jekyll 反复浏览帖子列表并比较日期_Jekyll_Liquid - Fatal编程技术网

Jekyll 反复浏览帖子列表并比较日期

Jekyll 反复浏览帖子列表并比较日期,jekyll,liquid,Jekyll,Liquid,这是我对帖子列表视图的标记: <ul class="eventlist"> {% for post in site.posts reversed %} <li class="eventlist-element"> {% if post.href %} <a class="eventlist-element__link" href="{{ post.href }}"> {% else %} &l

这是我对帖子列表视图的标记:

<ul class="eventlist">
  {% for post in site.posts reversed %}
    <li class="eventlist-element">
      {% if post.href %}
        <a class="eventlist-element__link" href="{{ post.href }}">
      {% else %}
        <a class="eventlist-element__link" href="{{ post.url | prepend: site.baseurl }}">
      {% endif %}
          <time datetime="{{ post.date | date: "%Y-%m-%d" }}"class="eventlist-element__date">
            <span class="eventlist-element__date-day">{{ post.date | date: "%d" }}</span>
            <span class="eventlist-element__date-day-name">{{ post.date | date: "%a" }}</span>
          </time>
          <div class="eventlist-elemnt-infowrap">
            <span class="eventlist-element__title">{{ post.title }}</span>
            <span class="eventlist-element__venue">{{ post.venue }}</span><span class="eventlist-element__time">{{ post.time }}</span><span class="eventlist-element__ticket">{{ post.ticket }}</span>
          </div>
          <span class="eventlist-element__bullets"></span>
        </a>
    </li>
  {% endfor %}
</ul>

我想迭代所有帖子,并比较post.date。如果我们在同一天发布了3篇文章,我想为第1篇文章以及第2篇和第3篇文章添加标记a。我尝试了一些方法,但到目前为止没有任何效果。

尝试以下方法:

{% assign previousDate = site.date %}
{% for post in site.posts %}
   {% if post.date == previousDate %}
       // some other class
   {% endif %}
   {% assign previousDate = post.date %}    
{% endfor %}
基本上,您将上一篇文章的日期指定给某个变量,并将其与当前文章的日期进行比较。如果它们相同,则应用不同的样式。不确定是否可以按原样使用日期,它是否也包含小时、分钟等,。。?如果是这样的话,您需要对其进行过滤,以便只显示年、月、日。

一些代码:

{% assign defaultStyle   = 'defaultStyle' %}
{% assign alternateStyle = 'alternateStyle' %}
{% assign counter = 1 %}

{% for post in site.posts %}

    {% if previousPostDate %}

        {% if previousPostDate == post.date %}
            {% capture counter %}{{ counter | plus: 1 }}{% endcapture %}
        {% else %}
            {% assign counter = 1 %}
        {% endif %}

    {% endif %}

    {% if counter | to_number > 1 %}
        {% assign defaultStyle = alternateStyle %}
    {% endif %}

    <div class="{{ defaultStyle }}">
        <h3>{{ post.title }}</h3>
        <p>{{ post.date }}</p>
    </div>

    {% assign previousPostDate = post.date %}

{% endfor %}
该代码实现: 如果我不是约会小组的第一个帖子,我的风格就不同了

你的逻辑是 如果我不是一个由三篇或更多文章组成的日期组中的第一篇文章,那么我的风格就不同了

包含三篇或更多文章的part date组意味着您已经知道有多少篇相同日期的文章,这使得代码更加复杂