Files
definitive-opensource/source/scripts/utils/md_to_json.py

49 lines
1.4 KiB
Python

import json
import re
def parse_readme(readme_path):
with open(readme_path, 'r', encoding='utf-8') as file:
lines = file.readlines()
applications = []
category = None
for line in lines:
line = line.strip()
# Match category headers
category_match = re.match(r"^### (.+)", line)
if category_match:
category = category_match.group(1).lower().replace(" ", "-")
continue
# Match application entries with optional tag
app_match = re.match(r"\| \[(.+)\]\((https://github.com/[^)]+)\)(?: `([^`]+)`)? \| (.+?) \| (.+?) \|", line)
if app_match and category:
name, link, tag, description, platforms = app_match.groups()
applications.append({
"name": name,
"description": description,
"repo_url": link,
"tags": [tag] if tag else [],
"platforms": platforms.split(),
"category": category
})
return applications
def save_to_json(data, output_path):
with open(output_path, 'w', encoding='utf-8') as file:
json.dump(data, file, indent=4, ensure_ascii=False)
if __name__ == "__main__":
readme_path = "README.md" # Update with actual path
output_path = "applications.json"
parsed_data = parse_readme(readme_path)
save_to_json(parsed_data, output_path)
print(f"Converted README to {output_path}")