[gi-docgen/ebassi/argument-list] template: Use definition lists for callable arguments




commit c9a93c1196ec80b35670f7a1f887bad411c0e5c2
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Jul 29 20:07:33 2022 +0100

    template: Use definition lists for callable arguments
    
    Tables are hard to size, and they get very wonky on mobile, or narrow
    window widths.
    
    Both MSDN and Apple's developer docs use definition lists for parameters
    to a callable, so might as well follow them.
    
    We can also drop the table for the return value entirely, since the
    return value does not have a name.
    
    Fixes: #123

 gidocgen/templates/basic/class_method.html | 87 +++++++++++++++---------------
 gidocgen/templates/basic/ctor.html         | 87 +++++++++++++++---------------
 gidocgen/templates/basic/function.html     | 87 +++++++++++++++---------------
 gidocgen/templates/basic/method.html       | 87 +++++++++++++++---------------
 gidocgen/templates/basic/signal.html       | 85 ++++++++++++++---------------
 gidocgen/templates/basic/type_func.html    | 83 ++++++++++++++--------------
 gidocgen/templates/basic/vfunc.html        | 87 +++++++++++++++---------------
 7 files changed, 291 insertions(+), 312 deletions(-)
---
diff --git a/gidocgen/templates/basic/class_method.html b/gidocgen/templates/basic/class_method.html
index 30718f7..6c621b7 100644
--- a/gidocgen/templates/basic/class_method.html
+++ b/gidocgen/templates/basic/class_method.html
@@ -96,11 +96,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in class_method.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -108,33 +108,30 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can 
be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>The argument can be set to 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if class_method.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
-        </table>
+        </dl>
       </div>
     </div>
     {% endif %}
@@ -147,10 +144,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nsbp;
             {%- if class_method.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if class_method.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if class_method.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -159,19 +155,20 @@
             {%- else -%}
             <code>{{ class_method.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ class_method.return_value.description|safe }}</td>
-          </tr>
-          {% if class_method.return_value.is_array and class_method.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if class_method.return_value.is_array and class_method.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ class_method.return_value.fixed_size }} elements.</td></tr>{% endif 
%}
-          {% if class_method.return_value.is_array and class_method.return_value.len_arg 
%}<tr><td>&nbsp;</td><td>The length of the array is in the <code>{{ class_method.return_value.len_arg 
}}</code> argument.</td></tr>{% endif %}
-          {% if class_method.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
class_method.return_value.transfer }}">{{ class_method.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if class_method.return_value.is_pointer and class_method.return_value.nullable 
%}<tr><td>&nbsp;</td><td>The return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if class_method.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ 
class_method.return_value.string_note }}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ class_method.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if class_method.return_value.is_array and class_method.return_value.zero_terminated 
%}<tr><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if class_method.return_value.is_array and class_method.return_value.fixed_size > 0 
%}<tr><td>The array has {{ class_method.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if class_method.return_value.is_array and class_method.return_value.len_arg %}<tr><td>The 
length of the array is in the <code>{{ class_method.return_value.len_arg }}</code> argument.</td></tr>{% 
endif %}
+            {% if class_method.return_value.is_pointer %}<tr><td title="transfer: {{ 
class_method.return_value.transfer }}">{{ class_method.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if class_method.return_value.is_pointer and class_method.return_value.nullable %}<tr><td>The 
return value can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if class_method.return_value.string_note %}<tr><td>{{ class_method.return_value.string_note 
}}</td></tr>{% endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/ctor.html b/gidocgen/templates/basic/ctor.html
index e81bf70..eb2f819 100644
--- a/gidocgen/templates/basic/ctor.html
+++ b/gidocgen/templates/basic/ctor.html
@@ -98,11 +98,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in type_func.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -110,33 +110,30 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can 
be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>The argument can be set to 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if type_func.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
-        </table>
+        </dl>
       </div>
     </div>
     {% endif %}
@@ -149,10 +146,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if type_func.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if type_func.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if type_func.return_value.link -%}
@@ -160,19 +156,20 @@
             {%- else -%}
             <code>{{ type_func.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ type_func.return_value.description|safe }}</td>
