Releases: axuno/SmartFormat
v3.0.0-alpha.3
Changes on top of v3.0.0-alpha.2:
1. NullFormatter
processes complex formats:
- Behavior is comparable to
ChooseFormatter
- Allows for nested formats
- More plausibility checks
2. NewtonsoftJsonSource
: fix evaluating null values
3. Add missing formatters to Smart.CreatDefaultFormatter
- include IsMatchFormatter
- include NullFormatter
4. Improved parsing of HTML input
Introduced experimental bool ParserSettings.ParseInputAsHtml
.
The default is false
.
If true
, theParser
will parse all content inside <script> and <style> tags as LiteralText
. All other places may still contain Placeholder
s.
This is because <script> and <style> tags may contain curly or square braces, that interfere with the SmartFormat {Placeholder
}.
Best results can only be expected with clean HTML: balanced opening and closing tags, single and double quotes. Also, do not use angle brackets, single and double quotes in script or style comments.
SmartFormat is not a fully-fledged HTML parser. If this is required, use AngleSharp or HtmlAgilityPack.
v3.0.0-alpha.2
Changes since v3.0.0-alpha.1:
1. All Format()
methods accept nullable args
- Opposed to
string.Format
null(able) arguments are allowed. - Changes effect classes
Smart
andSmartFormatter
2. ListFormatter will be initialized only once
v3.0.0-alpha.1
Significant improvements of performance:
BenchmarkDotNet performance tests for formatters and ISource
s now show (depending on different input format strings) the following improvements compared to v2.7.0:
- increase in speed by up to 40%
- decrease of GC pressure (collects are only GC Generation 0, allocated memory reduced by up to 60%)
Formatting measured with a cached parsed Format
, and including the result string
returned to the caller. Parser
was already optimized with PR #187.
v2.7.0.0
- Fixed broken backward compatibilty introduced in v2.6.2 (issues referenced in #148, #147, #143).
- Fixed: Take an erroneous format string like
"this is {uncomplete"
(missing closing brace). Before v2.7.0 the parser handled{uncomplete
as aTextLiteral
, not as an erroneousPlaceholder
. - Fixed: Since v1.6.1 there was an undiscovered issue: If the
Parser
encountered aParsingError.TooManyClosingBraces
, this closing brace was simply "swallowed-up". This way, the result withParser.ErrorAction.MaintainTokens
differs from the original format string. From v2.7.0, the redundant closing brace is handled as aTextLiteral
. - If you have issues formatting HTML with CSS and/or JavaScript included, please read the bullet-proof How-to in the Wiki
v2.6.2.0
v2.6.1.0
v2.5.3.0
v2.5.3.0-preview1
ListFormatter
will only process IList
sources.
v2.5.2.0
v2.5.1.0
Changes:
- Added
System.Text.Json.JsonElement
to the JsonSource extension.Newtonsoft.Json
is still included. - Added a demo version as a netcoreapp3.1 WindowsDesktop App
- Supported framworks now are:
- .Net Framework 4.6.2, 4.7.2 and 4.8 (
System.Text.Json
is not supported for .Net Framework 4.5.x and thus had to be dropped) - .Net Standard 2.0 and 2.1
- .Net Framework 4.6.2, 4.7.2 and 4.8 (
- Updated the Wiki