我需要在我的 Bottle 应用程序的某些地方格式化一个链接。以前所有链接都在一个 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
...
但是,我不愿意这样做,因为我觉得这不是很快(我在任何给定页面上都有很多格式化链接)。
我错过了其他一些选择吗?