|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [1.0.0] - 2025-10-05 |
| 9 | + |
| 10 | +### Added |
| 11 | +- Initial release of Java Hypertext Preprocessor (JHP) |
| 12 | +- Template engine with intuitive `{{ }}` and `{% %}` syntax |
| 13 | +- HTML escaping by default for XSS protection |
| 14 | +- Control structures: if/elseif/else, for, foreach, while |
| 15 | +- Loop control: break and continue statements |
| 16 | +- Template includes with security checks |
| 17 | +- Built-in functions: touppercase, tolowercase, trim, len, now |
| 18 | +- Custom function registration support |
| 19 | +- Context system for variable management |
| 20 | +- POJO to Map automatic conversion |
| 21 | +- Configurable settings via builder pattern |
| 22 | +- Multiple issue handling modes: COMMENT, THROW, DEBUG, IGNORE |
| 23 | +- Template caching for improved performance |
| 24 | +- Thread-safe concurrent rendering |
| 25 | +- Comprehensive unit test suite (88 tests) |
| 26 | +- Complete documentation with examples |
| 27 | +- Maven Central publishing configuration |
| 28 | + |
| 29 | +### Features |
| 30 | +- **Template Syntax** |
| 31 | + - Variable output with `{{ variable }}` |
| 32 | + - Raw HTML output with `{{{ html }}}` |
| 33 | + - Expressions with operators (+, -, *, /, %, ==, !=, <, >, <=, >=, &&, ||, !) |
| 34 | + - Ternary operator support |
| 35 | + - Member access with dot notation |
| 36 | + - Array/list access with square brackets |
| 37 | + - Function calls within expressions |
| 38 | + |
| 39 | +- **Control Structures** |
| 40 | + - If statements with elseif and else |
| 41 | + - For loops with initialization, condition, and update |
| 42 | + - Foreach loops for collections, arrays, and maps |
| 43 | + - While loops |
| 44 | + - Break and continue for loop control |
| 45 | + - Template includes with path resolution |
| 46 | + |
| 47 | +- **Configuration** |
| 48 | + - Base directory setting |
| 49 | + - HTML escaping toggle |
| 50 | + - Maximum include depth limit |
| 51 | + - Issue handling mode selection |
| 52 | + - Builder pattern for easy configuration |
| 53 | + |
| 54 | +- **Security** |
| 55 | + - Automatic HTML escaping |
| 56 | + - Base directory restriction for includes |
| 57 | + - Circular include detection |
| 58 | + - Include depth limiting |
| 59 | + |
| 60 | +- **Performance** |
| 61 | + - Automatic AST caching |
| 62 | + - Thread-safe concurrent rendering |
| 63 | + - Efficient template parsing with ANTLR |
| 64 | + |
| 65 | +### Documentation |
| 66 | +- Installation guide |
| 67 | +- Getting started tutorial |
| 68 | +- Template syntax reference |
| 69 | +- Control structures guide |
| 70 | +- Functions documentation |
| 71 | +- Context and variables guide |
| 72 | +- Configuration reference |
| 73 | +- Advanced usage patterns |
| 74 | +- Complete API reference |
| 75 | +- Real-world examples |
| 76 | + |
| 77 | +### Testing |
| 78 | +- Context management tests |
| 79 | +- Settings configuration tests |
| 80 | +- Function library tests (built-in and custom) |
| 81 | +- JHP engine integration tests |
| 82 | +- AST node structure tests |
| 83 | +- Template rendering tests |
| 84 | +- Error handling tests |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## Version History |
| 89 | + |
| 90 | +- **1.0.0** (2025-10-05) - Initial release |
| 91 | + |
| 92 | +[1.0.0]: https://github.com/hind-sagar-biswas/java-hypertext-preprocessor/releases/tag/v1.0.0 |
| 93 | +[Unreleased]: https://github.com/hind-sagar-biswas/java-hypertext-preprocessor/compare/v1.0.0...HEAD |
0 commit comments