Releases: statiqdev/Statiq.Framework
Releases · statiqdev/Statiq.Framework
1.0.0-beta.31
- Added some additional retry policies to file operations to avoid file lock exceptions under certain conditions (#151).
- Added ability to customize the body of meta-refresh redirect HTML files using the
RedirectBody
key (#153). - Added
.fhtml
as a media type to mean HTML fragments (needed so that we can treat full HTML and HTML fragments differently when applying layouts in Statiq Web).
1.0.0-beta.30
- Added a new
CleanMode
enumeration and corresponding setting to control which output files are cleaned on execution (#152). - Added a
--clean-mode
command-line option to control the cleaning mode. - Changed the default cleaning behavior to
CleanMode.Self
which only cleans files written during execution and not those written by external processes, for example. - Added the
IServiceProvider
to thePipelineBuilder
so services are available when building pipelines (#150). - Added new
IReadOnlyFileSystem.GetRootPath()
extensions. - Added
ProcessLauncher.WaitForRunningProcesses()
that allows waiting until all running processes have exited. - Added a
IBootstrapper.Command
property that can get the command that was run (provided it inherits fromBaseCommand<TSettings>
).
1.0.0-beta.29
- Added a new
interactive
command that provides a REPL (read-eval-print prompt) after execution, useful for inspecting the state of the engine and debugging the generation.
1.0.0-beta.28
- Added a
.PreserveFrontMatter()
configuration method to theExtractFrontMatter
module that preserves the front matter content. - Fixed a bug with gathered headings where HTML was included in the heading text (#142).
- Added support for specifying
ViewData
in theRenderRazor
module (#145, #146, thanks @alanta). - Added a new
BeforeDeployment
event that gets raised before any deployment pipelines are run (or at the end of execution if there are no deployment pipelines). - Added a new
ProcessLauncher
utility class toStatiq.Common
that does what theStartProcess
module does, but in a way that can be used outside of the module since it's such a general use case.
1.0.0-beta.27
- Fixed a bug with deployment pipelines getting document outputs from non-deployment pipelines.
- Fixed a bug where deployment pipeline input phases were starting with outputs from non-deployment pipelines (input phases should always start empty).
- Improved exception logging when in a module to include pipeline, phase, and module name.
1.0.0-beta.26
- Fixed an unnecessary pipeline dependency check for deployment pipelines that prevented setting up dependency chains involving deployment pipelines and only dependent non-deployment pipelines.
1.0.0-beta.25
- Breaking change: Removed the
Statiq.Html.ValidateLinks
module in favor of analyzers in Statiq Web (which have already been improved beyond the module).
If you still need access to this module directly, copy the code from a previous version into your own project and reference theStatiq.Html
package and it should continue to work. - Updated ImageSharp in
Statiq.Images
to stable version 1.0.1 (thanks @JimBobSquarePants, #138). - Improved logging, all error and warning messages are now output on Azure Pipelines and GitHub Actions as checks.
1.0.0-beta.24
- 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 theMarkdownDocument
should be saved, or not at all. - Removed
DocumentAnalyzer
andSyncDocumentAnalyzer
in favor of combining into alternate overloads inAnalyzer
andSyncAnalyzer
similar to howModule
handles it
(this lets analyzers provide functionality before documents are processed individually). - Renamed
IInitializer
toIBootstrapperInitializer
. - 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
toStatiq.Common
so they can be subscribed by extensions using aIEngineInitializer
. - Removed documents from the
IAnalyzer
methods, addedIExecutionContext
as a base interface forIAnalyzerContext
, and analyzer documents now passed asIAnalyzerContext.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).
1.0.0-beta.23
- Removed a debugging break statement that snuck into the last release.
1.0.0-beta.22
- Fixed a bug with the
ValidateLinks
module when using a<base>
element on the page. - Added
IExecutionState.LogBuildServerWarning()
andIExecutionState.LogBuildServerError()
extensions to log messages to the console in a format build servers can recognize for build checks (GitHub Actions and Azure Pipelines). - Fixed bugs with relative link validation (#128, #134, thanks @mholo65).
- Added a
StartProcess.HideArguments()
method to hide arguments when logging process commands. - Fixed several bugs related to cancellation and error codes.
- Fixed a bug with
NormalizedPath.GetTitle()
when the file name contains multiple extensions (#130, #131, thanks @devlead). - Added support for analyzers (#104).
- Added
Analyzer
,SyncAnalyzer
,DocumentAnalyzer
, andSyncDocumentAnalyzer
base analyzer classes (#104). - Added
Bootstrapper.Analyze()
andBootstrapper.AnalyzeDocument()
for defining delegate-based analyzers (#104). - Fixed a bug in the console logger when logging with
LogLevel.None
. - Added a
--failure-log-level <LEVEL>
CLI command to fail generation and return a non-zero exit code if any log messages exceed the provided threshold (I.e.--failure-log-level Warning
) (#101). - Added a
Bootstrapper.SetFailureLogLevel()
extension to set the failure log level from code (#101). - The
RenderMarkdown
module now addsMarkdownDocument
metadata that contains the MarkdigMarkdownDocument
created during processing. - Added Scriban (Liquid) support via new
RenderScriban
module (#120, thanks @mholo65). - Added
ExecuteDestinations
andExecuteSources
modules to filter documents by destination or source and then execute modules on the filtered documents.