Open source Star Ruler 2 source code!
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/python
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
from mako.template import Template
|
||||
from mako.lookup import TemplateLookup
|
||||
import pprint
|
||||
|
||||
|
||||
def main(infile, outdir):
|
||||
# Load JSON
|
||||
data = json.load(open(infile))
|
||||
tmpl = TemplateLookup(directories=["source/doc/"])
|
||||
tmpl_engine = ""
|
||||
tmpl_edata = None
|
||||
|
||||
def render(template, filename, data):
|
||||
result = tmpl.get_template(template).render(
|
||||
engine = tmpl_engine,
|
||||
data = tmpl_edata,
|
||||
**data)
|
||||
with open(os.path.join(outdir, filename), "w") as fl:
|
||||
fl.write(result)
|
||||
|
||||
# Render CSS
|
||||
render("template.styles.css", "styles.css", data)
|
||||
render("template.top.html", "index.html", data)
|
||||
|
||||
# Output data files
|
||||
for engine, edata in data.items():
|
||||
tmpl_engine = engine
|
||||
tmpl_edata = edata
|
||||
edata["classmap"] = {c["name"] for c in edata["classes"]}
|
||||
edata["enummap"] = {e["name"] for e in edata["enums"]}
|
||||
|
||||
render("template.index.html", "%s.index.html" % engine, edata)
|
||||
render("template.globals.html", "%s.globals.html" % engine, edata)
|
||||
render("template.functions.html", "%s.functions.html" % engine, edata)
|
||||
|
||||
for cls in edata["classes"]:
|
||||
render("template.class.html", "%s.class.%s.html" % (engine, cls["name"]), cls)
|
||||
|
||||
for en in edata["enums"]:
|
||||
render("template.enum.html", "%s.enum.%s.html" % (engine, en["name"]), en)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
infile = sys.argv[1] if len(sys.argv) >= 2 else "api_documentation.json"
|
||||
outdir = sys.argv[2] if len(sys.argv) >= 3 else "api_documentation/"
|
||||
try:
|
||||
os.makedirs(outdir)
|
||||
except:
|
||||
pass
|
||||
main(infile, outdir)
|
||||
|
||||
# vim: ff=unix :
|
||||
Reference in New Issue
Block a user