Skip to content

Commit

Permalink
#66 and #68
Browse files Browse the repository at this point in the history
  • Loading branch information
hkir-dev committed May 4, 2021
1 parent 9a8a5be commit 4d66edd
Show file tree
Hide file tree
Showing 2 changed files with 258 additions and 264 deletions.
14 changes: 8 additions & 6 deletions src/dosdp/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def handle_one_of_definitions(plain_documentation):
definitions = content["definitions"]
for key in definitions.keys():
if "oneOf" in definitions[key]:
element_lines = ["One of:"]
element_lines = ["- **`annotations`** *(array)*: One of the followings:"]
one_of_defs = definitions[key]["oneOf"]
for one_of_item in one_of_defs:
element_lines.append(" - **Items**: Refer to *"+one_of_item["$ref"]+"*.")
Expand All @@ -99,19 +99,21 @@ def print_documentation_header(doc_type_elements, md_out):
md_out.write("\n")


def print_element(element, md_out, plain_doc, prefix=""):
def print_element(element, md_out, plain_doc, prefix="", nesting_list=[]):
"""
Retrieves plain element documentation generated by the jsonschema2md and writes to the document.
Additionally expands 'definitions' references to a specified depth (see NESTED_REFERENCE_LIMIT)
in order to prevent indefinite circular references.
"""
lines = plain_doc[element]
for line in lines:
md_out.write("%s\n" % (prefix + line))
if CROSS_REF_TERM in line and len(prefix) < NESTED_REFERENCE_LIMIT:
md_out.write("%s\n" % (prefix + (" " * (len(nesting_list) % 2)) + line))
if CROSS_REF_TERM in line:
nesting_list.append(element)
ref_term_start = line.index(CROSS_REF_TERM) + len(CROSS_REF_TERM)
referred_element = line[ref_term_start:len(line) - 2]
print_element(DEFINITION_PREFIX + referred_element, md_out, plain_doc, ">"+prefix)
if (DEFINITION_PREFIX + referred_element) not in nesting_list:
print_element(DEFINITION_PREFIX + referred_element, md_out, plain_doc, ">"+prefix, nesting_list)


def print_section_header(config, md_out, section):
Expand Down Expand Up @@ -175,7 +177,7 @@ def generate_documentation(yaml_schema):
print_section_header(config, md_out, section)

for element in elements:
print_element(element, md_out, plain_doc)
print_element(element, md_out, plain_doc, nesting_list=[])
md_out.write("\n\n")


Expand Down
Loading

0 comments on commit 4d66edd

Please sign in to comment.