diff options
| author | Paweł Redman <pawel.redman@gmail.com> | 2026-06-21 12:41:59 +0200 |
|---|---|---|
| committer | Paweł Redman <pawel.redman@gmail.com> | 2026-06-21 12:41:59 +0200 |
| commit | d84217fe5a0f389de8afcfacacd95b1c9dfd6eca (patch) | |
| tree | 98f557c81ef4b5d0e75f08ef0a0ee693dd02a70a /build.py | |
| parent | 9775887a4e3197c19edd456f17e59352b636e11b (diff) | |
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)) |
