Add other details about the new dependency loading.
diff --git a/JavascriptCSSDependencies.wiki b/JavascriptCSSDependencies.wiki
index d58013b..c629c75 100644
--- a/JavascriptCSSDependencies.wiki
+++ b/JavascriptCSSDependencies.wiki
@@ -24,6 +24,7 @@
 So, in each template you can create an array like this:
 
 {{{
+{% block dependencies %}
 [
   dep.melange.menu,
   null,
@@ -31,6 +32,36 @@
   tc(
     "soc/content/js/templates/modules/gsoc/program/list/allocation-100413.js",
     {"slots_number": 25}
-  )
+  ),
+  function (do_something()); 
 ]
+{% endblock %}
 }}}
+
+=== The dep object ===
+
+In the _dep_ object you can find all the dependencies that are included in the _melange.dependency_ script. You can notice that all the arrays are now found in this _dep_ object instead of the _s_ object, which is internal in the _melange.dependency_script. This has been done to make it more intuitive to use when writing Django templates. You can also notice that _dep.melange.menu_ then refers to _s.melange.menu_ in the _melange.dependency_ script, which is an array of arrays in itself.
+This means that you can still nest arrays of dependencies in the Django templates.
+
+=== null ===
+
+As for the _melange.dependency_ script, if you put a _null_ as an element of the array, the following scripts will wait to evaluate before the previous ones are evaluated.
+
+=== css(css_path) ===
+
+The *css(css_path)* method is actually a shortcut for *melange.dependency.cssFile(css_path)*. This has been renamed for conveniency.
+This method will create a new {{{ <link> }}} tag in the HTML file, so the browser will download the CSS file and evaluate it in the page.
+This facility should be used when the absence of the CSS won't compromise the overall rendering of the page, for example when we want to include CSS files that are needed for a widget that is only displayed once something in the page happens or after a Javascript file is evaluated.
+The reason for this is pretty obvious: dynamic linking a CSS file when the page is already displayed to the user will make the page look suddenly different after some time, disorienting the user.
+So, basically, global CSS files or CSS styles that are *immediately* needed in the page should still be linked using a {{{ <link> }}} tag in the _stylesheet_ Django block on the top of the page.
+
+=== tc(script_path, context) ===
+
+The *tc(script_path, context)* method is actually a shortcut for *melange.dependency.templateWithContext(script_path, context)*. This has been renamed for conveniency.
+This method will take care of downloading the script related to the template, evaluate it and then it will inject the context.
+This was formerly done using the {{{ melangeContext }}} attribute of the script tag. So now there is no need to convert the JSON object to a string for the attribute, but you can just put the plain JSON file inside the context parameter of this function calling.
+All the {{{ tc() }}} calls are *synchronous*. This means that it automatically evaluates itself as {{{ [null, tc(), null] }}}. The reason to do this is because there is no way for JS scripts to know about their context in the page (e.g. pass some parameters from the Django template to the JS scope), so we need a small hack to make them so and attach them a context. When a JS template is loaded, it will register itself in a global "template queue" hosted in the main _melange-YYMMDD.js_ file, in the _melange.templates_ object. The context is then attached to the *last* template that has been registered. So we can't allow another template to be attached before the former one has been coupled with a context.
+
+=== function() ===
+
+You can also attach a custom inline function, which is a sort of callback that is called after the previous scripts are loaded and evaluated in the browser. This is discouraged unless really necessary, though: all the logic should be put outside the Django template in the separate JS template file.
\ No newline at end of file