Releases: statiqdev/Statiq.Framework
Releases · statiqdev/Statiq.Framework
1.0.0-beta.42
- Breaking change: Deleted
IFile.GetCacheHashCodeAsync()and replaced it with an implementation ofICacheCode. - Breaking change: Renamed
IContentProvider.GetCacheHashCodeAsync()and replaced it with an implementation ofICacheCode. - Breaking change: Renamed
IDocument.GetCacheHashCodeAsync()and replaced it with an implementation ofICacheCode. - Added a new "cache" folder that contains caching artifacts to improve performance, deleting it won't harm anything but it should be left if possible to improve initial generation performance.
Also note that the "cache" folder likely shouldn't be committed to a repository, though it's designed to support that scenario when warranted (I.e. relative paths, etc.). - Compiled Razor assemblies (including layouts and partials) are now cached to disk which dramatically improved initial generation performance by not recompiling files that haven't changed.
- Added
IFile.ReadAllBytesAsync()andIFile.WriteAllBytesAsync(). - Added
IFile.WriteFromAsync(),IFile.AppendFromAsync(), andIFile.CopyToAsync()extension methods to more easily copy a file from/to a stream. - Added
IReadOnlyFileSystem.CachePathand related extensions, methods, etc. to provide a path where cache files should be stored and set to "cache" by default (which should be excluded in.gitignore). - The write tracking data is now cached in a file so if the output folder has not changed and the content is the same, files don't need to be written even on the first execution.
- Added an
ICacheCodeinterface to provide a standard deterministic.GetCacheCodeAsync()method and implemented it inIDocument,IContentProvider, andIFile. - Changed the console output encoding and the
ProcessLauncherchild process console encodings to UTF-8 so emoji and other Unicode characters will render correctly from child processes. - Fixed a bug with the
--helpCLI option and command description escaping (#186). - Added ability to set the temp and cache paths via the CLI.
1.0.0-beta.41
- Added support for the
PATHandPATHEXTenvironment variables to theProcessLauncherso it can resolve file names more likecmd.exe. - Added better error messages when process launching fails.
- Added
CleanMode.Unwrittenthat will wait to clean the output folder after each execution and tries to avoid writing duplicate files to the file system (this is the new default). - Added
IFile.GetCacheHashCodeAsync()which can be used to get a hash code representing the current state of a file. - Refactored
FileContent.GetCacheHashCodeAsync()to use the newIFile.GetCacheHashCodeAsync()instead of attempting to read the entire file content.
1.0.0-beta.40
- Several optimizations to file IO and the
WriteFilesandCopyFilesmodules.
1.0.0-beta.39
- Fixed a bug with link generation for non http/https links in Markdown (#179, #184, thanks @JoshClose).
- Fixed a bug with the
ConsoleListeneron MacOS that prevented signaling from the main thread (used for thepreviewcommand in Statiq Web) (#182, #183, thanks @devlead). - Fixed a bug with the CLI
--helpoutput that caused the app to crash (#180, #181, thanks @matkoch). - Added caching for
IEnumerable<TDocument>.GetDestinationTree()andIEnumerable<TDocument>.GetSourceTree()which results in a significant performance improvement in some cases for large sites. - Improved logging messages related to timing.
- Added
IFileextensions to serialize and deserialize JSON. - Added
IFileextensions to serialize and deserialize YAML. - Added
NormalizedPath.ThrowIfRealtive()andNormalizedPath.ThrowIfAbsolute()helper methods. - Added a
IDirectory.MoveTo()method. - Fixed a bug that caused an input phase overload of an
ExecutionPipelinenot to execute.
1.0.0-beta.38
1.0.0-beta.37
- Updated Buildalyzer to the most recent version and resolves Roslyn version incompatibilities in the
AnalyzeCSharpmodule (#174, thanks @mholo65). - Added an optional
makeAbsoluteparameter toLinkGenerator.GetLink()that allows keeping links as relative (#170). - Fixed fragment support in the Markdown link rewriter (#170, #175, thanks @JoshClose).
- Fixed
LinkGeneratorbehavior when using query and/or fragment components (#170). - Added
makeAbsoluteparameters toIExecutionState.GetLink()extension methods and others as appropriate (#170).
1.0.0-beta.36
- Removes the
UrlResolutionTagHelperfrom Razor processing so that~/links don't get processed (#170). - Adds support for
~/link resolution to Markdown files, note that this is an interim feature and will be removed again in favor of a new module that handles~/links for all template engines soon (#170, #171, thanks @JoshClose).
1.0.0-beta.35
- Added better error logging of Razor rendering failures.
- Changed the default Razor model type to
IDocumentfromdynamicif no explicit model or base type is specified.
1.0.0-beta.33
- Added ability to "map" input folders to subfolders in the virtual folder hierarchy (so not every input folder has to be at the root now).
- Added the
GenerateJsonmodule back in (it got dropped a while ago when Statiq.Json was merged with Statiq.Core). - Added a utility
LoggerFactoryLoggerWrapperclass that can wrap the context (or any otherILogger) and provide it as anILoggerFactorythat always logs to the underlying logger. - Fixed a bug with the generated doctype element in redirects (#160, #161, thanks @gep13).
- Fixed a bug with virtual input directories when getting a parent directory from a file produced by one (it wasn't getting the original virtual directory).
1.0.0-beta.32
- Breaking change: Refactored the
IExecutionContext.GetContentProviderAsync(string)extension (and overloads) to be non-async and unified related extensions that get content providers. - Breaking change: Refactored
IDocument.CloseAsync(string)and related extensions to be non-async and unified related clone methods into a single set of overloads. - Breaking change: Removed the
UseStringContentFilesoption because it's no longer relevant with the new string and stream processing. - Updated the Razor engine from 3.0.0 to 3.1.10.
- Updated the Roslyn libraries from 3.4.0 to 3.8.0.
- Changed the precedence of environment variables to overwrite configuration from settings files to match expected ASP.NET Core conventions (#154).
- Fixed some bugs with the
ProcessLauncheron Linux and Mac by ensuring the entire process tree is killed (#156). - Added some performance caching for
IExecutionProcess.OutputPages. - Refactored
NormalizedPathto reduce use of strings. - Added some performance enhancements to caching of AngleSharp HTML documents.