首页 > 解决方案 > 在循环内部,非循环变量没有从 Markdown、Pandoc 和 YAML 中的循环变量中获取数组

问题描述

仔细观察最后一个变量mais,它将从变量中获取数组icones

---

gnome: 'gnome'

icones:
  - {nome: actions}
  - {nome: apps}
  - {nome: devices}
  - {nome: mimetypes}
  - {nome: places}
  - {nome: status}

mais:
  - {url: 'filename.com/$icones.nome$/logo=$gnome$'}

---
$for(icones)$
  <img alt="$icones.nome$"   name="$icones.nome$"   src="https://$mais.url$"/>
$endfor$

item会成功获取到所有变量,但是变量$mais.url$不会获取到数组变量。

结果如下:

<img alt="actions"   name="actions"   src="https://"/>
<img alt="apps"   name="apps"   src="https://"/>
<img alt="devices"   name="devices"   src="https://"/>
<img alt="mimetypes"   name="mimetypes"   src="https://"/>
<img alt="places"   name="places"   src="https://"/>
<img alt="status"   name="status"   src="https://"/>

它应该是这样的:

<img alt="actions"   name="actions"   src="https://filename.com/actions/logo=gnome"/>
<img alt="apps"      name="apps"      src="https://filename.com/apps/logo=gnome"/>
<img alt="devices"   name="devices"   src="https://filename.com/devices/logo=gnome"/>
<img alt="mimetypes" name="mimetypes" src="https://filename.com/mimetypes/logo=gnome"/>
<img alt="places"    name="places"    src="https://filename.com/places/logo=gnome"/>
<img alt="status"    name="status"    src="https://filename.com/status/logo=gnome"/>

标签: htmlfor-loopyamlmarkdownpandoc

解决方案


$icones$仅指icones: for 循环内的单个项目,即不在 的值内mais:。同样, for 循环遍历$icones$,因此$mais$不引用mais:序列的单个值。

你可以这样做:

mais:
  - {url: {front: "filename.com/", back: "/logo=$gnome$"}}

接着:

$for(icones)$
  <img alt="$icones.nome$"   name="$icones.nome$"   src="https://$mais.first.url.front$$icones.nome$$mais.first.url.back$"/>
$endfor$

推荐阅读