1

我正在尝试使用 Grav 来创建我的下一个网站。我能够做的一件事是使用Grav frontmatter中提供的数据构建一个无序列表,该数据来自使用该模板的 Grav 页面。这是我试图做到这一点的方法

---
sectionone:
     listitems: "['Benefit 1','Benefit 2','Benefit 3']"
---

然后在模板中以某种方式执行以下操作

{% block featurelist %}
<ul>
{% set items = {{page.header.sectionone.consumers.benefits|json_decode}} %}
{% for item in {{}} %}
<li>{{item}}</li>
{% endfor %}
</ul>
{% endblock %}

但是,Twig 不喜欢这样,并按照以下方式报告错误

Twig_Error_Syntax 哈希键必须是带引号的字符串、数字、名称或括在括号中的表达式(值“{”的意外标记“标点符号”。

违规行是我的{% set items = ... }陈述。我显然在这里做错了什么,但我是 Twig 新手,所以我看不到那可能是什么。

4

2 回答 2

1
{% block featurelist %}
<ul>
   {% set items = page.header.sectionone.consumers.benefits|json_decode %}
   {% for item in items %}
      <li>{{item}}</li>
   {% endfor %}
</ul>
{% endblock %}
于 2017-11-15T19:14:51.287 回答
1

我最终想通了。Grav 文档总的来说非常好。但是,页眉/frontmatter上的文档似乎有些不完整。没有对前端处理器理解的整个语法的完整描述。为了在前面定义一个数组,您需要做的就是以下

---
sectionone:
 benefits: 
    - 'Benefit 1'
    - 'Benefit 2'
    - ...
---

本质上是无序列表的标准降价语法。Grav 的树枝处理器似乎将其转换为 PHP 数组 - 无需解析!

于 2017-11-16T10:36:27.907 回答