]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Add support for the extends block
authorKevin <kevin@kevin-brown.com>
Tue, 12 May 2020 01:10:26 +0000 (21:10 -0400)
committerKevin <kevin@kevin-brown.com>
Tue, 12 May 2020 01:10:26 +0000 (21:10 -0400)
new_parser.py
test_template.jinja

index ea79e95d779e69722edbb99f55ae7e0e8558fcf5..c55d91d9a659576d94e63e269aa8e9df0888b633 100644 (file)
@@ -67,6 +67,9 @@ def parse(ast):
 def parse_block(ast):\r
     block_name = ast['block']['name']\r
 \r
+    if block_name == 'extends':\r
+        return parse_block_extends(ast)\r
+\r
     if block_name == 'from':\r
         return parse_block_from(ast)\r
 \r
@@ -126,6 +129,11 @@ def parse_block_block(ast):
         lineno=lineno_from_parseinfo(ast['parseinfo'])\r
     )\r
 \r
+def parse_block_extends(ast):\r
+    return nodes.Extends(\r
+        parse_conditional_expression(ast['block']['parameters'][0]['value'])\r
+    )\r
+\r
 def parse_block_for(ast):\r
     target = None\r
     iter = None\r
index afad4325d86b1c01bab3c6c4e249ab2dd9546799..ad3035c904f54b07986a9e41774564ee7cd1b962 100644 (file)
@@ -64,4 +64,5 @@ across lines #}
         'id': 'list-%d'|format(variable)}|xmlattr }}>\r
 ...\r
 </ul>\r
-{{ "[{}]".format(page.title) if page.title }}
\ No newline at end of file
+{{ "[{}]".format(page.title) if page.title }}\r
+{% extends layout_template if layout_template is defined else 'master.html' %}
\ No newline at end of file