Documentation
¶
Overview ¶
## htmlgo
Type safe and modularize way to generate html on server side. Download the package with `go get -v github.com/r0vx/htmlgo` and import the package with `.` gives you simpler code:
import ( . "github.com/r0vx/htmlgo" )
also checkout full API documentation at: https://godoc.org/github.com/r0vx/htmlgo
Index ¶
- func Fprint(w io.Writer, root HTMLComponent, ctx context.Context) error
- func JSONString(v interface{}) (r string)
- func MustString(root HTMLComponent, ctx context.Context) string
- type ComponentFunc
- type HTMLComponent
- type HTMLComponents
- type HTMLTagBuilder
- func A(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Abbr(text string) (r *HTMLTagBuilder)
- func Address(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Area() (r *HTMLTagBuilder)
- func Article(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Aside(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Audio(children ...HTMLComponent) (r *HTMLTagBuilder)
- func B(text string) (r *HTMLTagBuilder)
- func Base() (r *HTMLTagBuilder)
- func Bdi(text string) (r *HTMLTagBuilder)
- func Bdo(text string) (r *HTMLTagBuilder)
- func Blockquote(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Body(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Br() (r *HTMLTagBuilder)
- func Button(label string) (r *HTMLTagBuilder)
- func Canvas(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Caption(text string) (r *HTMLTagBuilder)
- func Cite(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Code(text string) (r *HTMLTagBuilder)
- func Col() (r *HTMLTagBuilder)
- func Colgroup(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Data(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Datalist(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Dd(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Del(text string) (r *HTMLTagBuilder)
- func Details(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Dfn(text string) (r *HTMLTagBuilder)
- func Dialog(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Div(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Dl(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Dt(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Em(text string) (r *HTMLTagBuilder)
- func Embed() (r *HTMLTagBuilder)
- func Fieldset(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Figcaption(text string) (r *HTMLTagBuilder)
- func Figure(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Footer(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Form(children ...HTMLComponent) (r *HTMLTagBuilder)
- func H1(text string) (r *HTMLTagBuilder)
- func H2(text string) (r *HTMLTagBuilder)
- func H3(text string) (r *HTMLTagBuilder)
- func H4(text string) (r *HTMLTagBuilder)
- func H5(text string) (r *HTMLTagBuilder)
- func H6(text string) (r *HTMLTagBuilder)
- func Head(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Header(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Hgroup(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Hr() (r *HTMLTagBuilder)
- func I(text string) (r *HTMLTagBuilder)
- func Iframe(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Img(src string) (r *HTMLTagBuilder)
- func Input(name string) (r *HTMLTagBuilder)
- func Ins(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Kbd(text string) (r *HTMLTagBuilder)
- func Label(text string) (r *HTMLTagBuilder)
- func Legend(text string) (r *HTMLTagBuilder)
- func Li(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Link(href string) (r *HTMLTagBuilder)
- func Main(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Map(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Mark(text string) (r *HTMLTagBuilder)
- func Menu(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Meta() (r *HTMLTagBuilder)
- func Meter(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Nav(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Noscript(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Object(data string) (r *HTMLTagBuilder)
- func Ol(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Optgroup(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Option(text string) (r *HTMLTagBuilder)
- func Output(children ...HTMLComponent) (r *HTMLTagBuilder)
- func P(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Param(name string) (r *HTMLTagBuilder)
- func Picture(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Pre(text string) (r *HTMLTagBuilder)
- func Progress(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Q(text string) (r *HTMLTagBuilder)
- func Rp(text string) (r *HTMLTagBuilder)
- func Rt(text string) (r *HTMLTagBuilder)
- func Ruby(children ...HTMLComponent) (r *HTMLTagBuilder)
- func S(text string) (r *HTMLTagBuilder)
- func Samp(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Script(script string) (r *HTMLTagBuilder)
- func Section(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Select(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Slot(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Small(text string) (r *HTMLTagBuilder)
- func Source(src string) (r *HTMLTagBuilder)
- func Span(text string) (r *HTMLTagBuilder)
- func Strong(text string) (r *HTMLTagBuilder)
- func Style(style string) (r *HTMLTagBuilder)
- func Sub(text string) (r *HTMLTagBuilder)
- func Summary(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Sup(text string) (r *HTMLTagBuilder)
- func Table(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Tag(tag string) (r *HTMLTagBuilder)
- func Tbody(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Td(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Template(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Textarea(text string) (r *HTMLTagBuilder)
- func Tfoot(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Th(text string) (r *HTMLTagBuilder)
- func Thead(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Time(datetime string) (r *HTMLTagBuilder)
- func Title(text string) (r *HTMLTagBuilder)
- func Tr(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Track(src string) (r *HTMLTagBuilder)
- func U(text string) (r *HTMLTagBuilder)
- func Ul(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Var(text string) (r *HTMLTagBuilder)
- func Video(children ...HTMLComponent) (r *HTMLTagBuilder)
- func Wbr() (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Action(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Alt(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) AppendChildren(c ...HTMLComponent) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Attr(vs ...interface{}) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) AttrIf(key, value interface{}, add bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Charset(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Checked(v bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Children(comps ...HTMLComponent) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Class(names ...string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) ClassIf(name string, add bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Content(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Data(vs ...string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Disabled(v bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) For(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Href(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Id(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) MarshalHTML(ctx context.Context, buf *[]byte) error
- func (b *HTMLTagBuilder) Method(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Name(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) OmitEndTag() (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Placeholder(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) PrependChildren(c ...HTMLComponent) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Property(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Readonly(v bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Rel(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Required(v bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Role(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) SetAttr(k string, v interface{})
- func (b *HTMLTagBuilder) Src(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Style(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) StyleIf(v string, add bool) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) TabIndex(v int) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Tag(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Target(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Text(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Title(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Type(v string) (r *HTMLTagBuilder)
- func (b *HTMLTagBuilder) Value(v string) (r *HTMLTagBuilder)
- type IfBuilder
- type IfFuncBuilder
- type MutableAttrHTMLComponent
- type RawHTML
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Fprint ¶
Fprint 将组件渲染后写入 w,整棵树共享一个 buf
Example ¶
An example about how to integrate into http.Handler, and how to do layout, and how to use context.
type User struct {
Name string
}
userStatus := func() HTMLComponent {
return ComponentFunc(func(ctx context.Context, buf *[]byte) error {
if currentUser, ok := ctx.Value("currentUser").(*User); ok {
return Div(
Text(currentUser.Name),
).Class("username").MarshalHTML(ctx, buf)
}
return Div(Text("Login")).Class("login").MarshalHTML(ctx, buf)
})
}
myHeader := func() HTMLComponent {
return Div(
Text("header"),
userStatus(),
).Class("header")
}
myFooter := func() HTMLComponent {
return Div(Text("footer")).Class("footer")
}
layout := func(in HTMLComponent) (out HTMLComponent) {
out = HTML(
Head(
Meta().Charset("utf8"),
),
Body(
myHeader(),
in,
myFooter(),
),
)
return
}
getLoginUserFromCookie := func(r *http.Request) *User {
return &User{Name: "felix"}
}
homeHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := getLoginUserFromCookie(r)
ctx := context.WithValue(context.TODO(), "currentUser", user)
root := Div(
Text("This is my home page"),
)
Fprint(w, layout(root), ctx)
})
w := httptest.NewRecorder()
r := httptest.NewRequest("GET", "/", nil)
homeHandler.ServeHTTP(w, r)
fmt.Println(w.Body.String())
Output: <!DOCTYPE html> <html> <head> <meta charset='utf8'> </head> <body> <div class='header'>header <div class='username'>felix</div> </div> <div>This is my home page</div> <div class='footer'>footer</div> </body> </html>
func JSONString ¶
func JSONString(v interface{}) (r string)
func MustString ¶
func MustString(root HTMLComponent, ctx context.Context) string
MustString 将组件渲染为字符串,panic on error
Types ¶
type ComponentFunc ¶
Example ¶
Use RawHTML and Component
userProfile := func(username string, avatarURL string) HTMLComponent {
return ComponentFunc(func(ctx context.Context, buf *[]byte) error {
return Div(
H1(username).Class("profileName"),
Img(avatarURL).Class("profileImage"),
RawHTML("<svg>complicated svg</svg>\n"),
).Class("userProfile").MarshalHTML(ctx, buf)
})
}
comp := Ul(
Li(
userProfile("felix<h1>", "http://image.com/img1.png"),
),
Li(
userProfile("john", "http://image.com/img2.png"),
),
)
Fprint(os.Stdout, comp, context.TODO())
Output: <ul> <li> <div class='userProfile'> <h1 class='profileName'>felix<h1></h1> <img src='http://image.com/img1.png' class='profileImage'> <svg>complicated svg</svg> </div> </li> <li> <div class='userProfile'> <h1 class='profileName'>john</h1> <img src='http://image.com/img2.png' class='profileImage'> <svg>complicated svg</svg> </div> </li> </ul>
func (ComponentFunc) MarshalHTML ¶
func (f ComponentFunc) MarshalHTML(ctx context.Context, buf *[]byte) error
type HTMLComponent ¶
func HTML ¶
func HTML(children ...HTMLComponent) (r HTMLComponent)
"html": HTMLHtmlElement;
Example ¶
Create a full html page
comp := HTML(
Head(
Meta().Charset("utf8"),
Title("My test page"),
),
Body(
Img("images/firefox-icon.png").Alt("My test image"),
),
)
Fprint(os.Stdout, comp, context.TODO())
Output: <!DOCTYPE html> <html> <head> <meta charset='utf8'> <title>My test page</title> </head> <body> <img src='images/firefox-icon.png' alt='My test image'> </body> </html>
func Text ¶
func Text(text string) (r HTMLComponent)
func Textf ¶
func Textf(format string, a ...interface{}) (r HTMLComponent)
type HTMLComponents ¶
type HTMLComponents []HTMLComponent
func Components ¶
func Components(comps ...HTMLComponent) HTMLComponents
Example ¶
More complicated customized component
/*
Define MySelect as follows:
type MySelectBuilder struct {
options [][]string
selected string
}
func MySelect() *MySelectBuilder {
return &MySelectBuilder{}
}
func (b *MySelectBuilder) Options(opts [][]string) (r *MySelectBuilder) {
b.options = opts
return b
}
func (b *MySelectBuilder) Selected(selected string) (r *MySelectBuilder) {
b.selected = selected
return b
}
func (b *MySelectBuilder) MarshalHTML(ctx context.Context, buf *[]byte) error {
opts := []HTMLComponent{}
for _, op := range b.options {
var opt HTMLComponent
if op[0] == b.selected {
opt = Option(op[1]).Value(op[0]).Attr("selected", "true")
} else {
opt = Option(op[1]).Value(op[0])
}
opts = append(opts, opt)
}
return Select(opts...).MarshalHTML(ctx, buf)
}
*/
comp := MySelect().Options([][]string{
{"1", "label 1"},
{"2", "label 2"},
{"3", "label 3"},
}).Selected("2")
Fprint(os.Stdout, comp, context.TODO())
Output: <select> <option value='1'>label 1</option> <option value='2' selected='true'>label 2</option> <option value='3'>label 3</option> </select>
func (HTMLComponents) MarshalHTML ¶
func (hcs HTMLComponents) MarshalHTML(ctx context.Context, buf *[]byte) error
type HTMLTagBuilder ¶
type HTMLTagBuilder struct {
// contains filtered or unexported fields
}
func Blockquote ¶
func Blockquote(children ...HTMLComponent) (r *HTMLTagBuilder)
"blockquote": HTMLQuoteElement;
func Canvas ¶
func Canvas(children ...HTMLComponent) (r *HTMLTagBuilder)
"canvas": HTMLCanvasElement;
func Colgroup ¶
func Colgroup(children ...HTMLComponent) (r *HTMLTagBuilder)
"colgroup": HTMLTableColElement;
func Datalist ¶
func Datalist(children ...HTMLComponent) (r *HTMLTagBuilder)
"datalist": HTMLDataListElement;
func Details ¶
func Details(children ...HTMLComponent) (r *HTMLTagBuilder)
func Dialog ¶
func Dialog(children ...HTMLComponent) (r *HTMLTagBuilder)
"dialog": HTMLDialogElement;
func Div ¶
func Div(children ...HTMLComponent) (r *HTMLTagBuilder)
"div": HTMLDivElement;
Example ¶
Create a simple div, Text will be escaped by html
banner := "We write html in Go"
comp := Div(
Text("123<h1>"),
Textf("Hello, %s", banner),
Br(),
)
Fprint(os.Stdout, comp, context.TODO())
Output: <div>123<h1>Hello, We write html in Go <br> </div>
func Fieldset ¶
func Fieldset(children ...HTMLComponent) (r *HTMLTagBuilder)
"fieldset": HTMLFieldSetElement;
func Head ¶
func Head(children ...HTMLComponent) (r *HTMLTagBuilder)
func Iframe ¶
func Iframe(children ...HTMLComponent) (r *HTMLTagBuilder)
"iframe": HTMLIFrameElement;
func Input ¶
func Input(name string) (r *HTMLTagBuilder)
func Meta ¶
func Meta() (r *HTMLTagBuilder)
func Noscript ¶
func Noscript(children ...HTMLComponent) (r *HTMLTagBuilder)
"noscript": HTMLElement;
func Optgroup ¶
func Optgroup(children ...HTMLComponent) (r *HTMLTagBuilder)
"optgroup": HTMLOptGroupElement;
func Output ¶
func Output(children ...HTMLComponent) (r *HTMLTagBuilder)
"output": HTMLOutputElement;
func Picture ¶
func Picture(children ...HTMLComponent) (r *HTMLTagBuilder)
"picture": HTMLPictureElement;
func Progress ¶
func Progress(children ...HTMLComponent) (r *HTMLTagBuilder)
"progress": HTMLProgressElement;
func Samp ¶
func Samp(children ...HTMLComponent) (r *HTMLTagBuilder)
func Script ¶
func Script(script string) (r *HTMLTagBuilder)
"script": HTMLScriptElement;
Example ¶
Write a little bit of JavaScript and stylesheet
comp := Div(
Button("Hello").Id("hello"),
Style(`
.container {
background-color: red;
}
`),
Script(`
var b = document.getElementById("hello")
b.onclick = function(e){
alert("Hello");
}
`),
).Class("container")
Fprint(os.Stdout, comp, context.TODO())
Output: <div class='container'> <button id='hello'>Hello</button> <style type='text/css'> .container { background-color: red; } </style> <script type='text/javascript'> var b = document.getElementById("hello") b.onclick = function(e){ alert("Hello"); } </script> </div>
func Select ¶
func Select(children ...HTMLComponent) (r *HTMLTagBuilder)
"select": HTMLSelectElement;
func Tag ¶
func Tag(tag string) (r *HTMLTagBuilder)
func Tbody ¶
func Tbody(children ...HTMLComponent) (r *HTMLTagBuilder)
"tbody": HTMLTableSectionElement;
func Template ¶
func Template(children ...HTMLComponent) (r *HTMLTagBuilder)
"template": HTMLTemplateElement;
func Tfoot ¶
func Tfoot(children ...HTMLComponent) (r *HTMLTagBuilder)
"tfoot": HTMLTableSectionElement;
func Thead ¶
func Thead(children ...HTMLComponent) (r *HTMLTagBuilder)
"thead": HTMLTableSectionElement;
func (*HTMLTagBuilder) Action ¶
func (b *HTMLTagBuilder) Action(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Alt ¶
func (b *HTMLTagBuilder) Alt(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) AppendChildren ¶
func (b *HTMLTagBuilder) AppendChildren(c ...HTMLComponent) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Attr ¶
func (b *HTMLTagBuilder) Attr(vs ...interface{}) (r *HTMLTagBuilder)
Example ¶
An example show how to set different type of attributes
type MoreData struct {
Name string
Count int
}
comp := Div(
Input("username").
Type("checkbox").
Attr("checked", true).
Attr("more-data", &MoreData{Name: "felix", Count: 100}).
Attr("max-length", 10),
Input("username2").
Type("checkbox").
Attr("checked", false),
)
Fprint(os.Stdout, comp, context.TODO())
Output: <div> <input name='username' type='checkbox' checked more-data='{"Name":"felix","Count":100}' max-length='10'> <input name='username2' type='checkbox'> </div>
func (*HTMLTagBuilder) AttrIf ¶
func (b *HTMLTagBuilder) AttrIf(key, value interface{}, add bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Charset ¶
func (b *HTMLTagBuilder) Charset(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Checked ¶
func (b *HTMLTagBuilder) Checked(v bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Children ¶
func (b *HTMLTagBuilder) Children(comps ...HTMLComponent) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Class ¶
func (b *HTMLTagBuilder) Class(names ...string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) ClassIf ¶
func (b *HTMLTagBuilder) ClassIf(name string, add bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Content ¶
func (b *HTMLTagBuilder) Content(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Data ¶
func (b *HTMLTagBuilder) Data(vs ...string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Disabled ¶
func (b *HTMLTagBuilder) Disabled(v bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) For ¶
func (b *HTMLTagBuilder) For(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Href ¶
func (b *HTMLTagBuilder) Href(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Id ¶
func (b *HTMLTagBuilder) Id(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) MarshalHTML ¶
func (b *HTMLTagBuilder) MarshalHTML(ctx context.Context, buf *[]byte) error
func (*HTMLTagBuilder) Method ¶
func (b *HTMLTagBuilder) Method(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Name ¶
func (b *HTMLTagBuilder) Name(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) OmitEndTag ¶
func (b *HTMLTagBuilder) OmitEndTag() (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Placeholder ¶
func (b *HTMLTagBuilder) Placeholder(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) PrependChildren ¶
func (b *HTMLTagBuilder) PrependChildren(c ...HTMLComponent) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Property ¶
func (b *HTMLTagBuilder) Property(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Readonly ¶
func (b *HTMLTagBuilder) Readonly(v bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Rel ¶
func (b *HTMLTagBuilder) Rel(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Required ¶
func (b *HTMLTagBuilder) Required(v bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Role ¶
func (b *HTMLTagBuilder) Role(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) SetAttr ¶
func (b *HTMLTagBuilder) SetAttr(k string, v interface{})
func (*HTMLTagBuilder) Src ¶
func (b *HTMLTagBuilder) Src(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Style ¶
func (b *HTMLTagBuilder) Style(v string) (r *HTMLTagBuilder)
Example ¶
An example show how to set styles
comp := Div().
StyleIf("background-color:red; border:1px solid red;", true).
StyleIf("color:blue", true)
Fprint(os.Stdout, comp, context.TODO())
Output: <div style='background-color:red; border:1px solid red; color:blue;'></div>
func (*HTMLTagBuilder) StyleIf ¶
func (b *HTMLTagBuilder) StyleIf(v string, add bool) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) TabIndex ¶
func (b *HTMLTagBuilder) TabIndex(v int) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Tag ¶
func (b *HTMLTagBuilder) Tag(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Target ¶
func (b *HTMLTagBuilder) Target(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Text ¶
func (b *HTMLTagBuilder) Text(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Title ¶
func (b *HTMLTagBuilder) Title(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Type ¶
func (b *HTMLTagBuilder) Type(v string) (r *HTMLTagBuilder)
func (*HTMLTagBuilder) Value ¶
func (b *HTMLTagBuilder) Value(v string) (r *HTMLTagBuilder)
type IfBuilder ¶
type IfBuilder struct {
// contains filtered or unexported fields
}
func If ¶
func If(v bool, comps ...HTMLComponent) (r *IfBuilder)
func (*IfBuilder) Else ¶
func (b *IfBuilder) Else(comps ...HTMLComponent) (r *IfBuilder)
type IfFuncBuilder ¶
type IfFuncBuilder struct {
// contains filtered or unexported fields
}
func Iff ¶
func Iff(v bool, f func() HTMLComponent) (r *IfFuncBuilder)
Example ¶
An example to use If, `Iff` is for body to passed in as an func for the body depends on if condition not to be nil, `If` is for directly passed in HTMLComponent
type Person struct {
Age int
}
var p *Person
name := "Leon"
comp := Div(
Iff(p != nil && p.Age > 18, func() HTMLComponent {
return Div().Text(name + ": Age > 18")
}).ElseIf(p == nil, func() HTMLComponent {
return Div().Text("No person named " + name)
}).Else(func() HTMLComponent {
return Div().Text(name + ":Age <= 18")
}),
)
Fprint(os.Stdout, comp, context.TODO())
Output: <div> <div>No person named Leon</div> </div>
func (*IfFuncBuilder) Else ¶
func (b *IfFuncBuilder) Else(f func() HTMLComponent) (r *IfFuncBuilder)
func (*IfFuncBuilder) ElseIf ¶
func (b *IfFuncBuilder) ElseIf(v bool, f func() HTMLComponent) (r *IfFuncBuilder)
func (*IfFuncBuilder) MarshalHTML ¶
func (b *IfFuncBuilder) MarshalHTML(ctx context.Context, buf *[]byte) error
type MutableAttrHTMLComponent ¶
type MutableAttrHTMLComponent interface {
HTMLComponent
SetAttr(k string, v interface{})
}