Макрос Nunjucks не найден, если во вложенных папках

#macros #nunjucks #client-side-templating

#макросы #nunjucks #создание шаблонов на стороне клиента

Вопрос:

У меня следующая структура:

шаблоны
— base.njk

страницы
— index.njk

компоненты // мой макрос
кнопка
— кнопка.njk
— button.scss

Поэтому, когда я делаю импорт моего макроса на своей странице: {% import 'button/button.njk' as btn %}
Это не работает, он загружает кнопку, потому что он не говорит, что не может найти шаблон, но когда я пытаюсь вызвать свой макрос: {{ btn() }}
Выдает сообщение об ошибке:

Невозможно вызвать «btn», который не является функцией

но когда его нет в папке «кнопка», он работает.

Я просто хочу знать, есть ли способ сохранить эту структуру и заставить это работать?

Спасибо

Ответ №1:

Попробуйте

 {{ btn.your-macros-name() }}
  

или

 {% from 'button/button.njk' import your-macros-name as btn %}
{{ btn() }}
  

Ответ №2:

вы должны использовать свой код следующим образом, вы можете импортировать его в любой файл .njk или .html, кроме button.njk

{% импортировать «button.njk» как btn %}