Virgil
8900d25cfe
fix(html): isolate wrapper attrs from shared nodes
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 20:21:24 +00:00
Virgil
850dbdb0b6
feat(html): index repeated layout block ids
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 20:08:13 +00:00
Virgil
24565df459
docs(html): add AX usage examples
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 19:44:46 +00:00
Virgil
9def509187
fix(html): make fluent builders nil-safe
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 19:34:23 +00:00
Virgil
3375ad0b22
feat(html): export layout variant diagnostics
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 19:28:46 +00:00
Virgil
3fcd8daf59
feat(html): expose layout variant positions
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 19:26:11 +00:00
Virgil
d74b65913a
feat(layout): add variant validity helper
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 19:18:02 +00:00
Virgil
1958cc79b1
docs(html): align public API docs with AX principles
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 18:53:50 +00:00
Virgil
ae286563fd
fix(html): normalise nil render context
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 18:05:06 +00:00
Virgil
957bc85c64
fix(html): improve layout variant diagnostics
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 17:52:31 +00:00
Virgil
9721c23202
feat(html): allow attributes on layouts
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 17:36:48 +00:00
Virgil
c84bd21cf4
docs: align html API comments with AX guidance
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 17:23:37 +00:00
Virgil
ba384aeb12
fix: add nil-safe rendering paths
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 16:55:48 +00:00
Virgil
8bf49c8935
fix(html): preserve nested layout paths through wrappers
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 16:39:34 +00:00
Virgil
8682eeb929
feat(html): add layout variant validation helper
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 16:36:20 +00:00
Virgil
baca8f26cf
feat(layout): render empty variant slots
...
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 16:21:46 +00:00
Snider
2d16ce9d69
fix(conventions): alias stdlib io, add interface checks, use go-log
...
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 1m34s
- Alias stdlib `io` as `goio` in cmd/codegen/main.go to follow project conventions
- Add compile-time Node interface checks for all node types in node.go
and Layout in layout.go
- Replace fmt.Fprintf stderr logging with go-log in cmd/codegen/main.go
- Replace fmt.Println with go-log in cmd/wasm/register.go
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 16:40:39 +00:00
Snider
473fda5894
security: use html.EscapeString for XSS protection in rendering
...
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 46s
Replace manual string-replace escaping with stdlib html.EscapeString.
Escape tag names and attribute keys in elNode and Layout rendering.
Improve Attr() to traverse wrapper nodes (If, Unless, Entitled).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:29:54 +00:00
Snider
78d5b45b0c
feat: modernise to Go 1.26 — iterators, slices/maps, EachSeq
...
Security Scan / security (push) Successful in 10s
Test / test (push) Failing after 36s
- Add EachSeq[T](iter.Seq[T], fn) for iterator-based template rendering
- Use slices.Collect(maps.Keys()) + slices.Sort for deterministic attr output
- Use strings.SplitSeq in codegen TagToClassName and path parsing
- Use range over int in layout and pipeline loops
- Refresh go.sum
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:11:22 +00:00
Snider
4c657377c4
fix(wasm): reduce binary from 1.56MB to 830KB gzip
...
Move heavyweight imports out of WASM build via //go:build !js tags:
- register.go: encoding/json + text/template (codegen)
- pipeline.go: go-i18n/reversal (grammar imprint)
- layout.go: replace fmt.Sprintf with string concat
Add cmd/codegen/ CLI as build-time replacement for in-browser
registerComponents(). Reads slot JSON from stdin, writes WC bundle
JS to stdout.
Result: 2.90MB raw / 830KB gzip (was 6.04MB / 1.56MB).
Makefile gate passes (limit 1MB gzip).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 08:29:54 +00:00
Claude
40da0d8b1d
fix: deterministic attributes and thread-safe nested layouts
...
Sort attribute keys for deterministic HTML output (I-1).
Clone nested layouts before mutating path in Render (I-3),
preventing data races when the same tree is rendered concurrently.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:53:31 +00:00
Claude
d75988a99e
feat: add nested layout path chains
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:40:40 +00:00
Claude
946ea8d0aa
feat: add HLCRF Layout type with semantic elements
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:39:43 +00:00