Skip to content

Commit ae37420

Browse files
authored
chore: prepare release v1.3.0 (#66)
## Changes - Update version to 1.3.0 - Update CHANGELOG.md with all features since v1.2.0 - Update package release notes ## Highlights - Named iteration variable syntax for nested loops - ElseIf support for multi-branch conditionals - Text replacement lookup tables (HTML entities) - .NET 10 support - BREAKING: {{else}} → {{#else}} syntax change
1 parent 1378e5c commit ae37420

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

CHANGELOG.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.3.0] - 2026-01-05
11+
1012
### Added
13+
- **Text Replacement Lookup Tables** - Pre-process text before template processing
14+
- `TextReplacementLookup` for custom character/string replacements
15+
- `HtmlEntityPreset` for common HTML entities (`&`, `<`, `>`, ` `, `—`, `–`, etc.)
16+
- GUI support for HTML entity replacement option
17+
- **Named Iteration Variable Syntax** - Access parent loop variables in nested loops
18+
- New syntax: `{{#foreach item in CollectionName}}...{{item.Property}}...{{/foreach}}`
19+
- Access parent scope: `{{category.Name}}` inside `{{#foreach product in category.Products}}`
1120
- **ElseIf Support for Conditionals** - Multi-branch conditional logic with `{{#elseif condition}}` syntax
1221
- Chain multiple conditions: `{{#if A}}...{{#elseif B}}...{{#elseif C}}...{{#else}}...{{/if}}`
1322
- Conditions evaluated in order - first matching branch wins
1423
- Strict validation: `{{#else}}` must be the last branch
1524
- Full support for block-level, inline, and table row conditionals
16-
- Works with all existing operators (`=`, `!=`, `>`, `<`, `>=`, `<=`, `and`, `or`, `not`)
25+
- **Newline Character Support** - Variable values can now contain `\n` for line breaks
26+
- **Inline Conditionals** - Conditionals within a single paragraph
27+
- **Highlight and Shading Preservation** - Per-run placeholder replacement now preserves highlight and shading formatting
28+
- **Typographic Quote Support** - Conditional expressions now accept curly/smart quotes (`""` `''`)
29+
- **.NET 10 Support** - Added `net10.0` target framework
30+
31+
### Changed
32+
- **BREAKING:** `{{else}}` syntax changed to `{{#else}}` for consistency with other control tags
33+
34+
### Fixed
35+
- Conditionals inside loops now evaluate with correct context
36+
- Loop-scoped variables are now correctly validated in template validation
37+
- Null values are now treated as valid in template validation
38+
- Nested paragraphs no longer generated in RepeatingConverter
1739

1840
### Improved
19-
- Test coverage increased to 826 tests
20-
- Updated user documentation with elseif examples and troubleshooting
41+
- Test coverage increased to 929 tests
42+
- Updated NuGet dependencies
43+
44+
## [1.2.0] - 2025-12-15
45+
46+
### Added
47+
- **TextTemplateProcessor** - Process email and plain text templates using the same syntax as Word documents
2148

2249
## [1.1.0] - 2025-12-02
2350

@@ -99,6 +126,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99126
- Cross-platform: Windows, Linux, macOS
100127
- No Microsoft Word installation required
101128

102-
[Unreleased]: https://github.com/TriasDev/templify/compare/v1.1.0...HEAD
129+
[Unreleased]: https://github.com/TriasDev/templify/compare/v1.3.0...HEAD
130+
[1.3.0]: https://github.com/TriasDev/templify/compare/v1.2.0...v1.3.0
131+
[1.2.0]: https://github.com/TriasDev/templify/compare/v1.1.0...v1.2.0
103132
[1.1.0]: https://github.com/TriasDev/templify/compare/v1.0.0...v1.1.0
104133
[1.0.0]: https://github.com/TriasDev/templify/releases/tag/v1.0.0

TriasDev.Templify/TriasDev.Templify.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<!-- NuGet Package Metadata -->
1313
<PackageId>TriasDev.Templify</PackageId>
14-
<Version>1.2.0</Version>
14+
<Version>1.3.0</Version>
1515
<Authors>TriasDev GmbH &amp; Co. KG</Authors>
1616
<Company>TriasDev GmbH &amp; Co. KG</Company>
1717
<Description>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.</Description>
@@ -22,7 +22,7 @@
2222
<RepositoryType>git</RepositoryType>
2323
<PackageTags>word;docx;template;openxml;document-generation;templating;word-documents;office;dotnet;email;text-templates</PackageTags>
2424
<PackageReadmeFile>README.md</PackageReadmeFile>
25-
<PackageReleaseNotes>Added TextTemplateProcessor for email and plain text templating using the same template syntax as Word documents.</PackageReleaseNotes>
25+
<PackageReleaseNotes>v1.3.0: Named iteration variables for nested loops, elseif conditionals, text replacement lookup tables, inline conditionals, .NET 10 support. BREAKING: {{else}} changed to {{#else}}.</PackageReleaseNotes>
2626
</PropertyGroup>
2727

2828
<ItemGroup>

0 commit comments

Comments
 (0)