Document context processors' variable functions
diff --git a/docs/templating.rst b/docs/templating.rst
index bd940b0e49..15433f2a4a 100644
--- a/docs/templating.rst
+++ b/docs/templating.rst
@@ -186,3 +186,22 @@ The context processor above makes a variable called `user` available in
 the template with the value of `g.user`.  This example is not very
 interesting because `g` is available in templates anyways, but it gives an
 idea how this works.
+
+It is also possible to inject functions that can have any number of
+arguments::
+
+    @app.context_processor
+    def price_formatter():
+        def loader(amount, currency=u'€'):
+            return u'{0:.2f}{1}.format(amount, currency)
+    return dict(format_price=loader)
+
+The above construct registers a "variable" function called
+`format_price` which can then be used in template::
+
+    {{ format_price(0.33) }}
+
+The difference from regular context processor' variables is that functions
+are evaluated upon template rendering compared to variables whose values
+are created during `app` startup . Therefore "variable" functions make it
+possible to inject dynamic data into templates.

Document a way to use functions via context processors. The example isn't the best one, but I couldn't figure out a better one.
