import subprocess LINK = "https://github.com/ekalinin/github-markdown-toc" OUTPUT = "readme.md" OUTLINE = "outline.md" INPUT = [ "essential/introduction_to_linux.md", "essential/introduction_to_the_commandline.md", "essential/introduction_to_administration.md", "advanced/learning_bash_scripting.md" ] CMD = "gh-md-toc" FILTER = "(#" TITLE = "Table of Contents" if __name__ == "__main__": try: p = subprocess.Popen([CMD], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = p.communicate() except Exception as e: print("please install {}".format(LINK)) exit() CONTENT = [] for f in INPUT: p = subprocess.Popen([CMD, f], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = p.communicate() output = output.decode().split("\n") for line in output: if FILTER in line: line = line.replace(FILTER, "(./{}#".format(f)) if TITLE in line: title = " ".join(f.replace(".md", "").split("_")).capitalize() title = title.replace("/", ": ") line = title CONTENT.append(line) p = subprocess.Popen(["cp", OUTLINE, OUTPUT], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p.wait() print("writing") with open(OUTPUT, "a") as fp: for line in CONTENT: fp.write("{}\n".format(line)) print("done...")