github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgView/kmgView.go (about) 1 package kmgView 2 3 import ( 4 "bytes" 5 6 "github.com/bronze1man/kmg/kmgXss" 7 "github.com/bronze1man/kmg/typeTransform" 8 ) 9 10 type HtmlRenderer interface { 11 HtmlRender() string 12 } 13 14 type HtmlRendererList []HtmlRenderer 15 16 func (l HtmlRendererList) HtmlRender() string { 17 var _buffer bytes.Buffer 18 for _, renderer := range l { 19 _buffer.WriteString(renderer.HtmlRender()) 20 } 21 return _buffer.String() 22 } 23 24 //使用泛型帮你解决各种无聊的类型转换 25 func NewHtmlRendererListFromList(obj interface{}) HtmlRendererList { 26 out := HtmlRendererList{} 27 typeTransform.MustTransform(obj, &out) 28 return out 29 } 30 31 type String string 32 33 func (s String) HtmlRender() string { 34 return kmgXss.H(string(s)) 35 } 36 37 type Html string 38 39 func (s Html) HtmlRender() string { 40 return string(s) 41 }