documented recursive loops
authorArmin Ronacher <armin.ronacher@active-4.com>
Sun, 11 May 2008 21:55:02 +0000 (23:55 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Sun, 11 May 2008 21:55:02 +0000 (23:55 +0200)
--HG--
branch : trunk

docs/templates.rst

index ea19e2d55abcdd525235e8a972e0a73854394514..90d4099da1498631c35890802b4aa22d4f7e2105 100644 (file)
@@ -455,6 +455,22 @@ by using `else`::
     {% endif %}
     </ul>
 
+It is also possible to use loops recursively.  This is useful if you are
+dealing with recursive data such as sitemaps.  To use loops recursively you
+basically have to add the `recursive` modifier to the loop definition and
+call the `loop` variable with the new iterable where you want to recurse.
+
+The following example implements a sitemap with recursive loops::
+
+    <ul class="sitemap">
+    {%- for item in sitemap recursive %}
+        <li><a href="{{ item.href|e }}">{{ item.title }}</a>
+        {%- if item.children -%}
+            <ul class="submenu">{{ loop(item.children) }}</ul>
+        {%- endif %}</li>
+    {%- endfor %}
+    </ul>
+
 
 If
 ~~