* Add `Query.with_node_kinds` and `Query.without_node_kinds` to `Query`. This allows lists of nodes (as returned by `SiteTemplateProxy.select` and other functions) to be filtered by the node kind. This is useful if you want to mix static content and documents in the same folder.
* Add `SiteTemplateProxy.select_pages` and `Page.children` to select pages (i.e. document and index nodes) only without having to manually filter the result using `with_node_kinds`/`without_node_kinds`.
* Add `node_kinds` to `Collection.__init__` to allow constraining a collection to a specific node kind.
* Add `exclude_without` to `Collection.__init__` and `Index.__init__` to allow excluding items without a specific metadata field.
* Improve the debug output during publishing. The template publisher will now print which document is published using which template. As part of this change, `Template.path` was added.
* Change how `Page.references` is populated for *top level indices*. Previously, ``references`` would not be populated for a top-level index. Additionally, improve the documentation of top-level indices.
* Improve error handling when trying to sort nodes which are missing the corresponding metadata key, for example, using `liara.query.Query.sorted_by_title`. Previously, this would raise an exception about a failed comparison involving `None`, now this raises a more useful exception which contains the path to the item missing the metadata key and which key was requested.