diff options
Diffstat (limited to 'resumejson_converter/generators/html.py')
-rw-r--r-- | resumejson_converter/generators/html.py | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/resumejson_converter/generators/html.py b/resumejson_converter/generators/html.py index 1b34e91..b1d2802 100644 --- a/resumejson_converter/generators/html.py +++ b/resumejson_converter/generators/html.py @@ -1,14 +1,14 @@ import os.path as path -import sys import codecs import logging import jinja2 +from jinja2.exceptions import TemplateSyntaxError import resumejson_converter.filters as filters -def generate(resume, template, out_path): +def generate(resume, template, out_path=None): """ Return html version of a JSON resume based on a template. @@ -32,18 +32,22 @@ def generate(resume, template, out_path): try: template = env.get_template(template_name) except jinja2.exceptions.TemplateNotFound: - logging.exception("File not found: '{}'!" - .format(template)) - sys.exit(1) + logging.error("File not found: '{}'!" + .format(template)) + raise html = template.render(dict(resume=resume)) - except jinja2.exceptions.TemplateSyntaxError as e: - logging.exception("Syntax error in template file '{}' line {}: {}" - .format(e.name, e.lineno, e.message)) - sys.exit(1) + except TemplateSyntaxError as e: + logging.error("Syntax error in template file '{}' line {}: {}" + .format(e.name, e.lineno, e.message)) + raise else: logging.info("HTML generation done.") if out_path: - file = codecs.open(out_path, "w", "utf-8-sig") - file.write(html) - file.close + try: + file = codecs.open(out_path, "w", "utf-8-sig") + file.write(html) + file.close + except IOError: + logging.error("Permission error when writing html file!") + raise return html |