У меня возникают проблемы с повторным использованием кода шаблона в моих файлах уценки. Например, я хотел бы получить код встраивания для ссылок vimeo и просто передать идентификатор vimeo в вызов.
Один пример макроса:
{% macro vimeoEmbed(id) %}
<iframe src="https://player.vimeo.com/video/{{ id }}?title=0&byline=0&portrait=0" width="300" height="169" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
{% endmacro %}
Для использования следующим образом:
{{ vimeoEmbed(120394634) }}
Это работает, если я определяю макрос напрямую в файле уценки. Но, конечно, я хотел бы иметь глобальный файл с макросом для облегчения обслуживания.
Я пытался использовать Nunjucks {% import "macros.njk" as macros %}
. macros.njk
будет содержать макрос vimeoEmbed
.
Но, к сожалению, я продолжаю получать Error: template names must be a string: undefined
.
В качестве альтернативы я пытался использовать {% include "vimeoEmbed.njk" %}
, но получаю тот же Error: template names must be a string: undefined
.
Кажется, это характерно для metalsmith-in-place
, поскольку include
и import
от Nujucks отлично работают с metalsmith-layouts
.
Приветствуется любое другое решение повторного использования кода в файлах уценки и Nunjucks. Спасибо!