[Beego] 內置的模板函數(不一樣格式的字符串和html的互轉)

在使用beego框架的時候,經常須要把不一樣形式的字符串轉化爲html,有時候爲了安全考慮會將html轉義,而有時候但願能顯示html標籤。在存儲到db中後,再取出來的顯示是本來的,即html標籤不會生效,這就須要一些內置模板函數了。css

使用方法html

內置函數有兩種輸出方法,在view中,能夠經過{{str2html .str}}或者{{.str | str2html}} 兩種方法來輸出。安全

相關函數markdown

markdown框架

實現了把markdown文本轉化爲html信息,使用方法{{markdown .Content}}函數

dateformatspa

實現了時間的格式化,返回字符串,使用方法{{dateformat .Time 「2006-01-02T15:04:05Z07:00」}}code

dateorm

實現了相似PHP的date函數,能夠很方便的根據字符串返回時間,使用方法{{date .T 「Y-m-d H:i:s」}}htm

compare

實現了比較兩個對象的比較,若是相同返回true,否者false,使用方法{{compare .A .B}}

substr

實現了字符串的截取,支持中文截取的完美截取,使用方法{{substr .Str 0 30}}

html2str

實現了把html轉化爲字符串,剔除一些script、css之類的元素,返回純文本信息,使用方法{{html2str .Htmlinfo}}

str2html

實現了把相應的字符串看成HTML來輸出,不轉義,使用方法{{str2html .Strhtml}}

htmlquote

實現了基本的html字符轉義,使用方法{{htmlquote .quote}}

htmlunquote

實現了基本的反轉義字符,使用方法{{htmlunquote .unquote}}

assets_js

爲 js 文件生成一個 <script> 標籤. 使用方法 {{assets_js src}}

assets_css

爲 css 文件生成一個 <link> 標籤. 使用方法 {{assets_css src}}

自定義函數

官方的文檔裏也給了自定義模板函數。

func hello(in string)(out string){
out = in + "world"
return
}

beego.AddFuncMap("hi",hello)

用法和以上一致,須要注意的是,beego.AddFuncMap須要在main.go裏添加到beego.run以前。

如今最新版的beego已經去掉了markdown的支持,最新的模板函數以下(摘自官方源碼):

beegoTplFuncMap["dateformat"] = DateFormat
beegoTplFuncMap["date"] = Date
beegoTplFuncMap["compare"] = Compare
beegoTplFuncMap["compare_not"] = CompareNot
beegoTplFuncMap["not_nil"] = NotNil
beegoTplFuncMap["not_null"] = NotNil
beegoTplFuncMap["substr"] = Substr
beegoTplFuncMap["html2str"] = HTML2str
beegoTplFuncMap["str2html"] = Str2html
beegoTplFuncMap["htmlquote"] = Htmlquote
beegoTplFuncMap["htmlunquote"] = Htmlunquote
beegoTplFuncMap["renderform"] = RenderForm
beegoTplFuncMap["assets_js"] = AssetsJs
beegoTplFuncMap["assets_css"] = AssetsCSS
beegoTplFuncMap["config"] = GetConfig
beegoTplFuncMap["map_get"] = MapGet
相關文章
相關標籤/搜索