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
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",
)

View file

@ -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…")