我正在使用Octopress,这是一个用于Jekyll渲染我的站点的框架。我使用的是一个封装ruby-aaws gem的插件,允许使用Amazon的产品标识符(asin)查询Amazon。我想循环呈现页面的一部分,遍历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 %}...{% endcapute%}呈现封装的内容,并将结果分配给variable_name。但是,当我生成站点时,没有生成任何内容。如果我用一个单独的asin代替捕获标记中的asin引用,页面就会正确呈现。
我应该如何正确地引用捕获标记中的asin变量才能使其正常工作?
发布于 2011-09-12 11:11:02
我终于解决了这个问题。上面显示的代码位于一个名为aws.html的文件中,该文件包含在站点的主index.html中。看起来Liquid不允许在那个级别进行变量赋值。当我将变量赋值移到_config.yml文件中时,例如:"044656432X","0743276396","B001YT048E“,那么上面的代码就能正常工作。
https://stackoverflow.com/questions/7259385
复制相似问题