_scripts/convert-recipes-docs.py (67 lines of code) (raw):

#!/usr/bin/python import sys from os import listdir, makedirs from os.path import isfile, join, exists import shutil if len(sys.argv) != 3: print "Usage: ./convert-recipes.py <inputDocsDir> <outputDocsDir>" sys.exit(-1) input_dir = sys.argv[1] output_dir = sys.argv[2] args = output_dir.rpartition("/docs") url_prefix = args[1] + args[2] release_ver = url_prefix.split("/")[3] github_prefix = "https://github.com/apache/fluo-recipes/blob/{0}/modules/".format(release_ver) javadocs_prefix = "{{ site.api_static }}/fluo-recipes-FIXME/" + release_ver + "/" def path_to_url(path): if path.find("#") != -1: print "WARNING - URL references anchor tag #: ", path.strip() url = url_prefix + path.rpartition("/")[2].replace(".md", "/") if url.endswith("/index/"): return url.replace("/index/", "/") return url def convert_file(inPath, outPath): print "Creating ", outPath with open(inPath) as fin: # skip license line = '' while not line.startswith('-->'): line = fin.readline().strip() # read title title = '' while len(title) == 0: title = fin.readline().strip() title = title.lstrip(' #').strip() fin.readline() if inPath.endswith("README.md"): title = "Fluo Recipes {0} Documentation".format(release_ver) with open(outPath, "w") as fout: print >> fout, "---" print >> fout, "layout: recipes-doc" print >> fout, "title:", title print >> fout, "version:", release_ver print >> fout, "---" if inPath.endswith("README.md"): fin.readline() fin.readline() for line in fin: if line.startswith("["): if line.find(".md") != -1: for word in line.split(' '): if word.find(".md") != -1: fout.write(path_to_url(word)) else: fout.write(word+" ") elif line.find("../modules") != -1: if line.strip().endswith(".java"): start = line.find("../modules/") end = line.find("org/apache/fluo") fout.write(line.replace(line[start:end], javadocs_prefix).replace(".java", ".html")) else: fout.write(line.replace("../modules/", github_prefix)) else: fout.write(line) else: fout.write(line) convert_file(join(input_dir,"../README.md"), join(output_dir, "index.md")) for f in listdir(input_dir): fn = join(input_dir, f) if isfile(fn) and fn.endswith(".md"): convert_file(fn, join(output_dir, f))