| Index: includes/interface.tmpl | 
| diff --git a/includes/interface.tmpl b/includes/interface.tmpl | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..190658bfbf7579db660a073dd259677f841657f3 | 
| --- /dev/null | 
| +++ b/includes/interface.tmpl | 
| @@ -0,0 +1,89 @@ | 
| +{% macro description(key_name, open="<p>", close="</p>") %} | 
| +  {% for i in range(100) %} | 
| +    {% if i == 0 and key_name in localedata %} | 
| +      {{open |safe}}{{ key_name |translate(None, links[key_name])|unescape|safe }}{{close |safe}} | 
| +    {% elif (key_name + i|string) in localedata %} | 
| +      {{open |safe}}{{ (key_name + i|string) |translate(None, links[key_name])|unescape|safe }}{{close |safe}} | 
| +    {% endif %} | 
| +  {% endfor %} | 
| +{% endmacro %} | 
| + | 
| +{% macro return_type(return_type) %} | 
| +  {% if return_type |truncate(1, True, "") == "I" %} | 
| +    {{ return_type |linkify }} | 
| +      {{ return_type -}} | 
| +    </a> | 
| +  {% else %} | 
| +    {{ return_type }} | 
| +  {% endif %} | 
| +{% endmacro %} | 
| + | 
| +{% block body %} | 
| +  {% set interface=interface|parse_interface %} | 
| + | 
| +  <h2>{{ "methods_and_properties" |translate }}</h2> | 
| +  <ul> | 
| +    {% for property in interface %} | 
| +      {% if property.type == "method" %} | 
| +        <li> | 
| +          {{ return_type(property.return_type) }} | 
| +          <a href="#method_{{ property.name }}" class="methodname">{{ property.name }}</a> | 
| +          ( | 
| +          {% for argument in property.arguments %} | 
| +            {{ argument.type }} {{argument.name }} | 
| +            {%- if not loop.last %},{% endif %} | 
| +          {% endfor %} | 
| +          ) | 
| +        </li> | 
| +      {% else %} | 
| +      <li> | 
| +        {{ property.modifier }} {{ property.type }} | 
| +        <a href="#prop_{{ property.name }}" class="propname">{{ property.name }}</a> | 
| +      </li> | 
| +      {% endif %} | 
| +    {% endfor %} | 
| +  </ul> | 
| + | 
| +  {% for property in interface %} | 
| +    {% if property.type == "method" %} | 
| +      <hr> | 
| +      <p id="method_{{ property.name }}"> | 
| +        {{ return_type(property.return_type) }} | 
| +        <span class="methodname">{{ property.name }}</span> | 
| +        ( | 
| +        {% for argument in property.arguments %} | 
| +          {{ argument.modifier }} {{ argument.type }} {{ argument.name }} | 
| +          {%- if not loop.last %},{% endif %} | 
| +        {% endfor %} | 
| +        ) | 
| +      </p> | 
| +      {{ description(property.name + "Description") }} | 
| +      <dl> | 
| +        {% if property.version %} | 
| +          <dt>Version:</dt> | 
| +          <dd>{{ property.version }} and higher</dd> | 
| +        {% endif %} | 
| +        {% if property.arguments |length %} | 
| +          <dt>Arguments:</dt> | 
| +          {% for argument in property.arguments %} | 
| +            <dd> | 
| +              <span class="argumentname">{{ argument.name }}</span>: | 
| +              {{ description(property.name + "Argument" + argument.name + "Description", "", "") }} | 
| +            </dd> | 
| +          {% endfor %} | 
| +        {% endif %} | 
| +        {% if (property.name + "ReturnDescription") in localedata %} | 
| +          <dt>Returns:</dt> | 
| +          <dd>{{ (property.name + "ReturnDescription") |translate(None, links[property.name + "ReturnDescription"])|unescape|safe }}</dd> | 
| +        {% endif %} | 
| +      </dl> | 
| +     {% else %} | 
| +      <hr> | 
| +      <p id="prop_{{ property.name }}"> | 
| +        {{ property.modifier }} {{ property.type }} | 
| +        <span class="propname">{{ property.name }}</span> | 
| +      </p> | 
| +      <p>{{ description(property.name + "Description") }}</p> | 
| +    {% endif %} | 
| +  {% endfor %} | 
| +{% endblock %} | 
|  |