yaml - 如何在 Lquid 或 Javascript 中循环遍历 YAML 集合和 110 中的子集合?
问题描述
如何获取带有嵌套列表的 YAML 列表并输出嵌套项?
---
- fruit
- banana
- apple
- orange
- vegetable
- lettuce
- broccoli
- carrots
- bread
- cheese
- meat
- beef
- turkey
- chicken
然后
<h1>Groceries</h1>
{% for item in groceries %}
{% comment %}
1. capture item
2. test for nested list
3. render nested items
{% endcomment %}
{{ item }}
{% endfor %}
Liquid 是否有过滤器来检查和遍历嵌套列表?
我应该创建一个带有回调的自定义 Javascript 过滤器吗?
解决方案
好的,我想添加另一个答案。我可能会删除我的第一个,但现在想离开它。因此,我认为这与您的原始问题更接近一些:
---
layout: main
groceries:
- fruit
- banana
- apple
- orange
- vegetable
- lettuce
- broccoli
- carrots
- bread
- cheese
- meat
- beef
- turkey
- chicken
---
然后我这样做了:
{% for type in groceries %}
{% assign items = type | split: " - " %}
{% assign header = items[0] %}
<h2>{{ header }}</h2>
{% if items.length > 1 %}
<ul>
{% for item in items %}
{% unless forloop.first %}
<li>{{item}}</li>
{% endunless %}
{% endfor %}
</ul>
{% endif %}
<p>
{% endfor %}
在循环中,items
是一个包含顶级项和任何子项的数组。所以第一项总是主要的东西(水果、蔬菜、肉)。如果我们有 2 个或更多项目,则意味着我们有一个“子列表”,您可以看到我如何遍历它们并跳过第一个项目。
想法?
推荐阅读
- django - wagtail 中是否有文件大小限制或扩展名限制?
- c# - 捆绑包的 MVC5 授权
- openshift - OpenShift 主机路径卷和重音字符
- python - 从打开的简历中的图片中删除大对象
- json - 提取数据后在 JSON 行之间插入分隔符
- r - 警告:在 predict.lm 中,来自秩不足拟合的预测可能会产生误导
- javascript - 如何让 Angular 组件占据整个屏幕高度
- python - 如何通过 Jinja2 访问 JSON 中的特定元素
- javascript - this.dummyproperty = dummyproperty的真正含义是什么?
- html - 在 Chrome 中打开一个写在 .bat 中的 html 页面?