Moved default markdown extensions to constatns

Added render_files method to allow reusing code without regenerating the context
This commit is contained in:
Sebastian 2016-01-22 00:10:32 +01:00
parent 501f27cc4f
commit d233b7ae5a
3 changed files with 18 additions and 7 deletions

View File

@ -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

View File

@ -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()

View File

@ -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()