-          </tr>
-          {% if type_func.return_value.is_array and type_func.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if type_func.return_value.is_array and type_func.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ type_func.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if type_func.return_value.is_array and type_func.return_value.len_arg 
%}<tr><td>&nbsp;</td><td>The length of the array is in the <code>{{ type_func.return_value.len_arg }}</code> 
argument.</td></tr>{% endif %}
-          {% if type_func.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
type_func.return_value.transfer }}">{{ type_func.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if type_func.return_value.is_pointer and type_func.return_value.nullable 
%}<tr><td>&nbsp;</td><td>The return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if type_func.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ 
type_func.return_value.string_note }}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ type_func.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if type_func.return_value.is_array and type_func.return_value.zero_terminated %}<tr><td>The 
array is <code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if type_func.return_value.is_array and type_func.return_value.fixed_size > 0 %}<tr><td>The 
array has {{ type_func.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if type_func.return_value.is_array and type_func.return_value.len_arg %}<tr><td>The length of 
the array is in the <code>{{ type_func.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if type_func.return_value.is_pointer %}<tr><td title="transfer: {{ 
type_func.return_value.transfer }}">{{ type_func.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if type_func.return_value.is_pointer and type_func.return_value.nullable %}<tr><td>The return 
value can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if type_func.return_value.string_note %}<tr><td>{{ type_func.return_value.string_note 
}}</td></tr>{% endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/function.html b/gidocgen/templates/basic/function.html
index 91c3f34..3a72f19 100644
--- a/gidocgen/templates/basic/function.html
+++ b/gidocgen/templates/basic/function.html
@@ -109,11 +109,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in func.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -121,33 +121,30 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can 
be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>The argument can be set to 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if func.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
-        </table>
+        </dl>
       </div>
     </div>
     {% endif %}
@@ -160,10 +157,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if func.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if func.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if func.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -172,19 +168,20 @@
             {%- else -%}
             <code>{{ func.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ func.return_value.description|safe }}</td>
-          </tr>
-          {% if func.return_value.is_array and func.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if func.return_value.is_array and func.return_value.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The 
array has {{ func.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if func.return_value.is_array and func.return_value.len_arg %}<tr><td>&nbsp;</td><td>The length 
of the array is in the <code>{{ func.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if func.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
func.return_value.transfer }}">{{ func.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if func.return_value.is_pointer and func.return_value.nullable %}<tr><td>&nbsp;</td><td>The 
return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if func.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ func.return_value.string_note 
}}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ func.return_value.description|safe }}</td>
+          </div>
+          <div>
+            <table>
+            {% if func.return_value.is_array and func.return_value.zero_terminated %}<tr><td>The array is 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if func.return_value.is_array and func.return_value.fixed_size > 0 %}<tr><td>The array has {{ 
func.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if func.return_value.is_array and func.return_value.len_arg %}<tr><td>The length of the array 
is in the <code>{{ func.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if func.return_value.is_pointer %}<tr><td title="transfer: {{ func.return_value.transfer 
}}">{{ func.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if func.return_value.is_pointer and func.return_value.nullable %}<tr><td>The return value can 
be <code>NULL</code>.</td></tr>{% endif %}
+            {% if func.return_value.string_note %}<tr><td>{{ func.return_value.string_note }}</td></tr>{% 
endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/method.html b/gidocgen/templates/basic/method.html
index 37676f6..744a603 100644
--- a/gidocgen/templates/basic/method.html
+++ b/gidocgen/templates/basic/method.html
@@ -104,11 +104,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in method.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -116,33 +116,30 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can 
be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>The argument can be set to 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if method.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
-        </table>
+        </dl>
       </div>
     </div>
     {% endif %}
@@ -155,10 +152,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if method.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if method.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if method.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -167,19 +163,20 @@
             {%- else -%}
             <code>{{ method.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ method.return_value.description|safe }}</td>
-          </tr>
-          {% if method.return_value.is_array and method.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if method.return_value.is_array and method.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ method.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if method.return_value.is_array and method.return_value.len_arg %}<tr><td>&nbsp;</td><td>The 
length of the array is in the <code>{{ method.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if method.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
method.return_value.transfer }}">{{ method.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if method.return_value.is_pointer and method.return_value.nullable %}<tr><td>&nbsp;</td><td>The 
return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if method.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ method.return_value.string_note 
}}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ method.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if method.return_value.is_array and method.return_value.zero_terminated %}<tr><td>The array 
is <code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if method.return_value.is_array and method.return_value.fixed_size > 0 %}<tr><td>The array 
has {{ method.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if method.return_value.is_array and method.return_value.len_arg %}<tr><td>The length of the 
array is in the <code>{{ method.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if method.return_value.is_pointer %}<tr><td title="transfer: {{ method.return_value.transfer 
}}">{{ method.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if method.return_value.is_pointer and method.return_value.nullable %}<tr><td>The return value 
can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if method.return_value.string_note %}<tr><td>{{ method.return_value.string_note 
}}</td></tr>{% endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/signal.html b/gidocgen/templates/basic/signal.html
index d288e39..90e2c9a 100644
--- a/gidocgen/templates/basic/signal.html
+++ b/gidocgen/templates/basic/signal.html
@@ -105,11 +105,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in signal.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -117,31 +117,28 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>&nbsp;</td><td>The argument can 
be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction in ["inout", "out"] and arg.nullable %}<tr><td>The argument can be set to 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if signal.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
         </table>
       </div>
