Add event table template. Also inspect arrays for objects.
This commit is contained in:
parent
0899e0b772
commit
a42a22028c
4 changed files with 37 additions and 6 deletions
|
@ -18,6 +18,7 @@
|
||||||
"description": "Array of objects describing the candidates.",
|
"description": "Array of objects describing the candidates.",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
"title": "Candidate",
|
||||||
"properties": {
|
"properties": {
|
||||||
"sdpMid": {
|
"sdpMid": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|
|
@ -79,9 +79,12 @@ def main(file_stream=None, out_dir=None):
|
||||||
|
|
||||||
return code
|
return code
|
||||||
|
|
||||||
def indent(input, indent):
|
def indent_block(input, indent):
|
||||||
return input.replace("\n", ("\n" + " "*indent))
|
return input.replace("\n", ("\n" + " "*indent))
|
||||||
|
|
||||||
|
def indent(input, indent):
|
||||||
|
return " "*indent + input
|
||||||
|
|
||||||
def wrap(input, wrap=80):
|
def wrap(input, wrap=80):
|
||||||
return '\n'.join(textwrap.wrap(input, wrap))
|
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["jsonify"] = jsonify
|
||||||
env.filters["indent"] = indent
|
env.filters["indent"] = indent
|
||||||
|
env.filters["indent_block"] = indent_block
|
||||||
env.filters["wrap"] = wrap
|
env.filters["wrap"] = wrap
|
||||||
|
|
||||||
# load up and parse the lowest single units possible: we don't know or care
|
# 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:
|
for key_name in props:
|
||||||
value_type = None
|
value_type = None
|
||||||
required = key_name in required_keys
|
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]["type"] == "object":
|
||||||
if props[key_name].get("additionalProperties"):
|
if props[key_name].get("additionalProperties"):
|
||||||
|
@ -67,8 +67,19 @@ def _load_schemas():
|
||||||
props[key_name],
|
props[key_name],
|
||||||
enforce_title=True
|
enforce_title=True
|
||||||
)
|
)
|
||||||
value_type = nested_object[0]["title"]
|
value_type = "{%s}" % nested_object[0]["title"]
|
||||||
tables += nested_object
|
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:
|
else:
|
||||||
value_type = props[key_name]["type"]
|
value_type = props[key_name]["type"]
|
||||||
|
|
||||||
|
@ -76,7 +87,8 @@ def _load_schemas():
|
||||||
"key": key_name,
|
"key": key_name,
|
||||||
"type": value_type,
|
"type": value_type,
|
||||||
"required": required,
|
"required": required,
|
||||||
"desc": desc
|
"desc": desc,
|
||||||
|
"req_str": "**Required.** " if required else ""
|
||||||
})
|
})
|
||||||
return tables
|
return tables
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,23 @@
|
||||||
``{{event.type}}``
|
``{{event.type}}``
|
||||||
{{(4 + event.type | length) * '-'}}
|
{{(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::
|
||||||
|
|
||||||
{{example.content | jsonify(4, 4)}}
|
{{example.content | jsonify(4, 4)}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue