如何将Liquid数组转换为JavaScript数组?

3
在我的Jekyll网站中,我想要从_data/stocks.yml加载数据,并在使用Chart.js绘制的图表中使用该数据。Chart.js接受图表数据集和标签作为简单的Javascript数组。有没有一种简单的方法将Liquid数组转换为Javascript数组或映射?
我尝试过:var months = {{ site.data.stocks.yml | json }},但我认为这仅适用于单个字符串/变量而不是集合结构。 _data/stocks.yml文件:
- month: Jan '20
  portfolio: '-4.5'
  spy: '-0.16'
- month: Feb '20
  portfolio: '-19.2'
  spy: '-8.41'
- month: Mar '20
  portfolio: '-19.1'
  spy: '-12.51'
2个回答

4
我认为你尝试完成的任务有两个问题。
第一个问题是,根据 Jekyll 文档 ,你应该使用格式为 site.data.datafile 的形式来访问数据文件,不需要使用扩展名 .yml。在你的情况下,你将使用 {{ site.data.stocks }} 来访问数据。
第二个问题是,用于将数据转换为 json 的 Jekyll(Liquid)过滤器为 | jsonify,而不是 | json。因此,要将您的股票数据文件转换为 json,请使用 {{ site.data.stocks | jsonify }}

太棒了,谢谢!我在Liquid开发者页面上找到了json过滤器。显然,我没有深入研究Jekyll文档页面。 - johnpitchko

0
如果您有一个液态数组,那么我认为简单的方法是循环遍历液态数组,并在每次迭代中将元素推入JS数组。

E.g.:

<script>
let js_array =[];
  {% for item in liquid_array %}
     js_array.push({{item}});
  {% endfor %}
console.log(js_array);
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接