Collections 仅当数组中的下一个/上一个项与今天的日期匹配时,才获取按自定义frontmatter排序的数组中的下一个/上一个项

Collections 仅当数组中的下一个/上一个项与今天的日期匹配时,才获取按自定义frontmatter排序的数组中的下一个/上一个项,collections,jekyll,liquid,Collections,Jekyll,Liquid,更新: 我有一个叫做事件的收藏。此集合中的每个项目都有一个自定义元“开始时间和日期:”作为日期时间格式输入(例如2017-02-23 00:05:09+0700)。在我的主页布局中,我只列出“开始时间和日期:”与今天日期匹配的事件 {% assign events = site.events | sort: 'Start time and date' %} {% for event in events %} {% assign today = site.time | date: "%b %d

更新: 我有一个叫做事件的收藏。此集合中的每个项目都有一个自定义元“开始时间和日期:”作为日期时间格式输入(例如2017-02-23 00:05:09+0700)。在我的主页布局中,我只列出“开始时间和日期:”与今天日期匹配的事件

{% assign events = site.events | sort: 'Start time and date' %}
{% for event in events %}
  {% assign today = site.time | date: "%b %d" %}
  {% assign eventdate = event['Start time and date'] | date: "%b %d" %}
  {% if eventdate == today %}
   ...
  {% else %}
  {% endif %}
{% endfor %}
这将生成一个与今天日期匹配的事件列表,但系统上这些事件的顺序(不在主屏幕上呈现的列表中)按默认页面进行排序。日期和非事件[“开始时间和日期”]。当我位于事件页内并调用page.next时,我得到的不是生成的今天事件列表中的下一个事件,而是page.next,它是按创建所有事件的顺序排列的下一个事件页(我假定它们按日期排序)

如何使用自定义元事件['Start time and date']而不是默认的event.date来访问与当前事件相关的下一个和上一个事件。基本上可以获取网络或上一个具有今天日期的事件

{% assign events = site.events | sort: 'Start time and date' %}
{% for event in events %}
  {% assign today = site.time | date: "%b %d" %}
  {% assign eventdate = event['Start time and date'] | date: "%b %d" %}
  {% if eventdate == today %}
   ...
  {% else %}
  {% endif %}
{% endfor %}

请帮帮我,我已经用尽了我的杰基尔知识

因此,经过长期的努力,我终于能够以这种方式解决这个问题,可能有一种更简单、更干净的方法来解决这个问题,因此如果有人能对这个问题进行编辑整理,我将不胜感激=)


我认为在元值中不能有空格。这将给你一个使用它的液态语法错误。你只需要把它叫做{{post['metaname with spaces']}。