#!/usr/bin/python3 import argparse import os import sys import chapters import fragments import helper # Compiles a presentation in the given language from the given directory and # stores it in a corresponding slides.lang.html file inside the same directory. def compile(root, language='en', force_recompile=False): wrapper = open(os.path.join(root, 'layouts/root.html'), 'r').read() compiled_chapters = chapters.compile_chapters(root, language, force_recompile) wrapper = wrapper.replace('@slides', compiled_chapters) wrapper = helper.insert_metadata(wrapper, root, language) wrapper = fragments.defragmentize(wrapper) with open(os.path.join(root, 'slides.' + language + '.html'), 'w+') as output: output.write(wrapper) print('done') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("rootdirectory", help="your project's root directory") parser.add_argument("-l", "--language", default="all", help="the presentation language (default: all)") parser.add_argument("-f", "--force-recompile", action='store_true', help="recompiling the entire presentation without caches") args = parser.parse_args() force_recompile = False or args.force_recompile if args.language == "all": for language in helper.get_available_languages(args.rootdirectory): compile(args.rootdirectory, language=language, force_recompile=force_recompile) else: compile(args.rootdirectory, language=args.language, force_recompile=force_recompile)