git commit -m "feat: initial release of Strata framework v0.1.0
- 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 dev, strata build, strata g (generators)
- create-strata scaffolding CLI with Pokemon API example
- Dev server with WebSocket HMR (Hot Module Replacement)
- Documentation: README, ARCHITECTURE, CHANGELOG, CONTRIBUTING,
LICENSE
This commit is contained in:
150
CHANGELOG.md
Normal file
150
CHANGELOG.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# 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 dev` - Development server with Hot Module Replacement (HMR)
|
||||
- `strata build` - Production build
|
||||
- `strata preview` - Preview production build
|
||||
- Generator commands:
|
||||
- `strata g component <Name>`
|
||||
- `strata g page <name>`
|
||||
- `strata g service <name>`
|
||||
- `strata g api <name>`
|
||||
- `strata g util <name>`
|
||||
- `strata g store <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
|
||||
Reference in New Issue
Block a user