Clean up rendering and complete types and refs

go-templates
Eric Holscher 9 years ago
parent 84cce0ee59
commit 15f82b4eaf

@ -5,7 +5,6 @@ class AutoAPIBase(object):
language = 'base'
type = 'base'
header = '-'
def __init__(self, obj):
self.obj = obj
@ -16,7 +15,7 @@ class AutoAPIBase(object):
template = env.get_template(
'{language}/{type}.rst'.format(language=self.language, type=self.type)
)
ctx.update(**self.obj)
ctx.update(**self.__dict__)
return template.render(**ctx)

@ -10,76 +10,76 @@ class DotNetBase(AutoAPIBase):
def __init__(self, obj):
super(DotNetBase, self).__init__(obj)
self.name = obj['qualifiedName']['CSharp']
if hasattr(obj, 'sort'):
# Always exist
self.id = obj['id']
self.type = obj['type']
# Use name or id
try:
self.name = obj['qualifiedName']['CSharp']
except:
self.name = self.id
self.short_name = self.name.split('.')[-1]
self.namespace = self.name.split('.')[0]
# Optional
self.summary = obj.get('summary', '')
if 'syntax' in obj:
self.syntax = obj['syntax']['content']['CSharp']
else:
self.syntax = ''
self.children = obj.get('items', [])
if self.children:
self.item_map = defaultdict(list)
self.sort()
def render(self, ctx=None):
if not ctx:
ctx = {}
added_ctx = {
'underline': len(self.name) * self.header
}
added_ctx.update(**ctx)
return super(DotNetBase, self).render(ctx=added_ctx)
def sort(self):
from .utils import classify
for item in self.children:
if 'type' not in item:
print "Missing Type: %s" % item
continue
classified = classify(item, 'dotnet')
self.item_map[item['type']].append(classified)
class DotNetNamespace(DotNetBase):
type = 'namespace'
header = '='
class DotNetMethod(DotNetBase):
type = 'method'
header = '-'
class DotNetProperty(DotNetBase):
type = 'property'
header = '-'
class DotNetEnum(DotNetBase):
type = 'enum'
header = '-'
class DotNetStruct(DotNetBase):
type = 'struct'
header = '-'
class DotNetConstructor(DotNetBase):
type = 'constructor'
header = '-'
class DotNetInterface(DotNetBase):
type = 'interface'
header = '-'
class DotNetDelegate(DotNetBase):
type = 'delegate'
header = '-'
class DotNetClass(object):
def __init__(self, obj):
self.obj = obj
self.item_map = defaultdict(list)
self.sort()
class DotNetClass(DotNetBase):
type = 'class'
def sort(self):
from .utils import classify
for item in self.obj.get('items', []):
if 'type' not in item:
print "Missing Type: %s" % item
continue
self.item_map[item['type']].append(classify(item, 'dotnet'))
def render(self, indent=4):
# print "Rendering class %s" % self.obj['name']
self.obj['underline'] = len(self.obj['qualifiedName']['CSharp']) * "#"
template = env.get_template('dotnet/class.rst')
ctx = self.obj
ctx.update(dict(
ctors=self.item_map['Constructor'],
methods=self.item_map['Method'],
attributes=self.item_map['Property'],
))
return template.render(**ctx)
class DotNetField(DotNetBase):
type = 'field'
class DotNetEvent(DotNetBase):
type = 'event'

@ -1,11 +1,11 @@
.. {{ type.lower() }}:: {{ name }}
.. {{ obj.type.lower() }}:: {{ obj.name }}
{% if summary %}
{{ summary }}
{{ obj.summary }}
{% endif %}
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ obj.syntax.content.CSharp }}

