[Beego] 内置的模板函数(不同格式的字符串和html的互转){{str2html .参数}}

在使用beego框架的时候,常常需要把不同形式的字符串转化为html,有时候为了安全考虑会将html转义,而有时候希望能显示html标签。在存储到db中后,再取出来的显示是原本的,即html标签不会生效,这就需要一些内置模板函数了。

使用方法

内置函数有两种输出方法,在view中,可以通过{{str2html .str}}或者{{.str | str2html}} 两种方法来输出。

相关函数

markdown

实现了把markdown文本转化为html信息,使用方法{{markdown .Content}}

dateformat

实现了时间的格式化,返回字符串,使用方法{{dateformat .Time “2006-01-02T15:04:05Z07:00”}}

date

实现了类似PHP的date函数,可以很方便的根据字符串返回时间,使用方法{{date .T “Y-m-d H:i:s”}}

compare

实现了比较两个对象的比较,如果相同返回true,否者false,使用方法{{compare .A .B}}

substr

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

html2str

实现了把html转化为字符串,剔除一些script、css之类的元素,返回纯文本信息,使用方法{{html2str .Htmlinfo}}

str2html

实现了把相应的字符串当作HTML来输出,不转义,使用方法{{str2html .Strhtml}}

bootstraptable中显示内容 {{str2html .Form_xml配置字段的name}}
![效果]标题:文本框内容XXXXX

htmlquote

实现了基本的html字符转义,使用方法{{htmlquote .quote}}

htmlunquote

实现了基本的反转义字符,使用方法{{htmlunquote .unquote}}

assets_js

为 js 文件生成一个

assets_css

为 css 文件生成一个 标签. 使用方法 {{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

xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
  <ItemInfo Name="purchasetask" Lable="">
      <Reads>
          <Permission Scope="" Department="" Role="">
              <Filters></Filters>
          </Permission>
      </Reads>
      <Fields>
          <Field Name="status" Type="string" Model="text" Require="true" Unique="false" Input="none" Cate="">
              <Label>状态</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="theme" Type="string" Model="text" Require="true" Unique="false" Input="text" Cate="">
              <Label>主题</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="task" Type="string" Model="text" Require="true" Unique="false" Input="textarea" Cate="">
              <Label>任务详情</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="responsible" Type="string" Model="text" Require="true" Unique="false" Input="none" Cate="">
              <Label>责任人</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="user" Key="sn">
                  <Fields>
                      <Field Name="name"></Field>
                  </Fields>
              </Ext>
          </Field>
          <Field Name="releasedate" Type="string" Model="date" Require="true" Unique="false" Input="none" Cate="">
              <Label>下达日期</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="completedate" Type="string" Model="date" Require="false" Unique="false" Input="date" Cate="">
              <Label>预计完成日期</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="result" Type="string" Model="text" Require="false" Unique="false" Input="none" Cate="">
              <Label>完成结果</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="actualdate" Type="string" Model="date" Require="false" Unique="false" Input="none" Cate="">
              <Label>实际完成日期</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="remark" Type="string" Model="text" Require="false" Unique="false" Input="textarea" Cate="">
              <Label>备注</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="progressone" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>进度一</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="progresstwo" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>进度二</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="progressthree" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>进度三</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="progressfour" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>进度四</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="replyone" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>回复一</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="replytwo" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>回复二</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="replythree" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>回复三</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="replyfour" Type="string" Model="text" Require="false" Unique="false" Input="text" Cate="">
              <Label>回复四</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="display" Type="string" Model="enum" Require="false" Unique="false" Input="none" Cate="">
              <Label>是否删除</Label>
              <Unit></Unit>
              <Default>yes</Default>
              <Src></Src>
              <Enums>
                  <Enum Key="yes" Label="正常"></Enum>
                  <Enum Key="no" Label="删除"></Enum>
              </Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="tasklist" Type="string" Model="enum" Require="false" Unique="false" Input="none" Cate="">
              <Label>任务列表</Label>
              <Unit></Unit>
              <Default>no</Default>
              <Src></Src>
              <Enums>
                  <Enum Key="yes" Label="已完成"></Enum>
                  <Enum Key="no" Label="未完成"></Enum>
              </Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="sn" Type="string" Model="sn" Require="true" Unique="false" Input="none" Cate="">
              <Label>sn</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="creater" Type="string" Model="curusersn" Require="true" Unique="false" Input="none" Cate="">
              <Label>创建人</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
          <Field Name="createtime" Type="string" Model="curtime" Require="true" Unique="false" Input="none" Cate="">
              <Label>创建时间</Label>
              <Unit></Unit>
              <Default></Default>
              <Src></Src>
              <Enums></Enums>
              <Ext Item="" Key="">
                  <Fields></Fields>
              </Ext>
          </Field>
      </Fields>
  </ItemInfo>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值