Я использую Octopress, который является фреймворком для Jekyll для рендеринга моего сайта. Я использую плагин, который оборачивает драгоценный камень ruby-aaws, разрешая запросы к Amazon, используя идентификатор продукта Amazon (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 внутри тега захвата, чтобы это работало?
aws.html
, который включен в основной файлindex.html
сайта. Кажется, что Liquid не позволяет присваивать значения переменным на этом уровне. Когда я перемещаю назначение переменной в файл_config.yml
, т. е.asins: ["044656432X", "0743276396", "B001YT048E"]
, приведенный выше код работает отлично. - person Mark Nichols   schedule 11.09.2011