Bottle アプリケーションの特定の場所でリンクをフォーマットする必要があります。以前は、すべてのリンクが 1 つの SimpleTemplate ファイルにあり、次のようなマクロを定義しました。
%def mylink(obj):
<a class="mylink" href="{{ get_url('view', id=obj.id) }}">{{ obj.title }}</a>
%end
へのリンクをフォーマットする必要がある場合は常にobj
、次を使用しました。
%mylink(some_obj)
ここで、いくつかのテンプレートでこのようなリンクの形式を使用する必要があります。テンプレート定義を という別のファイルに移動し、マクロが必要なテンプレートにこのファイルを ingmacros.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
...
ただし、これはあまり高速ではないと感じているため、これを行うのは気が進まない (任意のページに書式設定するためのリンクが多数あります)。
他のオプションがありませんか?