--- /dev/null
+import sys, re, os
+import myghty.interp
+import myghty.exception as exception
+
+# document generation library
+
+def genall(comps, component_root, output_dir):
+ interp = myghty.interp.Interpreter( component_root = component_root)
+
+ try:
+ for comp in comps:
+ gendoc(comp, interp, output_dir = output_dir)
+ except exception.Error, e:
+ sys.stderr.write(e.textformat())
+
+
+def gendoc(doccomp, interp, output_dir):
+ component = interp.load(doccomp)
+ files = component.get_attribute('files')
+ index = component.get_attribute('index')
+ onepage = component.get_attribute('onepage')
+
+ genfile(index + ".myt", interp, output_dir)
+
+ for file in files:
+ file += '.myt'
+ genfile(file, interp, output_dir)
+
+ genfile(index + ".myt", interp, output_dir, outfile = onepage + ".html", args = {'paged':'no'})
+
+
+
+def genfile(file, interp, output_dir, outfile = None, args = {}):
+ if outfile is None:
+ outfile = re.sub(r"\..+$", "%s" % '.html', file)
+
+ outfile = os.path.join(output_dir, outfile)
+ print "%s -> %s" % (file, outfile)
+ outbuf = open(outfile, "w")
+
+ interp.execute(file, out_buffer = outbuf, request_args = args, raise_error = True)
+
+ outbuf.close()
+