walk pages directory to build site

This commit is contained in:
Ruidy 2023-06-29 21:12:59 +02:00
parent 7d16193c91
commit 0825956100
2 changed files with 17 additions and 12 deletions

View file

@ -2,13 +2,13 @@ import tomllib
from dataclasses import dataclass from dataclasses import dataclass
NAME = "name" NAME = "name"
OUT_DIR = "out_dir"
@dataclass(frozen=True) @dataclass(frozen=True)
class Config: class Config:
name: str name: str
static_files: str static_dir: str
data_dir: str
out_dir: str out_dir: str
templates_dir: str templates_dir: str
@ -18,7 +18,8 @@ def load() -> Config:
raw_config = tomllib.load(f) raw_config = tomllib.load(f)
return Config( return Config(
name=raw_config[NAME], name=raw_config[NAME],
static_files="assets", static_dir="assets",
out_dir=raw_config.setdefault(OUT_DIR, "dist"), data_dir="data",
out_dir="dist",
templates_dir="pages", templates_dir="pages",
) )

View file

@ -24,16 +24,20 @@ def main():
clean_dist(destination_path) clean_dist(destination_path)
pages = [page for page in os.scandir("./data") if page.is_file()] for page in os.scandir(config.templates_dir):
for page in pages: if page.is_file():
with open(page, "rb") as f: with open(os.path.join(destination_path, page.name), "w") as fd:
data = tomllib.load(f) data_file_path = os.path.join(config.data_dir, f"{page.name.split('.')[0]}.toml")
logger.info(f"📃Render '{page.name}'") data = {}
with open(os.path.join(destination_path, f'{data["name"]}.html'), "w") as fd: if os.path.isfile(data_file_path):
fd.write(fs.render(data["template"], data)) 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") 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…") logger.info("🎉 Done…")