def main(argv=sys.argv[:]): template_folder = os.path.join(os.getcwd(), 'templates') renderer = Renderer( template_folder=template_folder, contexts=[ ('index.html', get_works), ]) renderer.run(debug=True, use_reloader=False) return 0
if filename.startswith(('.', '_')): return False if not filename.endswith('.html'): return False return True def dont_render(*args, **kwargs): print "Rendering..." pass if options.customwatch: options.dont_stop = True renderer = Renderer(outpath='./output', rules=[('.*.tmp', dont_render), ('.*.swx', dont_render), ('.*.swp', dont_render)]) renderer._env.filters["markdown"] = markdown_filter renderer._env.filters['datetimeformat'] = datetimeformat renderer.filter_func = filter_func renderer.run(debug=True, use_reloader=not options.dont_stop) if options.customwatch: import easywatch def handler(file, handler): print "Detected changes: rendering again." renderer.run(debug=True, use_reloader=False) print "Render finished. Watching for changes..." print "Watching out for changes..." easywatch.watch("./templates", handler)
def parse_csv(filename): """Parse a CSV into a list.""" with open(filename, 'rbU') as f: for line in csv.DictReader(f): yield line def index(): counter = collections.defaultdict(list) for player in parse_csv('data/players.csv'): counter[player['name']].append({ 'file': player['file'], 'line': player['line'] }) players = ({ 'name': k, 'score': len(v), 'methods': sorted(v) } for k, v in counter.iteritems()) return { 'players': sorted(players, key=lambda p: int(p['score']), reverse=True) } if __name__ == "__main__": renderer = Renderer(contexts=[ ('index.html', index), ]) renderer.run(debug=True, use_reloader=True)
def watch_templates(): print 'Monitoring templates...' renderer = Renderer(outpath="html") renderer.run(debug=True, use_reloader=True)
import csv import collections from staticjinja import Renderer def parse_csv(filename): """Parse a CSV into a list.""" with open(filename, "rbU") as f: for line in csv.DictReader(f): yield line def index(): counter = collections.defaultdict(list) for player in parse_csv("data/players.csv"): counter[player["name"]].append({"file": player["file"], "line": player["line"]}) players = ({"name": k, "score": len(v), "methods": sorted(v)} for k, v in counter.iteritems()) return {"players": sorted(players, key=lambda p: int(p["score"]), reverse=True)} if __name__ == "__main__": renderer = Renderer(contexts=[("index.html", index)]) renderer.run(debug=True, use_reloader=True)