diff --git a/verdandi/constants.py b/verdandi/constants.py index ff92f5d..d95d0ee 100644 --- a/verdandi/constants.py +++ b/verdandi/constants.py @@ -3,5 +3,8 @@ OUTPUT_DIRECTORY = "rendered_root" TEMPLATE_DIRECTORY = "templates" CONTENT_DIRECTORY = "content" +MARKDOWN_EXTENSIONS = ['markdown.extensions.sane_lists', + 'markdown.extensions.tables'] + SERVE_PORT = 8000 diff --git a/verdandi/mixins/templatemixin.py b/verdandi/mixins/templatemixin.py index 4c99456..3a14570 100644 --- a/verdandi/mixins/templatemixin.py +++ b/verdandi/mixins/templatemixin.py @@ -11,14 +11,22 @@ class TemplateMixin(object): return self.context def render(self, output_directory, jinja_env): - template = jinja_env.get_template(self.template) - html = template.render(self.get_context()) + context = self.get_context() + self.render_files(context, output_directory, jinja_env) - out_path = os.path.join(output_directory, self.url) + def render_files(self, context, output_directory, jinja_env): + self.render_to_file(self.template, self.url, context, output_directory, jinja_env) + + + def render_to_file(self, template, url, context, output_directory, jinja_env): + template = jinja_env.get_template(template) + result = template.render(context) + + out_path = os.path.join(output_directory, url) out_dir = os.path.dirname(out_path) if not os.path.isdir(out_dir): os.mkdir(out_dir) out_file = open(out_path, "wb") - out_file.write(html) + out_file.write(result) out_file.close() diff --git a/verdandi/modules/page.py b/verdandi/modules/page.py index a99e0a3..7e1a357 100644 --- a/verdandi/modules/page.py +++ b/verdandi/modules/page.py @@ -7,7 +7,7 @@ import markdown from verdandi.mixins.templatemixin import TemplateMixin from verdandi.mixins.menuitemmixin import MenuItemMixin from verdandi.mixins.assetsmixin import AssetsMixin -from verdandi.constants import CONTENT_DIRECTORY +from verdandi.constants import CONTENT_DIRECTORY, MARKDOWN_EXTENSIONS class Page(MenuItemMixin, TemplateMixin, AssetsMixin): @@ -15,8 +15,8 @@ class Page(MenuItemMixin, TemplateMixin, AssetsMixin): content_file = "content.md" content_directory = CONTENT_DIRECTORY - markdown_extensions = ['markdown.extensions.sane_lists', - 'markdown.extensions.tables'] + markdown_extensions = MARKDOWN_EXTENSIONS + def get_context(self): context = super(Page,self).get_context()