Skip to content

Releases: statiqdev/Statiq.Framework

1.0.0-beta.42

10 May 15:24
Compare
Choose a tag to compare
1.0.0-beta.42 Pre-release
Pre-release
  • Breaking change: Deleted IFile.GetCacheHashCodeAsync() and replaced it with an implementation of ICacheCode.
  • Breaking change: Renamed IContentProvider.GetCacheHashCodeAsync() and replaced it with an implementation of ICacheCode.
  • Breaking change: Renamed IDocument.GetCacheHashCodeAsync() and replaced it with an implementation of ICacheCode.
  • 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() and IFile.WriteAllBytesAsync().
  • Added IFile.WriteFromAsync(), IFile.AppendFromAsync(), and IFile.CopyToAsync() extension methods to more easily copy a file from/to a stream.
  • Added IReadOnlyFileSystem.CachePath and 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 ICacheCode interface to provide a standard deterministic .GetCacheCodeAsync() method and implemented it in IDocument, IContentProvider, and IFile.
  • Changed the console output encoding and the ProcessLauncher child process console encodings to UTF-8 so emoji and other Unicode characters will render correctly from child processes.
  • Fixed a bug with the --help CLI option and command description escaping (#186).
  • Added ability to set the temp and cache paths via the CLI.

1.0.0-beta.41

27 Apr 02:03
Compare
Choose a tag to compare
1.0.0-beta.41 Pre-release
Pre-release
  • Added support for the PATH and PATHEXT environment variables to the ProcessLauncher so it can resolve file names more like cmd.exe.
  • Added better error messages when process launching fails.
  • Added CleanMode.Unwritten that 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 new IFile.GetCacheHashCodeAsync() instead of attempting to read the entire file content.

1.0.0-beta.40

12 Apr 13:40
Compare
Choose a tag to compare
1.0.0-beta.40 Pre-release
Pre-release
  • Several optimizations to file IO and the WriteFiles and CopyFiles modules.

1.0.0-beta.39

08 Apr 02:07
Compare
Choose a tag to compare
1.0.0-beta.39 Pre-release
Pre-release
  • Fixed a bug with link generation for non http/https links in Markdown (#179, #184, thanks @JoshClose).
  • Fixed a bug with the ConsoleListener on MacOS that prevented signaling from the main thread (used for the preview command in Statiq Web) (#182, #183, thanks @devlead).
  • Fixed a bug with the CLI --help output that caused the app to crash (#180, #181, thanks @matkoch).
  • Added caching for IEnumerable<TDocument>.GetDestinationTree() and IEnumerable<TDocument>.GetSourceTree() which results in a significant performance improvement in some cases for large sites.
  • Improved logging messages related to timing.
  • Added IFile extensions to serialize and deserialize JSON.
  • Added IFile extensions to serialize and deserialize YAML.
  • Added NormalizedPath.ThrowIfRealtive() and NormalizedPath.ThrowIfAbsolute() helper methods.
  • Added a IDirectory.MoveTo() method.
  • Fixed a bug that caused an input phase overload of an ExecutionPipeline not to execute.

1.0.0-beta.38

25 Feb 19:46
Compare
Choose a tag to compare
1.0.0-beta.38 Pre-release
Pre-release
  • Fixed a bug when both a debugger was attached and the log level was set to debug by removing the DebugLogger (#176).
  • Added a RedirectTo metadata value to documents output from GenerateRedirects.
  • Fixed a regression with the DocumentLink() HTML helper in Razor (#177).

1.0.0-beta.37

24 Feb 21:13
Compare
Choose a tag to compare
1.0.0-beta.37 Pre-release
Pre-release
  • Updated Buildalyzer to the most recent version and resolves Roslyn version incompatibilities in the AnalyzeCSharp module (#174, thanks @mholo65).
  • Added an optional makeAbsolute parameter to LinkGenerator.GetLink() that allows keeping links as relative (#170).
  • Fixed fragment support in the Markdown link rewriter (#170, #175, thanks @JoshClose).
  • Fixed LinkGenerator behavior when using query and/or fragment components (#170).
  • Added makeAbsolute parameters to IExecutionState.GetLink() extension methods and others as appropriate (#170).

1.0.0-beta.36

21 Feb 15:09
Compare
Choose a tag to compare
1.0.0-beta.36 Pre-release
Pre-release
  • Removes the UrlResolutionTagHelper from 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

04 Feb 14:41
Compare
Choose a tag to compare
1.0.0-beta.35 Pre-release
Pre-release
  • Added better error logging of Razor rendering failures.
  • Changed the default Razor model type to IDocument from dynamic if no explicit model or base type is specified.

1.0.0-beta.33

31 Jan 21:16
Compare
Choose a tag to compare
1.0.0-beta.33 Pre-release
Pre-release
  • 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 GenerateJson module back in (it got dropped a while ago when Statiq.Json was merged with Statiq.Core).
  • Added a utility LoggerFactoryLoggerWrapper class that can wrap the context (or any other ILogger) and provide it as an ILoggerFactory that 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

10 Jan 16:17
Compare
Choose a tag to compare
1.0.0-beta.32 Pre-release
Pre-release
  • 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 UseStringContentFiles option 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 ProcessLauncher on Linux and Mac by ensuring the entire process tree is killed (#156).
  • Added some performance caching for IExecutionProcess.OutputPages.
  • Refactored NormalizedPath to reduce use of strings.
  • Added some performance enhancements to caching of AngleSharp HTML documents.