Мне нужно отформатировать ссылку в определенных местах моего приложения Бутылка.Ранее все ссылки были в одном файле SimpleTemplate, и я определил макрос, который выглядит следующим образом:
%def mylink(obj):
<a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end
Везде, где мне нужно было отформатировать ссылку на obj
, я использовал:
%mylink(some_obj)
Теперь мне нужно использовать форматирование таких ссылок в нескольких шаблонах.Я переместил определение шаблона в отдельный файл с именем macros.html
, затем попытался %include
вставить этот файл в шаблоны, где мне нужен макрос:
<!-- macros.html -->
%def mylink(obj):
<a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end
<!-- somepage.html -->
%include macros
...
%mylink(some_obj)
...
Однако, Bottle не может разрешить имя mylink
в таком раскладе.
Я понимаю, что могу сделать это:
<!-- mylink.html -->
<a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
<!-- somepage.html -->
...
%include mylink obj=some_obj
...
Однако я не хочу этого делать, так как чувствую, что это не очень быстро (у меня многоссылки для форматирования на любой странице).
Не хватает ли других опций?