1

我正在使用 Octopress,它是 Jekyll 渲染我的网站的框架。我正在使用一个包含 ruby​​-aaws gem 的插件,允许使用亚马逊的产品标识符(asin)查询亚马逊。我想反复渲染页面的一部分,循环遍历一个 asins 列表以产生输出。到目前为止,这是我的代码:

<section>
  <h1>Recent Diversions</h1>
  {% for asin in ["044656432X", "0743276396", "B001YT048E"] %}
    {% capture a_image %}{{ asin | amazon_medium_image }}{% endcapture %}
    {% capture a_link %}{{ asin | amazon_link }}{% endcapture %}
    {% capture a_authors %}{{ asin | amazon_authors }}{% endcapture %}

    <p>{{ a_image }}</p>
    <p>{{ a_link }} by {{ a_authors }}</p>
  {% endfor %}
</section>

我的理解是 {% capture variable_name %}...{% endcaputre %} 呈现封装的内容并将结果分配给 variable_name。但是,当我生成站点时,什么都没有生成。如果我用单个 asin 替换捕获标记中的 asin 引用,则页面将正确呈现。

我应该如何正确引用捕获标签内的 asin 变量以使其工作?

4

1 回答 1

0

我终于解决了这个问题。上面显示的代码位于名为 aws.html 的文件中,该文件包含在站点的主 index.html 中。Liquid 似乎不允许在该级别进行变量分配。当我将变量赋值移动到 _config.yml 文件时,即 asins: ["044656432X", "0743276396", "B001YT048E"] 那么上面的代码可以完美运行。

于 2011-09-12T03:11:01.853 回答