mirror of
https://github.com/public-apis/public-apis
synced 2024-11-28 08:51:41 +01:00
Add Markdown To JSON converter in Python3
This commit is contained in:
parent
948031c4a1
commit
f1c4916ba0
44
build/md2json.py
Executable file
44
build/md2json.py
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import json
|
||||
|
||||
|
||||
def markdown_to_json(filename, anchor):
|
||||
"""Convert a Markdown file into a JSON string"""
|
||||
category = ""
|
||||
entries = []
|
||||
with open(filename) as fp:
|
||||
lines = (line.rstrip() for line in fp)
|
||||
lines = list(line for line in lines if line \
|
||||
and line.startswith(anchor) or line.startswith('| '))
|
||||
for line in lines:
|
||||
if line.startswith(anchor):
|
||||
category = line.split()[1]
|
||||
continue
|
||||
chunks = [x.strip() for x in line.split('|')[1:-1]]
|
||||
entry = {
|
||||
'API': chunks[0],
|
||||
'Description': chunks[1],
|
||||
'Auth': None if chunks[2].upper() == 'NO' else chunks[2].strip('`'),
|
||||
'HTTPS': True if chunks[3].upper() == 'YES' else False,
|
||||
'Link': chunks[4].replace('[Go!]', '')[1:-1],
|
||||
'Category': category,
|
||||
}
|
||||
entries.append(entry)
|
||||
return json.dumps(entries)
|
||||
|
||||
|
||||
def main():
|
||||
num_args = len(sys.argv)
|
||||
if num_args < 2:
|
||||
print("No .md file passed")
|
||||
sys.exit(1)
|
||||
if num_args < 3:
|
||||
anchor = '###'
|
||||
else:
|
||||
anchor = sys.argv[2]
|
||||
print(markdown_to_json(sys.argv[1], anchor))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user