@@ -156,10 +153,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if signal.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if signal.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if signal.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -168,19 +164,20 @@
             {%- else -%}
             <code>{{ signal.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ signal.return_value.description|safe }}</td>
-          </tr>
-          {% if signal.return_value.is_array and signal.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if signal.return_value.is_array and signal.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ signal.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if signal.return_value.is_array and signal.return_value.len_arg %}<tr><td>&nbsp;</td><td>The 
length of the array is in the <code>{{ signal.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if signal.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
signal.return_value.transfer }}">{{ signal.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if signal.return_value.is_pointer and signal.return_value.nullable %}<tr><td>&nbsp;</td><td>The 
return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if signal.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ signal.return_value.string_note 
}}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ signal.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if signal.return_value.is_array and signal.return_value.zero_terminated %}<tr><td>The array 
is <code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if signal.return_value.is_array and signal.return_value.fixed_size > 0 %}<tr><td>The array 
has {{ signal.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if signal.return_value.is_array and signal.return_value.len_arg %}<tr><td>The length of the 
array is in the <code>{{ signal.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if signal.return_value.is_pointer %}<tr><td title="transfer: {{ signal.return_value.transfer 
}}">{{ signal.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if signal.return_value.is_pointer and signal.return_value.nullable %}<tr><td>The return value 
can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if signal.return_value.string_note %}<tr><td>{{ signal.return_value.string_note 
}}</td></tr>{% endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/type_func.html b/gidocgen/templates/basic/type_func.html
index a87e8c8..3bfca9f 100644
--- a/gidocgen/templates/basic/type_func.html
+++ b/gidocgen/templates/basic/type_func.html
@@ -95,11 +95,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in type_func.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -107,30 +107,27 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.is_pointer and arg.nullable %}<tr><td>&nbsp;</td><td>The 
argument can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction == "out" and arg.is_pointer and arg.nullable %}<tr><td>&nbsp;</td><td>The 
argument can be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.is_pointer and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction == "out" and arg.is_pointer and arg.nullable %}<tr><td>The argument can be 
set to <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if type_func.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
           </tr>
           {% endif %}
         </table>
@@ -146,10 +143,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if type_func.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if type_func.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if type_func.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -158,19 +154,20 @@
             {%- else -%}
             <code>{{ type_func.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ type_func.return_value.description|safe }}</td>