@ -1,7 +1,7 @@
{{ name.CSharp }}
{{ underline }}
{{ short_name }} {{ type.title()}}
{{ "=" * (short_name|length + type|length + 1) }}
.. dn:class:: {{ qualifiedName.CSharp }}
.. dn:class:: {{ name }}
Summary
-------
@ -12,51 +12,30 @@ Inheritance Hierarchy
---------------------
{% for item in inheritance %}
* {{ item.id }}
* :ref:`{{ item.id }}`
{% endfor %}
Syntax
------
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ syntax }}
Class Information
-----------------
{% if item_map %}
{% if ctors %}
{% for ctor in ctors %}
{% macro render() %}{{ ctor.render() }}{% endmacro %}
{{ render()|indent(3) }}
{%- endfor %}
{% endif %}
{% if methods %}
{% for method in methods %}
{% macro render() %}{{ method.render() }}{% endmacro %}
{{ render()|indent(3) }}
{%- endfor %}
{% endif %}
{% for obj_type, obj_list in item_map.items() %}
{{ obj_type }}
{{ "-" * obj_type|length }}
{% for obj_item in obj_list %}
{% macro render() %}{{ obj_item.render() }}{% endmacro %}
{{ render()|indent(0) }}
{% endfor %}
{% if methods %}
{% for method in attributes %}
{% endfor %}
{% macro render() %}{{ method.render() }}{% endmacro %}
{{ render()|indent(3) }}
{%- endfor %}
{% endif %}
{% endif %}

@ -1,4 +1,4 @@
.. dn:{{ type.lower() }}:: {{ qualifiedName.CSharp }}
.. dn:{{ type.lower() }}:: {{ name }}
{% if summary %}
@ -9,4 +9,4 @@
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ syntax }}

@ -1,7 +1,7 @@
{{ name.CSharp }}
{{ underline }}
{{ short_name }}
{{ "=" * short_name|length }}
.. dn:delegate:: {{ qualifiedName.CSharp }}
.. dn:delegate:: {{ name }}
{% if summary %}
@ -12,4 +12,4 @@
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ syntax }}

@ -1,13 +1,39 @@
{{ name.CSharp }}
{{ underline }}
{{ short_name }} {{ type.title()}}
{{ "=" * (short_name|length + type|length + 1) }}
.. dn:enumeration:: {{ qualifiedName.CSharp }}
.. dn:enumeration:: {{ name }}
{% if summary %}
{% macro render() %}{{ summary }}{% endmacro %}
{{ render()|indent(4) }}
{% endif %}
Summary
-------
.. code-block:: csharp
{{ summary }}
{{ syntax.content.CSharp }}
Inheritance Hierarchy
---------------------
{% for item in inheritance %}
* :ref:`{{ item.id }}`
{% endfor %}
Syntax
------
.. code-block:: csharp
{{ syntax }}
{% if item_map %}
{% for obj_type, obj_list in item_map.items() %}
{{ obj_type }}
{{ "-" * obj_type|length }}
{% for obj_item in obj_list %}
{% macro render() %}{{ obj_item.render() }}{% endmacro %}
{{ render()|indent(0) }}
{% endfor %}
{% endfor %}
{% endif %}

@ -0,0 +1,12 @@
.. dn:{{ type.lower() }}:: {{ name }}
{% if summary %}
{% macro render() %}{{ summary }}{% endmacro %}
{{ render()|indent(4) }}
{% endif %}
.. code-block:: csharp
{{ syntax }}

@ -0,0 +1,12 @@
.. dn:{{ type.lower() }}:: {{ name }}
{% if summary %}
{% macro render() %}{{ summary }}{% endmacro %}
{{ render()|indent(4) }}
{% endif %}
.. code-block:: csharp
{{ syntax }}

@ -1,13 +1,40 @@
{{ name.CSharp }}
{{ underline }}
{{ short_name }} {{ type.title()}}
{{ "=" * short_name|length }}{{ "=" * type|length }}=
.. dn:{{ type.lower() }}:: {{ qualifiedName.CSharp }}
.. dn:interface:: {{ name }}
{% if summary %}
{% macro render() %}{{ summary }}{% endmacro %}
{{ render()|indent(4) }}
{% endif %}
Summary
-------
.. code-block:: csharp
{{ summary }}
{{ syntax.content.CSharp }}
Inheritance Hierarchy
---------------------
{% for item in inheritance %}
* :ref:`{{ item.id }}`
{% endfor %}
Syntax
------
.. code-block:: csharp
{{ syntax }}
{% if item_map %}
{% for obj_type, obj_list in item_map.items() %}
{{ obj_type }}
{{ "-" * obj_type|length }}
{% for obj_item in obj_list %}
{% macro render() %}{{ obj_item.render() }}{% endmacro %}
{{ render()|indent(0) }}
{% endfor %}
{% endfor %}
{% endif %}

