From a76262652b227c95ce140f3698c46f59b79354ac Mon Sep 17 00:00:00 2001
From: Markus Wüstenberg
Date: Thu, 10 Dec 2020 13:00:23 +0100
Subject: Move elements and attributes into html package (#52)
This makes it easier to use dot-imports.
Also updated the readme and examples with new usage, and move the `Classes` helper into the `components` package.---
el/elements.go | 68 --------------
el/elements_test.go | 82 -----------------
el/simple.go | 257 ----------------------------------------------------
el/simple_test.go | 97 --------------------
el/text.go | 131 --------------------------
el/text_test.go | 52 -----------
6 files changed, 687 deletions(-)
delete mode 100644 el/elements.go
delete mode 100644 el/elements_test.go
delete mode 100644 el/simple.go
delete mode 100644 el/simple_test.go
delete mode 100644 el/text.go
delete mode 100644 el/text_test.go
(limited to 'el')
diff --git a/el/elements.go b/el/elements.go
deleted file mode 100644
index 0841ff8..0000000
--- a/el/elements.go
+++ /dev/null
@@ -1,68 +0,0 @@
-// 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 (
- "fmt"
- "io"
-
- g "github.com/maragudk/gomponents"
-)
-
-func A(href string, children ...g.Node) g.NodeFunc {
- return g.El("a", g.Attr("href", href), g.Group(children))
-}
-
-// Document returns an special kind of Node that prefixes its child with the string "".
-func Document(child g.Node) g.NodeFunc {
- return func(w io.Writer) error {
- if _, err := w.Write([]byte("")); err != nil {
- return err
- }
- return child.Render(w)
- }
-}
-
-// Form returns an element with name "form", the given action and method attributes, and the given children.
-func Form(action, method string, children ...g.Node) g.NodeFunc {
- return g.El("form", g.Attr("action", action), g.Attr("method", method), g.Group(children))
-}
-
-func Img(src, alt string, children ...g.Node) g.NodeFunc {
- return g.El("img", g.Attr("src", src), g.Attr("alt", alt), g.Group(children))
-}
-
-// Input returns an element with name "input", the given type and name attributes, and the given children.
-// Note that "type" is a keyword in Go, so the parameter is called typ.
-func Input(typ, name string, children ...g.Node) g.NodeFunc {
- return g.El("input", g.Attr("type", typ), g.Attr("name", name), g.Group(children))
-}
-
-// Label returns an element with name "label", the given for attribute, and the given children.
-// Note that "for" is a keyword in Go, so the parameter is called forr.
-func Label(forr string, children ...g.Node) g.NodeFunc {
- return g.El("label", g.Attr("for", forr), g.Group(children))
-}
-
-// Option returns an element with name "option", the given text content and value attribute, and the given children.
-func Option(text, value string, children ...g.Node) g.NodeFunc {
- return g.El("option", g.Attr("value", value), g.Text(text), g.Group(children))
-}
-
-// Progress returns an element with name "progress", the given value and max attributes, and the given children.
-func Progress(value, max float64, children ...g.Node) g.NodeFunc {
- return g.El("progress",
- g.Attr("value", fmt.Sprintf("%v", value)),
- g.Attr("max", fmt.Sprintf("%v", max)),
- g.Group(children))
-}
-
-// Select returns an element with name "select", the given name attribute, and the given children.
-func Select(name string, children ...g.Node) g.NodeFunc {
- return g.El("select", g.Attr("name", name), g.Group(children))
-}
-
-// Textarea returns an element with name "textarea", the given name attribute, and the given children.
-func Textarea(name string, children ...g.Node) g.NodeFunc {
- return g.El("textarea", g.Attr("name", name), g.Group(children))
-}
diff --git a/el/elements_test.go b/el/elements_test.go
deleted file mode 100644
index adce6df..0000000
--- a/el/elements_test.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package el_test
-
-import (
- "errors"
- "testing"
-
- g "github.com/maragudk/gomponents"
- "github.com/maragudk/gomponents/assert"
- "github.com/maragudk/gomponents/el"
-)
-
-type erroringWriter struct{}
-
-func (w *erroringWriter) Write(p []byte) (n int, err error) {
- return 0, errors.New("don't want to write")
-}
-
-func TestDocument(t *testing.T) {
- t.Run("returns doctype and children", func(t *testing.T) {
- assert.Equal(t, ``, el.Document(g.El("html")))
- })
-
- t.Run("errors on write error in Render", func(t *testing.T) {
- err := el.Document(g.El("html")).Render(&erroringWriter{})
- assert.Error(t, err)
- })
-}
-
-func TestForm(t *testing.T) {
- t.Run("returns a form element with action and method attributes", func(t *testing.T) {
- assert.Equal(t, `
`, el.Form("/", "post"))
- })
-}
-
-func TestInput(t *testing.T) {
- t.Run("returns an input element with attributes type and name", func(t *testing.T) {
- assert.Equal(t, ` `, el.Input("text", "hat"))
- })
-}
-
-func TestLabel(t *testing.T) {
- t.Run("returns a label element with attribute for", func(t *testing.T) {
- assert.Equal(t, `Hat `, el.Label("hat", g.Text("Hat")))
- })
-}
-
-func TestOption(t *testing.T) {
- t.Run("returns an option element with attribute label and content", func(t *testing.T) {
- assert.Equal(t, `Hat `, el.Option("Hat", "hat"))
- })
-}
-
-func TestProgress(t *testing.T) {
- t.Run("returns a progress element with attributes value and max", func(t *testing.T) {
- assert.Equal(t, ` `, el.Progress(5.5, 10))
- })
-}
-
-func TestSelect(t *testing.T) {
- t.Run("returns a select element with attribute name", func(t *testing.T) {
- assert.Equal(t, `Partyhat `,
- el.Select("hat", el.Option("Partyhat", "partyhat")))
- })
-}
-
-func TestTextarea(t *testing.T) {
- t.Run("returns a textarea element with attribute name", func(t *testing.T) {
- assert.Equal(t, ``, el.Textarea("hat"))
- })
-}
-
-func TestA(t *testing.T) {
- t.Run("returns an a element with a href attribute", func(t *testing.T) {
- assert.Equal(t, `hat `, el.A("#", g.Text("hat")))
- })
-}
-
-func TestImg(t *testing.T) {
- t.Run("returns an img element with href and alt attributes", func(t *testing.T) {
- assert.Equal(t, ` `, el.Img("hat.png", "hat", g.Attr("id", "image")))
- })
-}
diff --git a/el/simple.go b/el/simple.go
deleted file mode 100644
index 1ebf33f..0000000
--- a/el/simple.go
+++ /dev/null
@@ -1,257 +0,0 @@
-package el
-
-import (
- g "github.com/maragudk/gomponents"
-)
-
-func Address(children ...g.Node) g.NodeFunc {
- return g.El("address", children...)
-}
-
-func Area(children ...g.Node) g.NodeFunc {
- return g.El("area", children...)
-}
-
-func Article(children ...g.Node) g.NodeFunc {
- return g.El("article", children...)
-}
-
-func Aside(children ...g.Node) g.NodeFunc {
- return g.El("aside", children...)
-}
-
-func Audio(children ...g.Node) g.NodeFunc {
- return g.El("audio", children...)
-}
-
-func Base(children ...g.Node) g.NodeFunc {
- return g.El("base", children...)
-}
-
-func BlockQuote(children ...g.Node) g.NodeFunc {
- return g.El("blockquote", children...)
-}
-
-func Body(children ...g.Node) g.NodeFunc {
- return g.El("body", children...)
-}
-
-func Br(children ...g.Node) g.NodeFunc {
- return g.El("br", children...)
-}
-
-func Button(children ...g.Node) g.NodeFunc {
- return g.El("button", children...)
-}
-
-func Canvas(children ...g.Node) g.NodeFunc {
- return g.El("canvas", children...)
-}
-
-func Cite(children ...g.Node) g.NodeFunc {
- return g.El("cite", children...)
-}
-
-func Code(children ...g.Node) g.NodeFunc {
- return g.El("code", children...)
-}
-
-func Col(children ...g.Node) g.NodeFunc {
- return g.El("col", children...)
-}
-
-func ColGroup(children ...g.Node) g.NodeFunc {
- return g.El("colgroup", children...)
-}
-
-func Data(children ...g.Node) g.NodeFunc {
- return g.El("data", children...)
-}
-
-func DataList(children ...g.Node) g.NodeFunc {
- return g.El("datalist", children...)
-}
-
-func Details(children ...g.Node) g.NodeFunc {
- return g.El("details", children...)
-}
-
-func Dialog(children ...g.Node) g.NodeFunc {
- return g.El("dialog", children...)
-}
-
-func Div(children ...g.Node) g.NodeFunc {
- return g.El("div", children...)
-}
-
-func Dl(children ...g.Node) g.NodeFunc {
- return g.El("dl", children...)
-}
-
-func Embed(children ...g.Node) g.NodeFunc {
- return g.El("embed", children...)
-}
-
-func FieldSet(children ...g.Node) g.NodeFunc {
- return g.El("fieldset", children...)
-}
-
-func Figure(children ...g.Node) g.NodeFunc {
- return g.El("figure", children...)
-}
-
-func Footer(children ...g.Node) g.NodeFunc {
- return g.El("footer", children...)
-}
-
-func Head(children ...g.Node) g.NodeFunc {
- return g.El("head", children...)
-}
-
-func Header(children ...g.Node) g.NodeFunc {
- return g.El("header", children...)
-}
-
-func HGroup(children ...g.Node) g.NodeFunc {
- return g.El("hgroup", children...)
-}
-
-func Hr(children ...g.Node) g.NodeFunc {
- return g.El("hr", children...)
-}
-
-func HTML(children ...g.Node) g.NodeFunc {
- return g.El("html", children...)
-}
-
-func IFrame(children ...g.Node) g.NodeFunc {
- return g.El("iframe", children...)
-}
-
-func Legend(children ...g.Node) g.NodeFunc {
- return g.El("legend", children...)
-}
-
-func Li(children ...g.Node) g.NodeFunc {
- return g.El("li", children...)
-}
-
-func Link(children ...g.Node) g.NodeFunc {
- return g.El("link", children...)
-}
-
-func Main(children ...g.Node) g.NodeFunc {
- return g.El("main", children...)
-}
-
-func Menu(children ...g.Node) g.NodeFunc {
- return g.El("menu", children...)
-}
-
-func Meta(children ...g.Node) g.NodeFunc {
- return g.El("meta", children...)
-}
-
-func Meter(children ...g.Node) g.NodeFunc {
- return g.El("meter", children...)
-}
-
-func Nav(children ...g.Node) g.NodeFunc {
- return g.El("nav", children...)
-}
-
-func NoScript(children ...g.Node) g.NodeFunc {
- return g.El("noscript", children...)
-}
-
-func Object(children ...g.Node) g.NodeFunc {
- return g.El("object", children...)
-}
-
-func Ol(children ...g.Node) g.NodeFunc {
- return g.El("ol", children...)
-}
-
-func OptGroup(children ...g.Node) g.NodeFunc {
- return g.El("optgroup", children...)
-}
-
-func P(children ...g.Node) g.NodeFunc {
- return g.El("p", children...)
-}
-
-func Param(children ...g.Node) g.NodeFunc {
- return g.El("param", children...)
-}
-
-func Picture(children ...g.Node) g.NodeFunc {
- return g.El("picture", children...)
-}
-
-func Pre(children ...g.Node) g.NodeFunc {
- return g.El("pre", children...)
-}
-
-func Script(children ...g.Node) g.NodeFunc {
- return g.El("script", children...)
-}
-
-func Section(children ...g.Node) g.NodeFunc {
- return g.El("section", children...)
-}
-
-func Source(children ...g.Node) g.NodeFunc {
- return g.El("source", children...)
-}
-
-func Span(children ...g.Node) g.NodeFunc {
- return g.El("span", children...)
-}
-
-func Style(children ...g.Node) g.NodeFunc {
- return g.El("style", children...)
-}
-
-func Summary(children ...g.Node) g.NodeFunc {
- return g.El("summary", children...)
-}
-
-func SVG(children ...g.Node) g.NodeFunc {
- return g.El("svg", children...)
-}
-
-func Table(children ...g.Node) g.NodeFunc {
- return g.El("table", children...)
-}
-
-func TBody(children ...g.Node) g.NodeFunc {
- return g.El("tbody", children...)
-}
-
-func Td(children ...g.Node) g.NodeFunc {
- return g.El("td", children...)
-}
-
-func TFoot(children ...g.Node) g.NodeFunc {
- return g.El("tfoot", children...)
-}
-
-func Th(children ...g.Node) g.NodeFunc {
- return g.El("th", children...)
-}
-
-func THead(children ...g.Node) g.NodeFunc {
- return g.El("thead", children...)
-}
-
-func Tr(children ...g.Node) g.NodeFunc {
- return g.El("tr", children...)
-}
-
-func Ul(children ...g.Node) g.NodeFunc {
- return g.El("ul", children...)
-}
-
-func Wbr(children ...g.Node) g.NodeFunc {
- return g.El("wbr", children...)
-}
diff --git a/el/simple_test.go b/el/simple_test.go
deleted file mode 100644
index 2621982..0000000
--- a/el/simple_test.go
+++ /dev/null
@@ -1,97 +0,0 @@
-package el_test
-
-import (
- "fmt"
- "testing"
-
- g "github.com/maragudk/gomponents"
- "github.com/maragudk/gomponents/assert"
- "github.com/maragudk/gomponents/el"
-)
-
-func TestSimpleElements(t *testing.T) {
- cases := map[string]func(...g.Node) g.NodeFunc{
- "address": el.Address,
- "article": el.Article,
- "aside": el.Aside,
- "audio": el.Audio,
- "blockquote": el.BlockQuote,
- "body": el.Body,
- "button": el.Button,
- "canvas": el.Canvas,
- "cite": el.Cite,
- "code": el.Code,
- "colgroup": el.ColGroup,
- "data": el.Data,
- "datalist": el.DataList,
- "details": el.Details,
- "dialog": el.Dialog,
- "div": el.Div,
- "dl": el.Dl,
- "fieldset": el.FieldSet,
- "figure": el.Figure,
- "footer": el.Footer,
- "head": el.Head,
- "header": el.Header,
- "hgroup": el.HGroup,
- "html": el.HTML,
- "iframe": el.IFrame,
- "legend": el.Legend,
- "li": el.Li,
- "main": el.Main,
- "menu": el.Menu,
- "meter": el.Meter,
- "nav": el.Nav,
- "noscript": el.NoScript,
- "object": el.Object,
- "ol": el.Ol,
- "optgroup": el.OptGroup,
- "p": el.P,
- "picture": el.Picture,
- "pre": el.Pre,
- "script": el.Script,
- "section": el.Section,
- "span": el.Span,
- "style": el.Style,
- "summary": el.Summary,
- "svg": el.SVG,
- "table": el.Table,
- "tbody": el.TBody,
- "td": el.Td,
- "tfoot": el.TFoot,
- "th": el.Th,
- "thead": el.THead,
- "tr": el.Tr,
- "ul": el.Ul,
- }
-
- for name, fn := range cases {
- t.Run(fmt.Sprintf("should output %v", name), func(t *testing.T) {
- n := fn(g.Attr("id", "hat"))
- assert.Equal(t, fmt.Sprintf(`<%v id="hat">%v>`, name, name), n)
- })
- }
-}
-
-func TestSimpleVoidKindElements(t *testing.T) {
- cases := map[string]func(...g.Node) g.NodeFunc{
- "area": el.Area,
- "base": el.Base,
- "br": el.Br,
- "col": el.Col,
- "embed": el.Embed,
- "hr": el.Hr,
- "link": el.Link,
- "meta": el.Meta,
- "param": el.Param,
- "source": el.Source,
- "wbr": el.Wbr,
- }
-
- for name, fn := range cases {
- t.Run(fmt.Sprintf("should output %v", name), func(t *testing.T) {
- n := fn(g.Attr("id", "hat"))
- assert.Equal(t, fmt.Sprintf(`<%v id="hat">`, name), n)
- })
- }
-}
diff --git a/el/text.go b/el/text.go
deleted file mode 100644
index 6ab88db..0000000
--- a/el/text.go
+++ /dev/null
@@ -1,131 +0,0 @@
-package el
-
-import (
- g "github.com/maragudk/gomponents"
-)
-
-func Abbr(text string, children ...g.Node) g.NodeFunc {
- return g.El("abbr", g.Text(text), g.Group(children))
-}
-
-func B(text string, children ...g.Node) g.NodeFunc {
- return g.El("b", g.Text(text), g.Group(children))
-}
-
-func Caption(text string, children ...g.Node) g.NodeFunc {
- return g.El("caption", g.Text(text), g.Group(children))
-}
-
-func Dd(text string, children ...g.Node) g.NodeFunc {
- return g.El("dd", g.Text(text), g.Group(children))
-}
-
-func Del(text string, children ...g.Node) g.NodeFunc {
- return g.El("del", g.Text(text), g.Group(children))
-}
-
-func Dfn(text string, children ...g.Node) g.NodeFunc {
- return g.El("dfn", g.Text(text), g.Group(children))
-}
-
-func Dt(text string, children ...g.Node) g.NodeFunc {
- return g.El("dt", g.Text(text), g.Group(children))
-}
-
-func Em(text string, children ...g.Node) g.NodeFunc {
- return g.El("em", g.Text(text), g.Group(children))
-}
-
-func FigCaption(text string, children ...g.Node) g.NodeFunc {
- return g.El("figcaption", g.Text(text), g.Group(children))
-}
-
-// H1 returns an element with name "h1", the given text content, and the given children.
-func H1(text string, children ...g.Node) g.NodeFunc {
- return g.El("h1", g.Text(text), g.Group(children))
-}
-
-// H2 returns an element with name "h2", the given text content, and the given children.
-func H2(text string, children ...g.Node) g.NodeFunc {
- return g.El("h2", g.Text(text), g.Group(children))
-}
-
-// H3 returns an element with name "h3", the given text content, and the given children.
-func H3(text string, children ...g.Node) g.NodeFunc {
- return g.El("h3", g.Text(text), g.Group(children))
-}
-
-// H4 returns an element with name "h4", the given text content, and the given children.
-func H4(text string, children ...g.Node) g.NodeFunc {
- return g.El("h4", g.Text(text), g.Group(children))
-}
-
-// H5 returns an element with name "h5", the given text content, and the given children.
-func H5(text string, children ...g.Node) g.NodeFunc {
- return g.El("h5", g.Text(text), g.Group(children))
-}
-
-// H6 returns an element with name "h6", the given text content, and the given children.
-func H6(text string, children ...g.Node) g.NodeFunc {
- return g.El("h6", g.Text(text), g.Group(children))
-}
-
-func I(text string, children ...g.Node) g.NodeFunc {
- return g.El("i", g.Text(text), g.Group(children))
-}
-
-func Ins(text string, children ...g.Node) g.NodeFunc {
- return g.El("ins", g.Text(text), g.Group(children))
-}
-
-func Kbd(text string, children ...g.Node) g.NodeFunc {
- return g.El("kbd", g.Text(text), g.Group(children))
-}
-
-func Mark(text string, children ...g.Node) g.NodeFunc {
- return g.El("mark", g.Text(text), g.Group(children))
-}
-
-func Q(text string, children ...g.Node) g.NodeFunc {
- return g.El("q", g.Text(text), g.Group(children))
-}
-
-func S(text string, children ...g.Node) g.NodeFunc {
- return g.El("s", g.Text(text), g.Group(children))
-}
-
-func Samp(text string, children ...g.Node) g.NodeFunc {
- return g.El("samp", g.Text(text), g.Group(children))
-}
-
-func Small(text string, children ...g.Node) g.NodeFunc {
- return g.El("small", g.Text(text), g.Group(children))
-}
-
-func Strong(text string, children ...g.Node) g.NodeFunc {
- return g.El("strong", g.Text(text), g.Group(children))
-}
-
-func Sub(text string, children ...g.Node) g.NodeFunc {
- return g.El("sub", g.Text(text), g.Group(children))
-}
-
-func Sup(text string, children ...g.Node) g.NodeFunc {
- return g.El("sup", g.Text(text), g.Group(children))
-}
-
-func Time(text string, children ...g.Node) g.NodeFunc {
- return g.El("time", g.Text(text), g.Group(children))
-}
-
-func Title(title string, children ...g.Node) g.NodeFunc {
- return g.El("title", g.Text(title), g.Group(children))
-}
-
-func U(text string, children ...g.Node) g.NodeFunc {
- return g.El("u", g.Text(text), g.Group(children))
-}
-
-func Var(text string, children ...g.Node) g.NodeFunc {
- return g.El("var", g.Text(text), g.Group(children))
-}
diff --git a/el/text_test.go b/el/text_test.go
deleted file mode 100644
index a751e19..0000000
--- a/el/text_test.go
+++ /dev/null
@@ -1,52 +0,0 @@
-package el_test
-
-import (
- "fmt"
- "testing"
-
- g "github.com/maragudk/gomponents"
- "github.com/maragudk/gomponents/assert"
- "github.com/maragudk/gomponents/el"
-)
-
-func TestTextElements(t *testing.T) {
- cases := map[string]func(string, ...g.Node) g.NodeFunc{
- "abbr": el.Abbr,
- "b": el.B,
- "caption": el.Caption,
- "dd": el.Dd,
- "del": el.Del,
- "dfn": el.Dfn,
- "dt": el.Dt,
- "em": el.Em,
- "figcaption": el.FigCaption,
- "h1": el.H1,
- "h2": el.H2,
- "h3": el.H3,
- "h4": el.H4,
- "h5": el.H5,
- "h6": el.H6,
- "i": el.I,
- "ins": el.Ins,
- "kbd": el.Kbd,
- "mark": el.Mark,
- "q": el.Q,
- "s": el.S,
- "samp": el.Samp,
- "small": el.Small,
- "strong": el.Strong,
- "sub": el.Sub,
- "sup": el.Sup,
- "time": el.Time,
- "title": el.Title,
- "u": el.U,
- "var": el.Var,
- }
-
- for name, fn := range cases {
- t.Run(fmt.Sprintf("should output %v", name), func(t *testing.T) {
- n := fn("hat", g.Attr("id", "hat"))
- assert.Equal(t, fmt.Sprintf(`<%v id="hat">hat%v>`, name, name), n)
- })
- }
-}
--
cgit 1.4.1