解决液体标签内的液体变量

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

Recent Diversions

{% 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 %}

{{ a_image }}

{{ a_link }} by {{ a_authors }}

{% endfor %}

我的理解是{%capture variable_name%} … {%endcaputre%}呈现封装的内容并将结果分配给variable_name。 但是,当我生成网站时,不会生成任何内容。 如果我将单个asin替换为捕获标记内的asin引用,则页面将正确呈现。

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

我终于把它排除了。 上面显示的代码位于名为aws.html的文件中,该文件包含在站点的主index.html中。 似乎Liquid不允许在该级别进行变量分配。 当我将变量赋值移动到_config.yml文件,即asins:[“044656432X”,“0743276396”,“B001YT048E”]时,上面的代码完美无缺。