@ -1,4 +1,4 @@
.. dn:{{ type.lower() }}:: {{ qualifiedName.CSharp }}
.. dn:{{ type.lower() }}:: {{ name }}
{% if summary %}
@ -9,4 +9,4 @@
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ syntax }}

@ -1,18 +1,21 @@
{{ name.CSharp }} Namespace
{{ underline }}{{ underline }}
{{ short_name }} {{ type.title()}}
{{ "=" * short_name|length }}{{ "=" * type|length }}=
Tree:
{% if children %}
.. toctree::
:hidden:
{% for obj in items %}
/autoapi/{{ obj.type }}/{{ obj.id.split('.')[-1] }} {% endfor %}
{% for item in children %}
/autoapi/{{ item.type }}/{{ item.id.split('.')[-1] }} {% endfor %}
{% endif %}
Table:
{% if items %}
{% if children %}
.. list-table:: Classes
:widths: 20, 80
@ -20,8 +23,8 @@ Table:
* - Class
- Description
{% for obj in items %} {% macro render() %}{{ obj.summary }}{% endmacro %}
* - :dn:{{ obj.type.lower().replace('class', 'cls').replace('interface', 'iface') }}:`{{ obj.id }}`
{% for item in children %} {% macro render() %}{{ item.summary }}{% endmacro %}
* - :dn:{{ item.type.lower().replace('class', 'cls').replace('interface', 'iface').replace('delegate', 'del') }}:`{{ item.id }}`
- {{ render()|indent(7) }}
{% endfor %}

@ -1,4 +1,4 @@
.. dn:{{ type.lower() }}:: {{ qualifiedName.CSharp }}
.. dn:{{ type.lower() }}:: {{ name }}
{% if summary %}
@ -9,4 +9,4 @@
.. code-block:: csharp
{{ syntax.content.CSharp }}
{{ syntax }}

@ -1,15 +1,39 @@
{{ name.CSharp }}
{{ underline }}
{{ short_name }} {{ type.title()}}
{{ "=" * short_name|length }}{{ "=" * type|length }}=
.. dn:structure:: {{ qualifiedName.CSharp }}
.. dn:structure:: {{ name }}
{% if summary %}
Summary
-------
{% macro render() %}{{ summary }}{% endmacro %}
{{ render()|indent(4) }}
{{ summary }}
{% endif %}
Inheritance Hierarchy
---------------------
.. code-block:: csharp
{% for item in inheritance %}
* :ref:`{{ item.id }}`
{% endfor %}
{{ syntax.content.CSharp }}
Syntax
------
.. code-block:: csharp
{{ syntax }}
{% if item_map %}
{% for obj_type, obj_list in item_map.items() %}
{{ obj_type }}
{{ "-" * obj_type|length }}
{% for obj_item in obj_list %}
{% macro render() %}{{ obj_item.render() }}{% endmacro %}
{{ render()|indent(0) }}
{% endfor %}
{% endfor %}
{% endif %}

@ -2,7 +2,7 @@ from .base import UnknownType
from .dotnet import (
DotNetNamespace, DotNetClass, DotNetMethod, DotNetProperty,
DotNetEnum, DotNetConstructor, DotNetStruct, DotNetInterface,
DotNetDelegate
DotNetDelegate, DotNetField, DotNetEvent
)
from .python import PythonModule, PythonClass, PythonFunction
@ -37,4 +37,8 @@ def classify(obj, obj_type):
return DotNetInterface(obj)
if obj['type'] == 'Delegate':
return DotNetDelegate(obj)
if obj['type'] == 'Field':
return DotNetField(obj)
if obj['type'] == 'Event':
return DotNetEvent(obj)
return UnknownType(obj)

Loading…
Cancel
Save