attribute | ||
element | ||
internal/codegen | ||
.gitlab-ci.yml | ||
attribute types.txt | ||
benchmark_test.go | ||
CHANGELOG.md | ||
ci_check | ||
COPYING | ||
defs.json | ||
go.mod | ||
go.sum | ||
hatmill_test.go | ||
hatmill.go | ||
README.md |
hatmill - HTML generation DSL for Go
hatmill
provides a simple set of types and helper functions for writing HTML in plain Go code, without having to deal with any template languages. It is not spectacularly fast, but is comparable to the html/template
package (at least in simple cases; run go test -bench=. -benchmem
for proof). hatmill
“templates” are arguably easier to read and write than many template languages.
hatmill
uses semantic versioning.
Installation
There are three necessary packages:
gitlab.codemonkeysoftware.net/b/hatmill
gitlab.codemonkeysoftware.net/b/hatmill/attribute
gitlab.codemonkeysoftware.net/b/hatmill/element
Install them as you would any other Go package, with go get
or whatever.
gitlab.codemonkeysoftware.net/b/hatmill
is a Go module and so will play nicely
with Go ≥ 1.11.
Usage
Basic types are in gitlab.codemonkeysoftware.net/b/hatmill
. The attribute
and element
subpackages contain helper functions for HTML5 attributes and
elements. See the Example
function in hatmill_test.go
.
Hacking
If there is a missing attribute or element helper function, describe it in
defs.json
and run go generate
in the repository root. If you can't figure
out what you need to know by reading defs.json
, internal/codegen/*
,
attribute/*
, and element/*
, then
pester me to
improve the documentation.