Разрешить переменную жидкости внутри тега жидкости

Я использую 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 внутри тега захвата, чтобы это работало?


person Mark Nichols    schedule 31.08.2011    source источник
comment
‹p›{{ asin | amazon_medium_image }}‹/p› не работает. Похоже, asin не решает. Кроме того, ‹p›{{ {{asin}} | amazon_medium_image }}‹/p› также не разрешается.   -  person Mark Nichols    schedule 07.09.2011
comment
Я думаю, что тег захвата жидкости создает строку, которая, например, не будет работать для захвата изображения. Сейчас мне нужно просто скопировать/вставить раздел для каждого элемента, который я хочу отобразить.   -  person Mark Nichols    schedule 07.09.2011
comment
Я наконец разобрался с этим. Показанный выше код находится в файле с именем aws.html, который включен в основной файл index.html сайта. Кажется, что Liquid не позволяет присваивать значения переменным на этом уровне. Когда я перемещаю назначение переменной в файл _config.yml, т. е. asins: ["044656432X", "0743276396", "B001YT048E"], приведенный выше код работает отлично.   -  person Mark Nichols    schedule 11.09.2011
comment
См. также: stackoverflow.com/questions/7919644/   -  person nickf    schedule 01.12.2011


Ответы (1)


Я наконец разобрался с этим. Показанный выше код находится в файле с именем aws.html, который включен в основной файл index.html сайта. Кажется, что Liquid не позволяет присваивать значения переменным на этом уровне. Когда я перемещаю назначение переменной в файл _config.yml, т. е. asins: ["044656432X", "0743276396", "B001YT048E"], приведенный выше код работает отлично.

person Mark Nichols    schedule 12.09.2011