staticsite
staticsite copied to clipboard
page.name for ArchivePage is documented & used, but not available
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 :tada: