【问题标题】:Inside a loop, the non-loop variable did not get the array from the loop variables in Markdown, Pandoc and YAML在循环内部,非循环变量没有从 Markdown、Pandoc 和 YAML 中的循环变量中获取数组
【发布时间】:2020-01-20 16:58:18
【问题描述】:

仔细观察最后一个变量mais,它会从变量icones中得到数组:

  • Markdown 文件中的 YAML:
---

gnome: 'gnome'

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

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

---
  • 在另一个 Markdown 文件中:
$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"/>

【问题讨论】:

  • 我想那些是 pandoc 模板文件,或者..?你怎么称呼pandoc?什么版本?
  • 啊,不应该是$mais.first.url$而不是$mais.url$
  • @mb21,是的,没错,我在 Arch Linux 上的 Pandoc 版本是 2.8。我运行命令pandoc variables.md --template readme-dev.md -o readme-test.md。
  • 是的,比如:&lt;img alt="$icones.nome$" name="$icones.nome$" src="https://$mais.first.url$"/&gt;

标签: html for-loop yaml markdown pandoc


【解决方案1】:

$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$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多