mirror of
https://github.com/rjNemo/vf-site
synced 2026-06-06 01:16:38 +00:00
walk pages directory to build site
This commit is contained in:
parent
7d16193c91
commit
0825956100
2 changed files with 17 additions and 12 deletions
|
|
@ -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",
|
||||
)
|
||||
|
|
|
|||
20
lib/main.py
20
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…")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue