diff options
Diffstat (limited to 'build.py')
| -rw-r--r-- | build.py | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -1,10 +1,13 @@ #!/usr/bin/env python3 +# SPDX-License-Identifier: 0BSD +# Copyright © Paweł Redman import itertools as it import json import os import shutil from argparse import ArgumentParser +from collections.abc import Iterable from dataclasses import dataclass from datetime import datetime from pathlib import Path @@ -78,12 +81,13 @@ class Builder: payload_path.parent.mkdir(parents=True, exist_ok=True) # Maybe sorting/filtering should be done in Typst? - pages = [ - page - for page in pages - if page.date is not None - ] - pages.sort(key=lambda page: page.date, reverse=True) + pages = [page for page in pages if page.date is not None] + + def page_date(page: CompiledPage) -> datetime: + assert page.date is not None + return page.date + + pages.sort(key=page_date, reverse=True) with payload_path.open('w') as file: payload = { @@ -137,6 +141,7 @@ def main() -> None: builder = Builder(site_dir, static_dir, public_dir, temp_dir) + iterator: Iterable[object] if args.watch: watch_filter = DefaultFilter(ignore_paths=[temp_dir]) iterator = it.chain(range(1), watch(site_dir, watch_filter=watch_filter)) |
