举个例子,在 CommonMark 中,如果我输入:
http://example.com
然后这将被转换为:
<a href="http://example.com">http://example.com</a>
此标签具有 2 倍的
http://example.com
,这是绝对必要的 - 一个用于呈现为 <a>
标签的正文,另一个作为 href
。
在 Jinja/Flask 中,这可以通过以下方式完成:
<a href="{{ url_for('something') }}">{{ url_for('something') }}</a>
这有效,但我忍不住觉得应该有更好的方法。我想我可以做一些事情,比如编写自己的函数并将其注入到 Jinja 上下文中,这样我就可以做类似的事情:
a(url_for('example.page'), _self=True)
有更好的办法吗?
然后将外部Python函数注入jinja2,您可以简单地定义一个jinja2宏来为您呈现链接。
{% macro render_link(url) %}
<a href="{{ url }}">{{ url }}</a>
{% endmacro %}
然后将宏导入到您打算使用它的模板中并调用它。
{{ render_link(url_for('something')) }}