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  }