def generate_html(source, sections, preserve_paths=True, outdir=None): """ Once all of the code is finished highlighting, we can generate the HTML file and write out the documentation. Pass the completed sections into the template found in `resources/pycco.html`. Pystache will attempt to recursively render context variables, so we must replace any occurences of `{{`, which is valid in some languages, with a "unique enough" identifier before rendering, and then post-process the rendered template and change the identifier back to `{{`. """ if not outdir: raise TypeError("Missing the required 'outdir' keyword argument") title = path.basename(source) dest = destination(source, preserve_paths=preserve_paths, outdir=outdir) csspath = path.relpath(path.join(outdir, "pycco.css"), path.split(dest)[0]) for sect in sections: sect["code_html"] = re.sub(r"\{\{", r"__DOUBLE_OPEN_STACHE__", sect["code_html"]) rendered = pycco_template({ "title": title, "stylesheet": csspath, "sections": sections, "source": source, }) return re.sub(r"__DOUBLE_OPEN_STACHE__", "{{", rendered).encode("utf-8")
def generate_index(files, outdir): """ Given a list of generated documentation files, generate HTML to display index of all files. """ tree = build_tree(files, outdir) rendered = pycco_template({ "title": 'Index', "stylesheet": 'pycco.css', "sections": {'docs_html': generate_tree_html(tree)}, "source": '', }) return re.sub(r"__DOUBLE_OPEN_STACHE__", "{{", rendered).encode("utf-8")
def generate_index(files, outdir): """ Given a list of generated documentation files, generate HTML to display index of all files. """ tree = build_tree(files, outdir) rendered = pycco_template({ "title": 'Index', "stylesheet": 'pycco.css', "sections": { 'docs_html': generate_tree_html(tree) }, "source": '', }) return re.sub(r"__DOUBLE_OPEN_STACHE__", "{{", rendered).encode("utf-8")
def generate_html(source, sections, preserve_paths=True, outdir=None): """ Once all of the code is finished highlighting, we can generate the HTML file and write out the documentation. Pass the completed sections into the template found in `resources/pycco.html`. Pystache will attempt to recursively render context variables, so we must replace any occurences of `{{`, which is valid in some languages, with a "unique enough" identifier before rendering, and then post-process the rendered template and change the identifier back to `{{`. """ if not outdir: raise TypeError("Missing the required 'outdir' keyword argument") title = path.basename(source) dest = destination(source, preserve_paths=preserve_paths, outdir=outdir) csspath = path.relpath(path.join(outdir, "pycco.css"), path.split(dest)[0]) for sect in sections: sect["code_html"] = re.sub( r"\{\{", r"__DOUBLE_OPEN_STACHE__", sect["code_html"]) rendered = pycco_template({ "title": title, "stylesheet": csspath, "sections": sections, "source": source, }) html = re.sub(r"__DOUBLE_OPEN_STACHE__", "{{", rendered).encode("utf-8") html += ''' <script type="text/x-mathjax-config"> MathJax.Hub.Config({ config: ["MMLorHTML.js"], jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"], extensions: ["MathMenu.js", "MathZoom.js"] }); </script> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script> ''' return html