-
Notifications
You must be signed in to change notification settings - Fork 1
/
generate_readme.py
73 lines (60 loc) · 1.75 KB
/
generate_readme.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# This files has to be launched from the same directory:
# $ python3 ./generate_readme.py
from glob import glob
import os
import json
parts = []
# Walk through all sub-folders.
# Generate a README for each folder and memorize the data about the parts.
paths = glob("*/part.json")
for path in paths:
dir = os.path.dirname(path)
print("Generating README.md in " + dir + "...")
part = json.loads(open(path).read())
if "url" in part:
desc = "[" + part["desc"] + "](" + part["url"] + ")"
else:
desc = part["desc"]
contents = (
"# [goBILDA](https://www.gobilda.com/) parts\n"
+ "## "
+ desc
+ "\n\n"
+ "**Patented**\n\n"
+ "<img alt='"
+ part["desc"]
+ "' src='../../../generated_files/parts/gobilda/"
+ dir
+ ".svg'/>\n"
)
readme = open(dir + "/README.md", "w+")
readme.write(contents)
readme.close()
part["dir"] = dir
parts.append(part)
# Now sort the parts to keep the top level README's table normalized.
parts = sorted(parts, key=lambda x: x["dir"])
# Generate the README file in the top level folder.
print("Generating README.md in the current folder...")
contents = """
# openvmp-parts-gobilda
OpenVMP parts that can be purchased from [goBILDA](https://www.gobilda.com/).
See [openvmp-models](https://github.com/openvmp/openvmp-models) for more info.
| Part | Image |
| -- | -- |
"""
readme = open("./README.md", "w+")
readme.write(contents)
for part in parts:
readme.write(
"| ["
+ part["desc"]
+ "]("
+ part["dir"]
+ ") | <img alt='"
+ part["desc"]
+ "' src='../../generated_files/parts/gobilda/"
+ part["dir"]
+ ".svg' width='300' /> |\n"
)
readme.close()