-          </tr>
-          {% if type_func.return_value.is_array and type_func.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if type_func.return_value.is_array and type_func.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ type_func.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if type_func.return_value.is_array and type_func.return_value.len_arg 
%}<tr><td>&nbsp;</td><td>The length of the array is in the <code>{{ type_func.return_value.len_arg }}</code> 
argument.</td></tr>{% endif %}
-          {% if type_func.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
type_func.return_value.transfer }}">{{ type_func.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if type_func.return_value.is_pointer and type_func.return_value.nullable 
%}<tr><td>&nbsp;</td><td>The return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if type_func.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ 
type_func.return_value.string_note }}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ type_func.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if type_func.return_value.is_array and type_func.return_value.zero_terminated %}<tr><td>The 
array is <code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if type_func.return_value.is_array and type_func.return_value.fixed_size > 0 %}<tr><td>The 
array has {{ type_func.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if type_func.return_value.is_array and type_func.return_value.len_arg %}<tr><td>The length of 
the array is in the <code>{{ type_func.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if type_func.return_value.is_pointer %}<tr><td title="transfer: {{ 
type_func.return_value.transfer }}">{{ type_func.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if type_func.return_value.is_pointer and type_func.return_value.nullable %}<tr><td>The return 
value can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if type_func.return_value.string_note %}<tr><td>{{ type_func.return_value.string_note 
}}</td></tr>{% endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}
diff --git a/gidocgen/templates/basic/vfunc.html b/gidocgen/templates/basic/vfunc.html
index 1fdff6a..95a3823 100644
--- a/gidocgen/templates/basic/vfunc.html
+++ b/gidocgen/templates/basic/vfunc.html
@@ -95,11 +95,11 @@
       </h4>
 
       <div class="docblock">
-        <table class="arguments">
+        <dl class="arguments">
           {% for arg in vfunc.arguments %}
-          <tr class="arg-name">
-            <td><code>{{ arg.name }}</code></td>
-            <td>
+          <dt class="arg-name"><code>{{ arg.name }}</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;
             {%- if arg.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if arg.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if arg.link -%}
@@ -107,33 +107,30 @@
             {%- else -%}
             <code>{{ arg.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ arg.description|safe }}</td>
