-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgenerate-site.py
executable file
·66 lines (51 loc) · 2.08 KB
/
generate-site.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
#!/usr/bin/env python
import json
import os
from jinja2 import Environment, FileSystemLoader, select_autoescape
from argparse import ArgumentParser
DEFAULT_RWP = "https://cdn.jsdelivr.net/npm/[email protected]"
DEFAULT_DOMAIN = "https://sup.webrecorder.net/"
def main(args=None):
""" Generate the html for:
- Each project page using templates/proj-template.html
- Index with links to each project from templates/index-template.html
"""
parser = ArgumentParser()
parser.add_argument("-p", "--prefix", default=DEFAULT_RWP)
parser.add_argument("-d", "--domain", default=DEFAULT_DOMAIN)
res = parser.parse_args(args=args)
rwp_prefix = res.prefix.rstrip("/")
env = Environment(
loader=FileSystemLoader("templates"),
autoescape=select_autoescape(["html", "xml"]),
trim_blocks=True,
lstrip_blocks=True,
)
with open(os.path.join("data", "projects.json")) as fh:
projects = json.loads(fh.read())
# generate project templates
for project in projects["projects"]:
template = env.get_template("proj-template.html")
res_text = template.render(project=project, rwp_prefix=rwp_prefix)
with open(project["filename"], "wt") as fh:
print("Generating Project ({0})".format(project["filename"]))
fh.write(res_text)
# generate index template
template = env.get_template("index-template.html")
index = template.render(projects=projects["projects"])
with open("index.html", "wt") as fh:
print("Generate Index (index.html)")
fh.write(index)
# generate README
template = env.get_template("README-template.md")
readme = template.render(projects=projects["projects"], domain=res.domain)
with open("README.md", "wt") as fh:
print("Generate README (README.md)")
fh.write(readme)
# generate sw
template = env.get_template("sw.js")
with open(os.path.join("replay", "sw.js"), "wt") as fh:
print("Generate SW (sw.js)")
fh.write(template.render(rwp_prefix=rwp_prefix))
if __name__ == "__main__":
main()