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

如何在Eleventy中遍历前置元数据(Front Matter)中的数组?

在Eleventy前置元数据中定义和使用数组的正确语法

1. 前置元数据(Front Matter)中定义数组

以Eleventy最常用的YAML格式为例,直接用-声明数组项即可,支持嵌套对象结构:

---
title: 我的项目列表
projects:
  - 名称: 个人博客
    描述: 用Eleventy搭建的静态博客
    技术栈: Eleventy, HTML, CSS
  - 名称: 工具集网站
    描述: 整理前端开发常用工具
    技术栈: Eleventy, JavaScript
---

若使用JSON格式的Front Matter,遵循标准JSON数组语法:

---
{
  "title": "我的项目列表",
  "projects": [
    {
      "名称": "个人博客",
      "描述": "用Eleventy搭建的静态博客",
      "技术栈": "Eleventy, HTML, CSS"
    },
    {
      "名称": "工具集网站",
      "描述": "整理前端开发常用工具",
      "技术栈": "Eleventy, JavaScript"
    }
  ]
}
---

2. 在HTML模板中渲染数组

Nunjucks模板(Eleventy默认支持)

用for循环遍历数组:

<h1>{{ title }}</h1>
<ul class="projects-list">
  {% for project in projects %}
    <li>
      <h3>{{ project.名称 }}</h3>
      <p>{{ project.描述 }}</p>
      <span>技术栈:{{ project.技术栈 }}</span>
    </li>
  {% endfor %}
</ul>

Liquid模板

语法类似,需通过page对象访问前置元数据:

<h1>{{ page.title }}</h1>
<ul class="projects-list">
  {% for project in page.projects %}
    <li>
      <h3>{{ project.名称 }}</h3>
      <p>{{ project.描述 }}</p>
      <span>技术栈:{{ project.技术栈 }}</span>
    </li>
  {% endfor %}
</ul>

注意事项

  • YAML格式对缩进敏感,数组项的-后需加空格,子属性要保持一致的缩进层级
  • 其他模板引擎(如Handlebars)的遍历语法略有差异,但核心逻辑都是调用前置元数据中定义的数组变量

内容的提问来源于stack exchange,提问作者David Brossard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:28:17