-          </tr>
-          {% if arg.direction != "in" %}<tr><td>&nbsp;</td><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
-          {% if arg.direction == "in" and arg.is_pointer and arg.nullable %}<tr><td>&nbsp;</td><td>The 
argument can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.direction == "out" and arg.is_pointer and arg.nullable %}<tr><td>&nbsp;</td><td>The 
argument can be set to <code>NULL</code>.</td></tr>{% endif %}
-          {% if arg.optional %}<tr><td>&nbsp;</td><td>The argument can be <code>NULL</code>.</td></tr>{% 
endif %}
-          {% if arg.is_array and arg.zero_terminated %}<tr><td>&nbsp;</td><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>&nbsp;</td><td>The array must have {{ 
arg.fixed_size }} elements.</td></tr>{% endif %}
-          {% if arg.is_array and arg.len_arg %}<tr><td>&nbsp;</td><td>The length of the array is specified 
in the <code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if arg.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ arg.transfer }}">{{ 
arg.transfer_note }}</td></tr>{% endif %}
-          {% if arg.string_note %}<tr><td>&nbsp;</td><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </p>
+            <p>{{ arg.description|safe }}</p>
+            <table>
+            {% if arg.direction != "in" %}<tr><td title="direction: {{ arg.direction}}">{{ 
arg.direction_note }}</td></tr>{% endif %}
+            {% if arg.direction == "in" and arg.is_pointer and arg.nullable %}<tr><td>The argument can be 
<code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.direction == "out" and arg.is_pointer and arg.nullable %}<tr><td>The argument can be 
set to <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.optional %}<tr><td>The argument can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if arg.is_array and arg.zero_terminated %}<tr><td>The array must be 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if arg.is_array and arg.fixed_size > 0 %}<tr><td>The array must have {{ arg.fixed_size }} 
elements.</td></tr>{% endif %}
+            {% if arg.is_array and arg.len_arg %}<tr><td>The length of the array is specified in the 
<code>{{ arg.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if arg.is_pointer %}<tr><td title="transfer: {{ arg.transfer }}">{{ arg.transfer_note 
}}</td></tr>{% endif %}
+            {% if arg.string_note %}<tr><td>{{ arg.string_note }}</td></tr>{% endif %}
+            </table>
+          </dd>
           {% endfor %}
+
           {% if vfunc.throws %}
-          <tr class="arg-name">
-            <td><code>error</code></td>
-            <td><code>GError **</code></td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>The return location for a <code>GError*</code>, or <code>NULL</code>.</td>
-          </tr>
+          <dt class="arg-name"><code>error</code></dt>
+          <dd class="arg-description">
+            <p><em>Type:</em>&nbsp;<code>GError **</code></p>
+            <p>The return location for a <code>GError*</code>, or <code>NULL</code>.</p>
+          </dd>
           {% endif %}
-        </table>
+        </dl>
       </div>
     </div>
     {% endif %}
@@ -146,10 +143,9 @@
       </h4>
 
       <div class="docblock">
-        <table class="returns">
-          <tr class="arg-name">
-            <td>Returns:</td>
-            <td>
+        <div class="returns">
+          <div>
+            <p><em>Type:</em>&nbsp;
             {%- if vfunc.return_value.is_array -%}An array of&nbsp;{%- endif -%}
             {%- if vfunc.return_value.is_list -%}A list of&nbsp;{%- endif -%}
             {%- if vfunc.return_value.is_list_model -%}A list model of&nbsp;{%- endif -%}
@@ -158,19 +154,20 @@
             {%- else -%}
             <code>{{ vfunc.return_value.type_cname }}</code>
             {%- endif -%}
-            </td>
-          </tr>
-          <tr class="arg-description">
-            <td>&nbsp;</td>
-            <td>{{ vfunc.return_value.description|safe }}</td>
-          </tr>
-          {% if vfunc.return_value.is_array and vfunc.return_value.zero_terminated 
%}<tr><td>&nbsp;</td><td>The array is <code>NULL</code>-terminated.</td></tr>{% endif %}
-          {% if vfunc.return_value.is_array and vfunc.return_value.fixed_size > 0 
%}<tr><td>&nbsp;</td><td>The array has {{ vfunc.return_value.fixed_size }} elements.</td></tr>{% endif %}
-          {% if vfunc.return_value.is_array and vfunc.return_value.len_arg %}<tr><td>&nbsp;</td><td>The 
length of the array is in the <code>{{ vfunc.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
-          {% if vfunc.return_value.is_pointer %}<tr><td>&nbsp;</td><td title="transfer: {{ 
vfunc.return_value.transfer }}">{{ vfunc.return_value.transfer_note }}</td></tr>{% endif %}
-          {% if vfunc.return_value.is_pointer and vfunc.return_value.nullable %}<tr><td>&nbsp;</td><td>The 
return value can be <code>NULL</code>.</td></tr>{% endif %}
-          {% if vfunc.return_value.string_note %}<tr><td>&nbsp;</td><td>{{ vfunc.return_value.string_note 
}}</td></tr>{% endif %}
-        </table>
+            </p>
+            <p>{{ vfunc.return_value.description|safe }}</p>
+          </div>
+          <div>
+            <table>
+            {% if vfunc.return_value.is_array and vfunc.return_value.zero_terminated %}<tr><td>The array is 
<code>NULL</code>-terminated.</td></tr>{% endif %}
+            {% if vfunc.return_value.is_array and vfunc.return_value.fixed_size > 0 %}<tr><td>The array has 
{{ vfunc.return_value.fixed_size }} elements.</td></tr>{% endif %}
+            {% if vfunc.return_value.is_array and vfunc.return_value.len_arg %}<tr><td>The length of the 
array is in the <code>{{ vfunc.return_value.len_arg }}</code> argument.</td></tr>{% endif %}
+            {% if vfunc.return_value.is_pointer %}<tr><td title="transfer: {{ vfunc.return_value.transfer 
}}">{{ vfunc.return_value.transfer_note }}</td></tr>{% endif %}
+            {% if vfunc.return_value.is_pointer and vfunc.return_value.nullable %}<tr><td>The return value 
can be <code>NULL</code>.</td></tr>{% endif %}
+            {% if vfunc.return_value.string_note %}<tr><td>{{ vfunc.return_value.string_note }}</td></tr>{% 
endif %}
+            </table>
+          </div>
+        </div>
       </div>
     </div>
     {% endif %}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]