Statiq.Framework Release 1.0.0-beta.24
Wednesday, October 14, 2020 in Release Notes
  • Added StartProcess.LogErrors() to configure whether standard error output is logged as debug or error messages.
  • Added IContentProvider.GetCacheHashCodeAsync() to get and cache a hash code for a given content provider.
  • Updated AngleSharp to 0.14.0 (#135, #136, thanks @@alanta).
  • Added RenderMarkdown.WithMarkdownDocumentKey(string markdownDocumentKey) to indicate where the MarkdownDocument should be saved, or not at all.
  • Removed DocumentAnalyzer and SyncDocumentAnalyzer in favor of combining into alternate overloads in Analyzer and SyncAnalyzer similar to how Module handles it (this lets analyzers provide functionality before documents are processed individually).
  • Renamed IInitializer to IBootstrapperInitializer.
  • Added IEngineInitializer which will be instantiated and called when an engine first starts up (for example, lets you hook engine events from extensions).
  • Moved engine event classes like BeforeEngineExecution to Statiq.Common so they can be subscribed by extensions using a IEngineInitializer.
  • Removed documents from the IAnalyzer methods, added IExecutionContext as a base interface for IAnalyzerContext, and analyzer documents now passed as IAnalyzerContext.Inputs similar to modules.
  • Added IAnalyzer.BeforeEngineExecutionAsync(IEngine engine, Guid executionId) to get called one-per-instance for each analyzer prior to each engine execution (for resetting caches, etc.).
  • Changed analyzer pipeline and phase specification to be a collection of KeyValuePair<string, Phase> instead of distinct pipeline and phase arrays.
  • Changed deployment pipelines so that none of their phases are executed until all phases of non-deployment pipelines are completed (I.e. deployment pipelines now don't start executing until all non-deployment pipelines are done).
  • Non-deployment pipelines can no longer have a dependency on deployment pipelines (this didn't really make sense before, but now it's enforced).