为了方便用户自定义一些功能,程序内置了一些可调用的函数,详细使用看下方注释
函数 | 传参 | 使用 | 使用说明 | 作用 |
---|---|---|---|---|
randomStr(int) string | 传入INT类型值 | {{randomStr 5}} | 其中5代表传入的int值,它会输出5个字符串,如需要更多的字符串,可修改传入的5 | 生成随机字符串(A-z0-9) |
rawHTML(any) template.HTML | 传入任意类型的值 | {{rawHTML "<p>测试</p>"}} | 如果传入的不是string类型的值,将返回空字符串。上方示例将输出<p>测试</p> | 用于序列化HTML代码 |
seq(int,int)[]int | 参数1 起始值 参数2 结束值 | {{$ii := seq 1 5}} | 它会生成1-5的切片,然后可以在循环$ii中读取 1 2 3 4 5 | |
replace(string,string,string) string | 参数1 要替换的原始字符串 参数2 要被替换的值 参数3 替换成的值 返回新的字符串 | {{replace "hello world" "hello" "Hello"}} | 它会输出新的字符串 Hello World | 替换一些不需要的字符串 |
query(string,string,int)[]map[string]any | 参数1 SQL语句 参数2 主机名 参数3 缓存时间 | {{$arr := query SQL语句 .Url 86400}} | SQL语句我就不说了 主机名一般都是.Url 86400是Redis缓存时间(-1是永远不缓存 0是用于缓存) 此函数输出的是多条查询结果 | 一般用于自行查询数据库,输出结果,一般查询小说表搭配 xlhArticle 函数使用 |
xlhArticle(string,[]map[string]any)[]model.ArticleArticle | 参数1 主机名 参数2 切片 | {{$rows := xlhArticle .Url $arr}} | $arr 参考上方query的返回值 $rows 是返回处理后的小说结果,更好的循环 | |
wordsNum(string) int | 参数1 字符串 | {{wordsNum "你好"}} | 返回字符串数量值 示例输出 2 | 一般用于获取字符串长度,精准 |
getSort(int,string) SortArrInfo | 参数1 指定的分类 参数2 分类伪静态 | {{$ingo := getSort 1 $.rewrite.FakeSortURL}} | 返回指定的分类信息 输出 { "Url":分类Url "Name":分类名 "ShortName": 分类短名 } | |
getSortArr(string) []SortArrInfo | 参数1 伪静态 | {{$sortArr := getSortArr $.rewrite.FakeSortURL}} | 返回所有分类的信息 输出 [ { "Url":分类Url "Name":分类名 "ShortName": 分类短名 },...... ] | |
isMobile(string) bool | 参数1 UA标识 | {{if isMobile $.ua}}是手机{{else}}不是手机{{end}} | 判断用户是否手机访问 | |
StrToAscii(string) string | 参数1 字符串 | {{StrToAscii "你好"}} | 此值会输出 ࢮ等等 | |
querySingle(string,string,int) map[string]any | 参数1 SQL语句 参数2 主机名 参数3 缓存时间 | {{$arr := querySingle SQL语句 .Url 86400}} | 类似query 但是返回的不是多个结果,而是单个 | |
IsSpider(string) bool | 参数1 UA标识 | {{if IsSpider $.ua}}是蜘蛛{{else}}不是蜘蛛{{end}} | 判断用户是否蜘蛛 | |
urlquery(string) string | 参数1 字符串 | {{urlquery "http://baidu.cn"}} | 对传入的链接进行url编码 输出:http%3A%2F%2Fbaidu.cn | |
eq / ne / lt / le / gt / ge | 逻辑运算符 | eq : == ne : != lt : < le : <= gt : > ge : >= | {{if lt 100 200}}100小于200{{end}} | |
plus/minus/times/divide | 加减乘除运算 | {{2 | plus 3}} => 5 {{2 | minus 3}} => 1 {{2 | times 3}} => 6 {{2 | divide 3}} => 1.5 | ||
text(string) string | 参数1 传入字符串 | {{text "<div>测试</div>"}} // 输出: 测试 | 去除所有HTML标签与script | |
htmlencode/encode/html | {{.value | htmlencode}} {{.value | encode}} {{.value | html}} | {{"<div>测试</div>"|html}} // 输出: <div>测试</div> | 将value变量值进行html转义。 | |
htmldecode/decode | {{.value | htmldecode}} {{.value | decode}} | {{"<div>测试</div>" | htmldecode}} // 输出: <div>测试</div> | 将value变量值进行html反转义。 | |
urlencode/url | {{url "http://baidu.cn"}} | 类似 urlquery | ||
urldecode | {{.url | urldecode}} | {{"https%3A%2F%2Fbaidu.cn"|urldecode}} // 输出: https://baidu.cn | 将url变量值进行url反转义。 | |
{{.timestamp | date .format}} {{date .format .timestamp}} {{now | date .format}} | {{1540822968 | date "2006-01-02"}} {{"1540822968" | date "2006-01-02 15:04:05"}} {{now date "2006-01-02 15:04:05"}} // 输出: // 2018-10-29 // 2018-10-29 22:22:48 // 2018-12-05 10:22:00 | 时间戳处理 | ||
substr | {{substr .start .length .str}} | {{substr 2 -1 "我是中国人"}} {{substr 2 2 "我是中国人"}} // 输出: // 中国人 // 中国 | .start是从第几位开始截取 .length是截取几位 .str是被截取的字符串 | |
strlimit | {{.str | strlimit .length .suffix}} | {{"我是中国人" | strlimit 2 "......"}} // 输出: // 我是...... | 将str 字符串截取length 长度,支持中文,超过长度则追加suffix 字符串到末尾。 | |
concat | {{concat .str1 .str2 .str3...}} | {{concat "你" "好"}} // 输出: // 你好 | 拼接字符串。 | |
hidestr | {{.str | hidestr .percent .hide}} | {{"热爱GF热爱生活" | hidestr 20 "*"}} {{"热爱GF热爱生活" | hidestr 50 "*"}} // 输出: // 热爱GF*爱生活 // 热爱****生活 | 将str 字符串按照percent 百分比从字符串中间向两边隐藏字符(主要用于姓名、手机号、邮箱地址、身份证号等的隐藏),隐藏字符由hide 变量定义。 支持中文,支持email格式。 | |
highlight | {{.str | highlight .key .color}} | {{"热爱GF热爱生活" | highlight "GF" "red"}} // 输出: // 热爱<span style="color:red;">GF</span>热爱生活 | 将str 字符串中的关键字key 按照定义的颜色color 进行前置颜色高亮。 | |
toupper/tolower | {{"gf" | toupper}} {{"GF" | tolower}} // 输出: // GF // gf | 将str 字符串进行大小写转换。 | ||
nl2br | {{.str | nl2br}} | {{"Go\nFrame" | nl2br}} // 输出: // Go<br />Frame | 将str 字符串中的\n/\r 替换为html中的<br /> 标签 | |
打赏我,让我更有动力~