about summary refs log tree commit diff stats
path: root/gomponents.go
diff options
context:
space:
mode:
Diffstat (limited to 'gomponents.go')
-rw-r--r--gomponents.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/gomponents.go b/gomponents.go
index 178f0a2..02e52ca 100644
--- a/gomponents.go
+++ b/gomponents.go
@@ -217,3 +217,20 @@ func (g group) Render(io.Writer) error {
 func Group(children []Node) Node {
 	return group{children: children}
 }
+
+// Map something enumerable to a list of Nodes.
+// Example:
+// 	items := []string{"hat", "partyhat"}
+//
+// 	lis := g.Map(len(items), func(i int) g.Node {
+// 		return g.El("li", g.Text(items[i]))
+// 	})
+//
+// 	list := g.El("ul", lis...)
+func Map(length int, cb func(i int) Node) []Node {
+	var nodes []Node
+	for i := 0; i < length; i++ {
+		nodes = append(nodes, cb(i))
+	}
+	return nodes
+}