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
|
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",
|
||||||
)
|
)
|
||||||
|
|
|
||||||
20
lib/main.py
20
lib/main.py
|
|
@ -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…")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue