From c54a5801607dcb057edce1562d4d2c1b53e4661e Mon Sep 17 00:00:00 2001 From: Vaceslav Ustinov Date: Mon, 16 Mar 2026 22:35:04 +0100 Subject: [PATCH 1/2] chore: prepare release v1.6.0 --- CHANGELOG.md | 24 +++++++++++++--------- TriasDev.Templify/TriasDev.Templify.csproj | 4 ++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 949c003..acfdaeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,25 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.6.0] - 2026-03-16 + ### Added - **Header & Footer Support** - Process placeholders, conditionals, and loops in document headers and footers (#15) - All header/footer types supported: Default, First Page, Even Page - Same syntax and features as document body - no additional API calls needed - Formatting is preserved in headers and footers -- **Number and Currency Format Specifiers** - Format numeric values directly in placeholders (#22) +- **Non-Boolean Format Specifiers** - Format numeric, string, and date values directly in placeholders (#22) - `:currency` — locale-aware currency formatting (e.g., `$1,234.56` or `1.234,56 €`) - `:number:FORMAT` — any .NET numeric format string (e.g., `:number:N2`, `:number:F3`, `:number:P`) - - Works with int, long, decimal, double, and float values - - Supports compound format specifiers in placeholder regex -- **String Format Specifiers** - Transform string casing in placeholders (#22) - - `:uppercase` — convert to UPPERCASE - - `:lowercase` — convert to lowercase -- **Date Format Specifiers** - Format dates directly in placeholders (#22) + - `:uppercase` / `:lowercase` — string casing transformations - `:date:FORMAT` — any .NET date format string (e.g., `:date:yyyy-MM-dd`, `:date:MMMM d, yyyy`) - - Supports DateTime, DateTimeOffset, and ISO date string values - - Culture-aware month/day names + - Works with int, long, decimal, double, float, DateTime, DateTimeOffset, and ISO date strings + - Culture-aware formatting throughout +- **Unified Equality Operators** - `==` now works as an alias for `=` in conditional expressions (#84) + - Condition validation warns on common mistakes (assignment `=` vs comparison `==`) - **GUI Culture Selector** - Dropdown to choose formatting culture (Invariant, en-US, de-DE, fr-FR, es-ES) +### Improved +- Test coverage increased to 1,095 tests + ## [1.5.0] - 2026-02-13 ### Added @@ -193,7 +195,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Cross-platform: Windows, Linux, macOS - No Microsoft Word installation required -[Unreleased]: https://github.com/TriasDev/templify/compare/v1.4.2...HEAD +[Unreleased]: https://github.com/TriasDev/templify/compare/v1.6.0...HEAD +[1.6.0]: https://github.com/TriasDev/templify/compare/v1.5.0...v1.6.0 +[1.5.0]: https://github.com/TriasDev/templify/compare/v1.4.2...v1.5.0 [1.4.2]: https://github.com/TriasDev/templify/compare/v1.4.1...v1.4.2 [1.4.1]: https://github.com/TriasDev/templify/compare/v1.4.0...v1.4.1 [1.4.0]: https://github.com/TriasDev/templify/compare/v1.3.0...v1.4.0 diff --git a/TriasDev.Templify/TriasDev.Templify.csproj b/TriasDev.Templify/TriasDev.Templify.csproj index 03f2b41..c720ada 100644 --- a/TriasDev.Templify/TriasDev.Templify.csproj +++ b/TriasDev.Templify/TriasDev.Templify.csproj @@ -11,7 +11,7 @@ TriasDev.Templify - 1.5.0 + 1.6.0 TriasDev GmbH & Co. KG TriasDev GmbH & Co. KG High-performance templating engine for .NET. Process Word documents (.docx) and plain text templates with the same powerful syntax. Replace placeholders, evaluate conditionals, and process loops without Microsoft Word. Built on OpenXML SDK with 100% test coverage. @@ -23,7 +23,7 @@ word;docx;template;openxml;document-generation;templating;word-documents;office;dotnet;email;text-templates README.md icon.png - v1.5.0: Add DocumentProperties option for setting document metadata (Author, Title, Subject, Description, Keywords, Category, LastModifiedBy) on output documents. Custom Templify icon and branding. + v1.6.0: Header and footer support for placeholders, conditionals, and loops. Non-boolean format specifiers (currency, number, string, date). Unified equality operators (== alias for =) with condition validation. From a5eabf08d159636f917f879322ff6c60873be7a2 Mon Sep 17 00:00:00 2001 From: Vaceslav Ustinov Date: Mon, 16 Mar 2026 23:58:08 +0100 Subject: [PATCH 2/2] fix: correct changelog description for unified equality operators and condition validation --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index acfdaeb..77852b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,8 +21,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `:date:FORMAT` — any .NET date format string (e.g., `:date:yyyy-MM-dd`, `:date:MMMM d, yyyy`) - Works with int, long, decimal, double, float, DateTime, DateTimeOffset, and ISO date strings - Culture-aware formatting throughout -- **Unified Equality Operators** - `==` now works as an alias for `=` in conditional expressions (#84) - - Condition validation warns on common mistakes (assignment `=` vs comparison `==`) +- **Unified Equality Operators** - `==` now works as an alias for `=` in both `{{#if}}` conditionals and `{{(...)}}` boolean expressions (#84) + - Condition validation detects unknown operators (`===`, `<>`, `&&`, `||`) and structural issues (missing operands, unbalanced quotes, consecutive operators) - **GUI Culture Selector** - Dropdown to choose formatting culture (Invariant, en-US, de-DE, fr-FR, es-ES) ### Improved