No description
|
|
||
|---|---|---|
| cmd | ||
| codegen | ||
| docs | ||
| .gitignore | ||
| bench_test.go | ||
| CLAUDE.md | ||
| context.go | ||
| edge_test.go | ||
| go.mod | ||
| go.sum | ||
| integration_test.go | ||
| layout.go | ||
| layout_test.go | ||
| Makefile | ||
| node.go | ||
| node_test.go | ||
| path.go | ||
| path_test.go | ||
| pipeline.go | ||
| pipeline_test.go | ||
| README.md | ||
| render.go | ||
| render_test.go | ||
| responsive.go | ||
| responsive_test.go | ||
| SESSION-BRIEF.md | ||
go-html
HLCRF DOM compositor with grammar pipeline integration for server-side HTML generation and optional WASM client rendering. Provides a type-safe node tree (El, Text, Raw, If, Each, Switch, Entitled), a five-slot Header/Left/Content/Right/Footer layout compositor with deterministic data-block path IDs and ARIA roles, a responsive multi-variant wrapper, a server-side grammar pipeline (StripTags, GrammarImprint via go-i18n reversal, CompareVariants), a build-time Web Component codegen CLI, and a WASM module (2.90 MB raw, 842 KB gzip) exposing renderToString().
Module: forge.lthn.ai/core/go-html
Licence: EUPL-1.2
Language: Go 1.25
Quick Start
import "forge.lthn.ai/core/go-html"
page := html.NewLayout("HCF").
H(html.El("nav", html.Text("i18n.label.navigation"))).
C(html.El("main",
html.El("h1", html.Text("i18n.label.welcome")),
html.Each(items, func(item Item) html.Node {
return html.El("li", html.Text(item.Name))
}),
)).
F(html.El("footer", html.Text("i18n.label.copyright")))
rendered := page.Render(html.NewContext("en-GB"))
Documentation
- Architecture — node interface, HLCRF layout, responsive compositor, grammar pipeline, WASM module, codegen CLI
- Development Guide — building, testing, WASM build, server/client split rules
- Project History — completed phases and known limitations
Build & Test
go test ./...
go test -bench . ./...
GOOS=js GOARCH=wasm go build -ldflags="-s -w" -o gohtml.wasm ./cmd/wasm/
go build ./...
Licence
European Union Public Licence 1.2 — see LICENCE for details.