You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Nunjucks将Eleventy front matter逗号分隔字符串转为数组

解决方案

可以直接在当前Nunjucks文件中实现需求,使用Nunjucks内置的字符串、数组处理过滤器即可完成转换,无需额外配置Eleventy。

修改后的完整模板代码

---
permalink: '../search.json'
eleventyExcludeFromCollections: true
---
[
  {% for post in collections.plantas %}
  {% set listItems = post.data.mylistfield | split(', ') %}
  {
    "mylistfield": [{{ listItems | map('json') | join(', ') }}]
  }{% if not loop.last %},{% endif %}
  {% endfor %}
]

核心逻辑说明

  • split(', '):将front matter中逗号加空格分隔的字符串,直接拆分为数组格式
  • map('json'):自动给每个数组元素添加双引号,同时转义元素内的特殊字符(如引号、斜杠),保证生成的JSON语法合法
  • join(', '):将处理好的数组元素拼接为符合JSON数组规范的内容

兼容优化方案

如果你的front matter中mylistfield的分隔符存在格式不统一的情况(比如逗号后无空格、多空格),可以调整拆分逻辑兼容不同格式:

{% set listItems = post.data.mylistfield | replace(', ', ',') | trim | split(',') %}

内容的提问来源于stack exchange,提问作者Diego de Sousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:54:02