擅长:python、mysql、java
<p>原来我应该用<code>nodes.CallBlock</code>而不是<code>nodes.Output</code>。应用该更改,<code>parse</code>和<code>_render</code>函数如下所示:</p>
<pre><code>...
def parse(self, parser):
tag = parser.stream.next()
args = [parser.parse_expression()]
if parser.stream.skip_if('comma'):
args.append(parser.parse_expression())
return nodes.CallBlock(self.call_method('_render', args),
[], [], []).set_lineno(tag.lineno)
def _render(self, value, name, *args, **kwargs):
return '<meta property="{}" content="{}" />'.format(value, name)
</code></pre>
<p>希望这对某些人有所帮助,因为Jinja2扩展引用(尤其是对于非块标记)不容易获得:)</p>