#!/usr/bin/python import glob import markdown import os import shutil from datetime import datetime # from finch import FinchLexer TEMPLATE = """ Wren - {title} Fork me on GitHub

wren

a minimal class-based scripting language

{title}

{html}
""" def format_file(path): basename = os.path.basename(path) basename = basename.split('.')[0] title = "" # Read the markdown file and preprocess it. contents = "" with open(path, "r") as input: # Read each line, preprocessing the special codes. for line in input: stripped = line.lstrip() indentation = line[:len(line) - len(stripped)] if stripped.startswith("^"): command,_,args = stripped.rstrip("\n").lstrip("^").partition(" ") args = args.strip() if command == "title": title = args else: print "UNKNOWN COMMAND:", command, args else: contents = contents + line html = markdown.markdown(contents, ['def_list', 'codehilite']) modified = datetime.fromtimestamp(os.path.getmtime(path)) mod_str = modified.strftime('%B %d, %Y') fields = {'title': title, 'html': html, 'mod': mod_str} # Write the html output. with open("build/site/" + basename + ".html", 'w') as out: out.write(TEMPLATE.format(**fields)) print "converted", basename # Clean the output directory. if os.path.exists("build/site"): shutil.rmtree("build/site") os.mkdir("build/site") # Process each markdown file. for f in glob.iglob("doc/site/*.markdown"): format_file(f) # Copy the CSS file. shutil.copyfile("doc/site/style.css", "build/site/style.css")