Files
splash/tools/info2md.py
2018-03-05 14:46:28 -05:00

53 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
# This script convert a json string received from
# 'splash --info' through pipe to Markdown
import json
import sys
from io import StringIO
if __name__ == "__main__":
jsonString = ""
firstLine = True
for line in sys.stdin:
if firstLine:
if line[0] != "{":
continue
firstLine = False
jsonString += line
io = StringIO(jsonString)
json = json.load(io)
objects_descriptions = dict()
objects_short_descriptions = dict()
objects_attributes = dict()
for data in json:
if type(json[data]) == str:
if data.find("_short_description") != -1:
objType = data[:data.find("_short_description")]
objects_short_descriptions[objType] = json[data]
elif data.find("_description") != -1:
objType = data[:data.find("_description")]
objects_descriptions[objType] = json[data]
elif type(json[data]) == dict:
attributes = "Attributes:\n\n"
for attr in json[data]:
if json[data][attr] == "":
continue
attributes += "- " + attr + ": " + json[data][attr] + "\n"
attributes += "\n"
objects_attributes[data] = attributes
for data in json:
if data.find("_description") != -1 or data.find("_short_description") != -1:
continue
description = objects_descriptions.get(data)
short_description = objects_short_descriptions.get(data)
print("#### {} - {}\n".format(data, short_description))
if description is not None:
print("{}\n".format(description))
print(objects_attributes[data])