diff --git a/lib/config.py b/lib/config.py index 54f0a83..6dc0dc7 100644 --- a/lib/config.py +++ b/lib/config.py @@ -2,13 +2,13 @@ import tomllib from dataclasses import dataclass NAME = "name" -OUT_DIR = "out_dir" @dataclass(frozen=True) class Config: name: str - static_files: str + static_dir: str + data_dir: str out_dir: str templates_dir: str @@ -18,7 +18,8 @@ def load() -> Config: raw_config = tomllib.load(f) return Config( name=raw_config[NAME], - static_files="assets", - out_dir=raw_config.setdefault(OUT_DIR, "dist"), + static_dir="assets", + data_dir="data", + out_dir="dist", templates_dir="pages", ) diff --git a/lib/main.py b/lib/main.py index e5222ec..9c21266 100644 --- a/lib/main.py +++ b/lib/main.py @@ -24,16 +24,20 @@ def main(): clean_dist(destination_path) - pages = [page for page in os.scandir("./data") if page.is_file()] - for page in pages: - with open(page, "rb") as f: - data = tomllib.load(f) - logger.info(f"📃Render '{page.name}'") - with open(os.path.join(destination_path, f'{data["name"]}.html'), "w") as fd: - fd.write(fs.render(data["template"], data)) + for page in os.scandir(config.templates_dir): + if page.is_file(): + with open(os.path.join(destination_path, page.name), "w") as fd: + data_file_path = os.path.join(config.data_dir, f"{page.name.split('.')[0]}.toml") + data = {} + if os.path.isfile(data_file_path): + with open(data_file_path, "rb") as f: + data = tomllib.load(f) + logger.debug(data) + logger.info(f"📃Render '{page.name}'") + fd.write(fs.render(page.name, data)) logger.info("⏩ Start copying staticfiles to build") - copy_tree(config.static_files, os.path.join(config.out_dir)) + copy_tree(config.static_dir, os.path.join(config.out_dir)) logger.info("🎉 Done…")