def c2rst(app, docname, source): """ Pre-parse '.c' & '.h' files that contain rST source. """ # Make sure we're outputting HTML if app.builder.format != 'html': return fname = app.env.doc2path(docname) if (not fname.endswith(".c") and not fname.endswith(".h")): #print("skipping:", fname) return src = source[0] stripped = [] for line in src.split("\n"): line = line.strip() if line == "//|": stripped.append("") elif line.startswith("//| "): stripped.append(line[len("//| "):]) stripped = "\r\n".join(stripped) rendered = app.builder.templates.render_string( stripped, app.config.html_context ) source[0] = rendered def setup(app): app.connect("source-read", c2rst)