From 4d9f1c2aedf43dbd0989f4c8165a18ed6a5a33ed Mon Sep 17 00:00:00 2001 From: Markus Wüstenberg Date: Fri, 18 Sep 2020 15:01:10 +0200 Subject: Add package el with element helpers (#8) --- el/elements.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 el/elements.go (limited to 'el/elements.go') diff --git a/el/elements.go b/el/elements.go new file mode 100644 index 0000000..ecff7e8 --- /dev/null +++ b/el/elements.go @@ -0,0 +1,41 @@ +// Package el provides shortcuts and helpers to common HTML elements. +// See https://developer.mozilla.org/en-US/docs/Web/HTML/Element for a list of elements. +package el + +import ( + "strings" + + g "github.com/maragudk/gomponents" +) + +// Document returns an special kind of Node that prefixes its children with the string "". +func Document(children ...g.Node) g.NodeFunc { + return func() string { + var b strings.Builder + b.WriteString("") + for _, c := range children { + b.WriteString(c.Render()) + } + return b.String() + } +} + +// HTML returns an element with name "html" and the given children. +func HTML(children ...g.Node) g.NodeFunc { + return g.El("html", children...) +} + +// Head returns an element with name "head" and the given children. +func Head(children ...g.Node) g.NodeFunc { + return g.El("head", children...) +} + +// Body returns an element with name "body" and the given children. +func Body(children ...g.Node) g.NodeFunc { + return g.El("body", children...) +} + +// Title returns an element with name "title" and a single Text child. +func Title(title string) g.NodeFunc { + return g.El("title", g.Text(title)) +} -- cgit 1.4.1