diff options
Diffstat (limited to 'el')
-rw-r--r-- | el/elements.go | 68 | ||||
-rw-r--r-- | el/elements_test.go | 82 | ||||
-rw-r--r-- | el/simple.go | 257 | ||||
-rw-r--r-- | el/simple_test.go | 97 | ||||
-rw-r--r-- | el/text.go | 131 | ||||
-rw-r--r-- | el/text_test.go | 52 |
6 files changed, 0 insertions, 687 deletions
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 "<!doctype html>". -func Document(child g.Node) g.NodeFunc { - return func(w io.Writer) error { - if _, err := w.Write([]byte("<!doctype html>")); 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, `<!doctype html><html></html>`, 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, `<form action="/" method="post"></form>`, 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, `<input type="text" name="hat">`, 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, `<label for="hat">Hat</label>`, 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, `<option value="hat">Hat</option>`, 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, `<progress value="5.5" max="10"></progress>`, 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, `<select name="hat"><option value="partyhat">Partyhat</option></select>`, - 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, `<textarea name="hat"></textarea>`, 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, `<a href="#">hat</a>`, 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, `<img src="hat.png" alt="hat" id="image">`, 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) - }) - } -} |