Github: https://github.com/Bluek404/go2html5
脑洞产物
用go写html
除了普通的标签外
还可以直接写控件
所有函数均返回转换为HTML后的string
HTML5的所有标签正在逐步添加中
如果想实现自定义标签
可以自己写函数
例如:
func CustomTag(attributes Attr, html []string) string {
var tag = "custom-tag"
var s bytes.Buffer
s.WriteString("<" + tag)
for k, v := range attributes {
s.WriteString(" " + k + "=\"" + v + "\"")
}
s.WriteString(">")
for _, v := range html {
s.WriteString(v)
}
s.WriteString("</" + tag + ">")
return s.String()
}
实现自定义控件:
// 自定义按钮
func CustomButton(href, name string, color int) string {
var c string
switch color {
case 0:
c = "btn-red"
case 1:
c = "btn-yellow"
case 2:
c = "btn-green"
case 3:
c = "btn-blue"
default:
c = "btn-red"
}
return "<a href=\"" + href + "\" class=\"btn" + c + "\">" + name +"</a>"
}
Html(Attr{"lang": "cn"},
Head(nil,
Title(nil, "Go2HTML5 Example"),
),
Body(nil,
P(nil,
"现在是:",
func() string {
var s bytes.Buffer
t := time.Now().Hour()
switch {
case t >= 0 && t <= 4:
s.WriteString("凌晨")
case t >= 5 && t <= 7:
s.WriteString("早上")
case t >= 8 && t < 10:
s.WriteString("上午")
case t >= 11 && t <= 13:
s.WriteString("中午")
case t >= 14 && t <= 19:
s.WriteString("下午")
case t >= 20 && t <= 22:
s.WriteString("晚上")
case t >= 23 && t <= 24:
s.WriteString("深夜")
}
s.WriteString(time.Now().Format("3点4分5秒"))
return s.String()
}(),
),
Hr(nil),
P(nil,
"Written in ", A(Attr{"href": "http://golang.org"}, "Go!"),
),
),
)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.