summaryrefslogtreecommitdiff
path: root/builder/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'builder/builder.py')
-rw-r--r--builder/builder.py37
1 files changed, 29 insertions, 8 deletions
diff --git a/builder/builder.py b/builder/builder.py
index deb9eb68..0e404b88 100644
--- a/builder/builder.py
+++ b/builder/builder.py
@@ -29,21 +29,25 @@ def build_page(fn, research_posts):
output_path = public_path + metadata['url']
output_fn = os.path.join(output_path, "index.html")
+ is_research = False
+
if 'research/' in fn:
+ is_research = True
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)
+ if 'datasets/' in fn:
+ s3_dir = s3_datasets_path
else:
- s3_path = "{}/{}/{}{}".format(os.getenv('S3_ENDPOINT'), os.getenv('S3_BUCKET'), s3_site_path, metadata['path'])
- if 'index.md' in fn and metadata['url'] != '/':
- s3.sync_directory(dirname, s3_site_path, metadata)
+ s3_dir = s3_site_path
+
+ s3_path = s3.make_s3_path(s3_dir, metadata['path'])
+
+ if 'index.md' in fn:
+ s3.sync_directory(dirname, s3_dir, metadata)
- content = parser.parse_markdown(sections, s3_path)
+ content = parser.parse_markdown(sections, s3_path, skip_h1=is_research)
html = template.render(
metadata=metadata,
@@ -58,10 +62,27 @@ def build_page(fn, research_posts):
print("______")
+def build_research_index(research_posts):
+ metadata, sections = parser.read_metadata('../site/content/research/index.md')
+ template = env.get_template("page.html")
+ s3_path = s3.make_s3_path(s3_site_path, metadata['path'])
+ content = parser.parse_markdown(sections, s3_path, skip_h1=False)
+ content += parser.parse_research_index(research_posts)
+ html = template.render(
+ metadata=metadata,
+ content=content,
+ research_posts=research_posts,
+ latest_research_post=research_posts[-1],
+ )
+ output_fn = public_path + '/research/index.html'
+ with open(output_fn, "w") as file:
+ file.write(html)
+
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)
+ build_research_index(research_posts)
if __name__ == '__main__':
build_site()