如何使用Jekyll/Liquid对嵌套数据进行排序
是否可以对嵌套数据进行排序 我尝试使用assign,但出现错误: 无法对空对象进行排序 我的流动密码如何使用Jekyll/Liquid对嵌套数据进行排序,jekyll,liquid,Jekyll,Liquid,是否可以对嵌套数据进行排序 我尝试使用assign,但出现错误: 无法对空对象进行排序 我的流动密码 {site.data.programmfk%中fuehrung2的%s} {%assign fuehrung1=fuehrung2['fuehrungen']|排序:“开始”%} {fuehrung1%中fuehrung的%s} {{fuehrung.titel}{{fuehrung.start}日期:%H:%M}{%if fuehrung.ende!=nil%}{{fuehrung.ende
{site.data.programmfk%中fuehrung2的%s}
{%assign fuehrung1=fuehrung2['fuehrungen']|排序:“开始”%}
{fuehrung1%中fuehrung的%s}
{{fuehrung.titel}
{{fuehrung.start}日期:%H:%M}{%if fuehrung.ende!=nil%}{{fuehrung.ende}日期:%H:%M}{%endif%}Uhr⟩;Treffpunkt:{{fuehrung.Treffpunkt|join:&}
{%endfor%}
{%endfor%}
我的程序mfk.yml(只是…的一小部分)
-numer:“04”
滴度:电子技术和信息技术
资讯站:Lothstraße 64
格斯普拉赫:
开始时间:2020-03-28 10:00
恩德:2020-03-28 15:00
朋克特:
-Vertiefungsrichtong通信技术公司
-劳动示范会
-机械人
-智能汽车
-电脑踢球者
陈述:
开始:
恩德:
朋克特:
vortraege:
-滴度:Vorstellung der Studiengänge
开始时间:2020-03-28 11:00
恩德:2020-03-28 12:00
劳姆:E 0.103
富伦根:
-滴度:Nachrictensatellitentechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 12:00
恩德:2020-03-28 12:30
-标题:Regelungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 12:30
恩德:2020-03-28 13:00
-滴度:Aufbau-und Verbindungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 13:00
恩德:2020-03-28 13:30
-标题:Regelungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-2813:30
恩德:2020-03-28 14:00
我正在尝试按开始时间对fuehrungen进行排序
@大卫·雅克 如果我将yml文件在线用于
fuehrungen
,它就会工作
Myfuehrungen.yml
fuehrungen:
-蒂特尔:摩托兰伯勒
特里夫蓬特:法库特信息站
开始时间:2020-03-28 11:00
完:2020-03-28 11:45
-蒂特尔:摩托兰伯勒
特里夫蓬特:法库特信息站
开始时间:2020-03-28 12:00
恩德:2020-03-28 12:45
-滴度:Nachrictensatellitentechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 12:00
恩德:2020-03-28 12:30
-标题:Regelungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 12:30
恩德:2020-03-28 13:00
-滴度:Aufbau-und Verbindungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-28 13:00
恩德:2020-03-28 13:30
-标题:Regelungstechnik
特里夫蓬特:法库特信息站
开始时间:2020-03-2813:30
恩德:2020-03-28 14:00
-滴度:环境和实验实验室技术研究和通信
特里夫蓬特:法库特信息站
开始时间:2020-03-2811:45
恩德:2020-03-28 12:30
-滴度:Führung Bereich Papier和Verpackung(Labore、Maschinenhalle等)
特里夫蓬特:法库特信息站
开始时间:2020-03-2812:15
恩德:2020-03-28 13:00
-标题:“劳动:研究德鲁克和医学技术”生产
特里夫蓬特:法库特信息站
开始时间:2020-03-2813:50
恩德:2020-03-2814:15
液体/HTML
{%assign-fuehrungSort=site.data.fuehrungen['fuehrungen']|排序:“start”%}
{fuehrungSort%中fuehrung的%s}
{{fuehrung.start}日期:“%H:%M”}Uhr{{fuehrung.titel}
{%endfor%}
但是,在我原来的程序mfk.yml
中,我之前还有一个级别,我无法获得该级别的结果
-努默:
…
富伦根:
-标题:
…
如您的代码中所示,您的代码中隐藏着一个空的vortraege:
- nummer: "13"
titel: Studium Generale und Interdisziplinäre Studien
infostand: Lothstraße 64
gespraech:
start: 2020-03-28 10:00
ende: 2020-03-28 15:00
punkte:
praesentation:
start:
ende:
punkte:
vortraege:
fuehrungen:
在代码中,vortraege['vortraege']
可以为null或空,并且不包含包含要排序的start
字段的对象。这解释了错误
您可以在排序{%if vortraege['vortraege].size%}
这就产生了:
<ol>
{% for vortraege in site.data.programmfk %}
{% if vortraege['vortraege'].size %}
{% assign vortraegeSort = vortraege['vortraege'] | sort: 'start' %}
{% for vortrag in vortraegeSort %}
<li><b>{{ vortrag.start | date: "%H:%M" }} Uhr</b> {{ vortrag.titel }}</li>
{% endfor %}
{% endif %}
{% endfor %}
</ol>
无法复制此错误。如何对具有相同时间戳的事件进行排序测试?感谢您的申请。我在原始问题中添加了更多信息。您是否有代码复制此错误的存储库?Gemfile内容?是的,David。这是:谢谢您的帮助。无需复制。此代码是否会在您的计算机上引发错误?T谢谢你的解决方案。有时候很简单。我不希望能在周一之前测试它。谢谢你,大卫。但是,我仍然希望更高一级,所以排序不是通过
programmfk.numer
。我想通过programmfk['vortragege']
列出并排序('start'
).你能再帮我一次吗?把我的答案编辑成一次排序所有的vortraege
。非常感谢大卫。你是我的杰基尔王;-)
{% comment %} --- Create an empty array --- {% endcomment %}
{% assign vortraege_all = '' | split: '' %}
{% for vortraege in site.data.programmfk %}
{% comment %} --- Only if vortraege['vortraege'] contains something
-- {% endcomment %}
{% if vortraege['vortraege'].size %}
{% comment %} --- Concatenate vortraege_all and current non-empty vortraege['vortraege'] --- {% endcomment %}
{% assign vortraege_all = vortraege_all | concat: vortraege['vortraege'] %}
{% endif %}
{% endfor %}
{% comment %} ----------- Sorting -------------- {% endcomment %}
{% assign vortraege_all = vortraege_all | sort: 'start' %}
<ol>
{% for v in vortraege_all %}
<li><b>{{ v.start | date: "%H:%M" }} Uhr</b> {{ v.titel }}</li>
{% endfor %}
</ol>