- cmd/codegen/main.go: drop "errors" stdlib import, use core.Is per Core convention
(non-WASM path).
- layout.go, path.go, responsive.go: add header notes documenting why these files
use stdlib (errors/strings/strconv) instead of core — RFC §7 caps WASM at
3.5 MB raw / 1 MB gzip, and dappco.re/go/core transitively pulls fmt/os/log.
- README.md, docs/index.md: migrate stale forge.lthn.ai/core/go-html module path
to canonical dappco.re/go/core/html; refresh dependency diagram and Go version.
All spec features are already implemented; this is spec-parity maintenance.
Verified: go build ./..., go vet ./..., go test ./... all green (WASM size test
back to 2.12 MB raw / 630 KB gzip after short-lived core-import regression).
Co-Authored-By: Virgil <virgil@lethean.io>
Expose VariantError() on Layout and ErrInvalidLayoutVariant for invalid variant strings while preserving current render behaviour.
Co-Authored-By: Virgil <virgil@lethean.io>
- 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>
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>
- 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>
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>