spanezz / staticsite

Static site generator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

page.name for ArchivePage is documented & used, but not available

DonKult opened this issue · comments

In example/demo/content/tags.taxonomy the template title & description of the archive use page.name and the refdoc documents its existence, but it seems to have disappeared at some point (I am at least reasonably sure it existed last year).

Adding to ArchivePage in staticsite/features/syndication.py (I would have kinda expected it to be in taxonomy.py) a to_dict method "stolen" from the CategoryPage and self.name = self.created_from.to_dict().get("name") to the constructor solves this small problem, but I fully expect there to be a better/cleaner way.

Related: I see that lib/blog.html template uses page.created_from.…, so perhaps that should be used in the templates instead of page.name, but it isn't documented.

I agree it's surprising that the tag archive is created by syndication.py. The general idea is that once there's a page that contains a collection of pages (in meta["pages"]), syndication can automatically add RSS/Atom feeds and archives

I see that page.name exists for taxonomy pages only. In archive pages, using page.created_from.name would work, except that TaxonomyPage.__init__() helpfully sets template_title to something else, which seems to take priority.

Untangling this might need a refactoring of staticsite, introducing a clear division between populating the interconnected page structure and populating page metadata. Such a refactoring would be a good thing to do, not just for this issue

Such a refactoring has now been done in the refactor branch 🎉