diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-12-04 21:12:59 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-12-04 21:12:59 +0100 |
| commit | d69086a1b2d7d6e6def55f35e30d0623701de011 (patch) | |
| tree | 1f73899aa4bcb9ecf0600f0d95f5909c79818780 /builder/builder.py | |
| parent | 966e27c7418d6e188ea4b1f651a5e6c67495b765 (diff) | |
embedding images
Diffstat (limited to 'builder/builder.py')
| -rw-r--r-- | builder/builder.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/builder/builder.py b/builder/builder.py new file mode 100644 index 00000000..44fbd1c6 --- /dev/null +++ b/builder/builder.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +from dotenv import load_dotenv +load_dotenv() + +import os +import glob +from jinja2 import Environment, FileSystemLoader, select_autoescape + +import s3 +import parser +from paths import * + +env = Environment( + loader=FileSystemLoader(template_path), + autoescape=select_autoescape([]) +) + +def build_page(fn, research_posts): + metadata, sections = parser.read_metadata(fn) + + if metadata is None: + print("{} has no metadata".format(fn)) + return + + print(metadata['url']) + + dirname = os.path.dirname(fn) + output_path = public_path + metadata['url'] + output_fn = os.path.join(output_path, "index.html") + + if 'research/' in fn: + template = env.get_template("research.html") + else: + template = env.get_template("page.html") + + if 'datasets' in fn: + s3_path = "{}/{}/{}{}".format(os.getenv('S3_ENDPOINT'), os.getenv('S3_BUCKET'), s3_datasets_path, metadata['path']) + if 'index.md' in fn: + s3.sync_directory(dirname, s3_datasets_path, metadata) + else: + s3_path = "{}/{}/{}{}".format(os.getenv('S3_ENDPOINT'), os.getenv('S3_BUCKET'), s3_site_path, metadata['path']) + if 'index.md' in fn: + s3.sync_directory(dirname, s3_site_path, metadata) + + print(s3_path) + + content = parser.parse_markdown(sections, s3_path) + + html = template.render( + metadata=metadata, + content=content, + research_posts=research_posts, + latest_research_post=research_posts[-1], + ) + + os.makedirs(output_path, exist_ok=True) + with open(output_fn, "w") as file: + file.write(html) + + print("______") + +def build_site(): + research_posts = parser.read_research_post_index() + for fn in glob.iglob(os.path.join(content_path, "**/*.md"), recursive=True): + build_page(fn, research_posts) + +if __name__ == '__main__': + build_site() |
