2016-09-17 51 views
1

在我的简单Pico(0.9)基础网站中,我想添加将列出一组对象的类别页面,每个类别都有所不同,并且在每个标记文件中为每个对象定义类别。理论上讲,应该可以使用{% for object in set %}语法将它们列在树枝模板中。在Pico CMS content markdown文件中如何定义数组

我也乐意一直用我自己的插件,我的自定义Key Value Pair Label:映射到一个自定义字段在模板中的meta变量中获得来自.md文件我自己的变量。但我无法让它与数组一起工作。

显然,markdown标题使用YAML,我已经阅读了规范,并且有许多方法可以指定这样的列表。所以,我曾尝试之类的东西......

/* 
Title: Example Category Page - Cutlery 
My Items: ['fork', 'spoon', 'knife'] 
*/ 

或者这样:

/* 
Title: Example Category Page - Cutlery 
My Items: 
- fork 
- spoon 
- knife 
*/ 

但是当这是在模板的代码加载(与我的插件将其映射到meta.my_items)是这样的:

{% for item in meta.my_items %} 
    <p>{{ item }}</p> 
{% endfor %} 

没有显示数组meta.my_items为空。

理想情况下,我想将数组中的对象从简单的字符串展开为一组KVPs(标题,图片,描述),我应该可以在YAML中进行这些操作。

所以我的问题是 - 这是实际上支持Pico CMS,如果是的话,我做错了什么?

+0

在你试过的两件事中,YAML代表完全相同的结构,只在样式(流与块)上有所不同,但在语义上不同。如果一个人不工作,尝试另一个是浪费时间。 – Anthon

+0

虽然你在一个完美的世界是正确的 - 这并不完美。我不同意以不同的方式尝试事情是浪费时间,这可能会导致见解和解决方法。以下是可能暴露的五个问题:1.用户误解其中一种样式的语法,2.微妙的错字导致语法错误,3.其中一种样式的文档不正确,4.标准的不完整实现正在使用的YAML解析器,5. YAML解析器中的错误。此外,专门为stackoverflow,它显示已经完成研究之前我的问题,并不会得到我已经尝试的答案。 –

回答

1

我试过(版本为1.0),但我发现的唯一工作解决方案是在名称中使用uderscore在定义中重命名它。所以,试试这个:

My_Items: ['fork', 'spoon', 'knife'] 

,而不是这样的:

My Items: ['fork', 'spoon', 'knife'] 

希望这有助于。

+1

我发现升级到pico cms 1.0使得这一切成为可能。 @Matteo示例中的语法与我的问题的第二个示例中的“dash和line delimited”样式一样。不仅如此,我还能够定义具有多个字段的列表项,这非常有用。升级打破了我主题中的一些东西,但我相信它们可以修复。谢谢。 –