- Static compiler with STRC pattern (Static Template Resolution with
Compartmentalized Layers)
- Template syntax: { } interpolation, { s-for }, { s-if/s-elif/s-else
}
- File types: .strata, .compiler.sts, .service.sts, .api.sts, .sts,
.scss
- CLI tools: strata-compile dev, strata-compile build, strata-compile
g (generators)
- create-strata-compile scaffolding CLI with Pokemon API example
- Dev server with WebSocket HMR (Hot Module Replacement)
- Documentation: README, ARCHITECTURE, CHANGELOG, CONTRIBUTING,
LICENSE
151 lines
4.0 KiB
Markdown
151 lines
4.0 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to the Strata framework will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
---
|
|
|
|
## [Unreleased]
|
|
|
|
### Planned
|
|
- Component imports (`{ s-imp "@components/Button" }`)
|
|
- SCSS to CSS compilation pipeline
|
|
- Production build optimizations
|
|
- TypeScript type generation for templates
|
|
- VSCode extension for syntax highlighting
|
|
- Nested component slots
|
|
|
|
---
|
|
|
|
## [0.1.0] - 2026-01-16
|
|
|
|
### Added
|
|
|
|
#### Core Framework
|
|
- **Static Compiler**: Build-time template resolution engine
|
|
- Resolves all template syntax to pure HTML
|
|
- Zero runtime framework overhead
|
|
- Caches API responses during build
|
|
|
|
- **STRC Design Pattern**: Static Template Resolution with Compartmentalized Layers
|
|
- Clear separation between template, compiler, service, and API layers
|
|
- Strict import hierarchy enforcement
|
|
- File-type based responsibility assignment
|
|
|
|
#### Template Syntax
|
|
- **Variable Interpolation**: `{ variableName }`
|
|
- Supports dot notation for nested properties (`{ user.name }`)
|
|
- Handles strings, numbers, booleans, arrays, objects
|
|
|
|
- **Loop Directive**: `{ s-for item in items }` ... `{ /s-for }`
|
|
- Iterates over arrays
|
|
- Optional index variable: `{ s-for item, index in items }`
|
|
- Nested loops supported
|
|
|
|
- **Conditional Directives**: `{ s-if }`, `{ s-elif }`, `{ s-else }`, `{ /s-if }`
|
|
- Boolean evaluation
|
|
- Negation with `!`
|
|
- Comparison operators: `===`, `==`, `!==`, `!=`, `>`, `<`, `>=`, `<=`
|
|
|
|
#### File Types
|
|
- `.strata` - HTML template files
|
|
- `.compiler.sts` - Build-time variable definitions
|
|
- `.service.sts` - Business logic layer (build + runtime)
|
|
- `.api.sts` - API contract definitions
|
|
- `.sts` - Pure utility functions
|
|
- `.scss` - Component/page styles
|
|
|
|
#### CLI Tools
|
|
- `strata-compile dev` - Development server with Hot Module Replacement (HMR)
|
|
- `strata-compile build` - Production build
|
|
- `strata-compile preview` - Preview production build
|
|
- Generator commands:
|
|
- `strata-compile gcomponent <Name>`
|
|
- `strata-compile gpage <name>`
|
|
- `strata-compile gservice <name>`
|
|
- `strata-compile gapi <name>`
|
|
- `strata-compile gutil <name>`
|
|
- `strata-compile gstore <name>`
|
|
|
|
#### Project Scaffolding
|
|
- `create-strata` CLI tool
|
|
- Pokemon API example template
|
|
- Index page with ASCII art branding
|
|
- Pre-configured project structure
|
|
|
|
#### Development Server
|
|
- WebSocket-based Hot Module Replacement
|
|
- Automatic rebuild on file changes
|
|
- CSS hot reload without page refresh
|
|
- Component change detection
|
|
|
|
#### Parser
|
|
- Custom Strata template parser
|
|
- AST-based template processing
|
|
- Balanced bracket extraction for complex structures
|
|
- JavaScript-to-JSON conversion for data parsing
|
|
|
|
### Technical Details
|
|
|
|
#### Compiler Implementation
|
|
- Written in Go for maximum performance
|
|
- Regex-based export extraction from `.compiler.sts`
|
|
- Recursive template resolution
|
|
- Property access chain support (`item.nested.value`)
|
|
|
|
#### Build Process
|
|
1. Parse `.strata` template to AST
|
|
2. Load exports from `.compiler.sts`
|
|
3. Resolve all directives (for, if, interpolation)
|
|
4. Output pure HTML string
|
|
5. Bundle with optional runtime service code
|
|
|
|
---
|
|
|
|
## [0.0.1] - 2026-01-15
|
|
|
|
### Added
|
|
- Initial project structure
|
|
- Basic Go compiler setup
|
|
- Makefile for build automation
|
|
- Development environment configuration
|
|
|
|
---
|
|
|
|
## Version History Summary
|
|
|
|
| Version | Date | Highlights |
|
|
|---------|------|------------|
|
|
| 0.1.0 | 2026-01-16 | Core framework, STRC pattern, template syntax, CLI tools |
|
|
| 0.0.1 | 2026-01-15 | Initial project setup |
|
|
|
|
---
|
|
|
|
## Migration Guides
|
|
|
|
### Migrating to 0.1.0
|
|
|
|
This is the first functional release. No migration required.
|
|
|
|
---
|
|
|
|
## Deprecations
|
|
|
|
None yet.
|
|
|
|
---
|
|
|
|
## Security
|
|
|
|
No security vulnerabilities reported.
|
|
|
|
To report a security issue, please open an issue at https://github.com/CarGDev/strata/issues
|
|
|
|
---
|
|
|
|
[Unreleased]: https://github.com/CarGDev/strata/compare/v0.1.0...HEAD
|
|
[0.1.0]: https://github.com/CarGDev/strata/compare/v0.0.1...v0.1.0
|
|
[0.0.1]: https://github.com/CarGDev/strata/releases/tag/v0.0.1
|