blob: b829a88a3765db96831b05de0d4ad1fcf7c14b9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
from jinja2 import Environment, FileSystemLoader
import os
class Page:
def __init__(self, template_file, out_dir, out_file, name, content_subdir):
self.out_file_path = os.path.join(out_dir, out_file)
self.name = name
self.content_subdir = content_subdir
template_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'templates'))
self.template = Environment(loader=FileSystemLoader(template_dir)).get_template(template_file)
def context(self):
# TODO: Probably better to delegate to a method here so name and subdir don't have to be
# passed around as much.
raise NotImplementedError("Must override context")
def render(self):
content = self.template.render(self.context())
os.makedirs(os.path.dirname(self.out_file_path), exist_ok=True)
with open(self.out_file_path, 'w', encoding='utf-8') as f:
f.write(content)
|