--- /dev/null
+``with``
+========
+
+.. versionadded:: 1.28
+ The ``with`` tag was added in Twig 1.28.
+
+Use the ``with`` tag to create a new inner scope. Variables set within this
+scope are not visible outside of the scope:
+
+.. code-block:: jinja
+
+ {% with %}
+ {% set foo = 42 %}
+ {{ foo }} foo is 42 here
+ {% endwith %}
+ foo is not visible here any longer
+
+Instead of defining variables at the beginning of the scope, you can pass a
+hash of variables you want to define in the ``with`` tag; the previous example
+is equivalent to the following one:
+
+.. code-block:: jinja
+
+ {% with { foo: 42 } %}
+ {{ foo }} foo is 42 here
+ {% endwith %}
+ foo is not visible here any longer
+
+ {# it works with any expression that resolves to a hash #}
+ {% set vars = { foo: 42 } %}
+ {% with vars %}
+ ...
+ {% endwith %}
+
+By default, the inner scope has access to the outer scope context; you can
+disable this behavior by appending the ``only`` keyword:
+
+.. code-block:: jinja
+
+ {% set bar = 'bar' %}
+ {% with { foo: 42 } only %}
+ {# only foo is defined #}
+ {# bar is not defined #}
+ {% endwith %}