1.0.0-beta.20
Pre-release
Pre-release
daveaglick
released this
17 Aug 00:12
·
392 commits
to main
since this release
- Breaking change: Removed the
IDocument.GetParent()
,IDocument.HasChildren()
,IDocument.GetDescendants()
, andIDocument.GetDescendantsAndSelf()
extension methods
(IDocument.GetChildren()
still remains since it's fetching actual metadata values). Instead, the appropriate tree concept can now be accessed via an implementation
of theIDocumentTree<TDocument>
interface. This change may break navigation, soOutputs
orOutputPages
should be considered for generating navigation instead. - Added an
OutputPages
property to the engine and execution context to make it easier to filter outputs by "pages" (by default, documents with a destination path ending in ".htm" or ".html").
This is what you should use to generate navigation going forward. - Added
Outputs.Get()
andOutputPages.Get()
to support getting a single document from those collections by destination path, which is faster than globbing. - Added a
IDocumentTree<TDocument>
interface to encapsulate different kinds of document tree traversal logic. - Added a
DocumentMetadataTree<TDocument>
implementation to represent document trees as the result of metadata containing child documents. - Added a
DocumentPathTree<TDocument>
implementation to represent document trees as the result of file paths. - Added a
IEnumerable<TDocument>.AsMetadataTree()
extension method to get aDocumentMetadataTree<TDocument>
instance that creates a tree from document metadata containing child documents. - Added a
IEnumerable<TDocument>.AsDestinationTree()
extension method to get aDocumentPathTree<TDocument>
instance that creates a tree from document destination paths. - Added a
IEnumerable<TDocument>.AsSourceTree()
extension method to get aDocumentPathTree<TDocument>
instance that creates a tree from document source paths. - Added a new
FilteredDocumentList<TDocument>
return type forIEnumerable<TDocument>.FilterDestinations()
andIEnumerable<TDocument>.FilterSources()
calls
(includingOutputs[string[] patterns]
) which implements the newIDocumentTree<TDocument>
and lets you treat the resulting filtered documents as a tree from the filter return. - Added the
IDocumentTree<TDocument>
interface toIPipelineOutputs
with default implementations that operate on document destination paths. This means you can call
methods likeOutputs.GetChildren(doc)
to get all the children across all pipelines of the given document, etc. - Added a new
IndexFileName
setting to control the default file name of index files (defaults toindex.html
). - Added a new
PageFileExtensions
setting to control the default file extensions of "pages" for things likeOutputPages
filtering and link generation (defaults to ".html" and ".htm"). - Added a new constructor to the
SetDestination
module that will change the destination of documents to the first value of thePageFileExtensions
setting (default of ".html"). - Added a new
MinimumStatiqFrameworkVersion
key to perform a check for the minimum allowed version of Statiq Framework. If this is set to something higher than the current version
of Statiq Framework, an error will be logged and execution will stop. Any setting that starts will this key will be considered, so it's recommended the use of this key be
suffixed with a unique identifier to avoid conflicts between components (for exampleMinimumStatiqFrameworkVersion-MySite
). - Refactored settings and configuration implementations. You shouldn't notice anything usage-wise, but keep an eye out for anything that doesn't work as expected