Add event table template. Also inspect arrays for objects.

pull/977/head
Kegan Dougal 9 years ago
parent 0899e0b772
commit a42a22028c

@ -18,6 +18,7 @@
"description": "Array of objects describing the candidates.",
"items": {
"type": "object",
"title": "Candidate",
"properties": {
"sdpMid": {
"type": "string",

@ -79,9 +79,12 @@ def main(file_stream=None, out_dir=None):
return code
def indent(input, indent):
def indent_block(input, indent):
return input.replace("\n", ("\n" + " "*indent))
def indent(input, indent):
return " "*indent + input
def wrap(input, wrap=80):
return '\n'.join(textwrap.wrap(input, wrap))
@ -92,6 +95,7 @@ def main(file_stream=None, out_dir=None):
)
env.filters["jsonify"] = jsonify
env.filters["indent"] = indent
env.filters["indent_block"] = indent_block
env.filters["wrap"] = wrap
# load up and parse the lowest single units possible: we don't know or care

@ -53,7 +53,7 @@ def _load_schemas():
for key_name in props:
value_type = None
required = key_name in required_keys
desc = props[key_name].get("description")
desc = props[key_name].get("description", "")
if props[key_name]["type"] == "object":
if props[key_name].get("additionalProperties"):
@ -67,8 +67,19 @@ def _load_schemas():
props[key_name],
enforce_title=True
)
value_type = nested_object[0]["title"]
value_type = "{%s}" % nested_object[0]["title"]
tables += nested_object
elif props[key_name]["type"] == "array":
# if the items of the array are objects then recurse
if props[key_name]["items"]["type"] == "object":
nested_object = get_content_fields(
props[key_name]["items"],
enforce_title=True
)
value_type = "[%s]" % nested_object[0]["title"]
tables += nested_object
else:
value_type = "[%s]" % props[key_name]["type"]
else:
value_type = props[key_name]["type"]
@ -76,7 +87,8 @@ def _load_schemas():
"key": key_name,
"type": value_type,
"required": required,
"desc": desc
"desc": desc,
"req_str": "**Required.** " if required else ""
})
return tables

@ -1,9 +1,23 @@
``{{event.type}}``
{{(4 + event.type | length) * '-'}}
{{event.desc}}
{{event.desc or ""}}
{% for table in event.content_fields -%}
{{"``"+table.title+"``" if table.title else ""}}
{{event.content_fields | jsonify(4,4)}}
================== ================= ===========================================
Key Type Description
================== ================= ===========================================
{% for row in table.rows -%}
{# -#}
{# Row type needs to prepend spaces to line up with the type column (19 ch) -#}
{# Desc needs to prepend the required text (maybe) and prepend spaces too -#}
{# It also needs to then wrap inside the desc col (43 ch width) -#}
{# -#}
{{row.key}}{{row.type|indent(19-row.key|length)}}{{row.req_str | indent(18 - (row.type|length))}}{{row.desc|wrap(43)|indent_block(37)}}
{% endfor -%}
================== ================= ===========================================
{% endfor %}
Example::
{{example.content | jsonify(4, 4)}}

Loading…
Cancel
Save