VVCMS 基础函数

最后更新时间:2026-09-22 18:46:24

1. 这篇要解决什么

基础函数是模板开发里最常见的一组函数。它们解决的不是某个业务页面,而是模板写法本身:判断、兜底、输出、时间、路径、字符串处理。

2. 基础函数表

函数名称参数返回值函数说明参数说明
HasPrefixs string, prefix stringbool判断字符串是否以指定前缀开头s 是待判断字符串,prefix 是前缀
HasSuffixs string, suffix stringbool判断字符串是否以指定后缀结尾s 是待判断字符串,suffix 是后缀
Containss string, substr stringbool判断字符串是否包含子串s 是待判断字符串,substr 是子串
defaultv any, fallback anyany当值为空时返回兜底值v 是原值,fallback 是兜底值
Adda any, b anyint数值相加a 和 b 会尽量转成整数
datelayout string, v anystring格式化时间layout 是时间格式,v 是时间值
ParseTimev any, layout stringstring按指定格式输出时间v 是时间值,layout 是格式
urlparts ...stringstring拼接 URL 路径parts 是路径片段
assetpath stringstring拼接主题静态资源路径path 是静态资源相对路径
StrSubs string, n intstring截取字符串前 n 个字符s 是原字符串,n 是长度
StrLimits string, n int, suffix stringstring截断字符串并追加后缀s 是原字符串,n 是长度,suffix 是后缀
StripHTMLs stringstring移除 HTML 标签s 是 HTML 文本
Joinitems []string, sep stringstring拼接字符串数组items 是字符串数组,sep 是分隔符
Splits string, sep string[]string拆分字符串s 是原字符串,sep 是分隔符
IsEmptyv anybool判断值是否为空v 可以是字符串、数组、对象等
DefaultCoverimg stringstring返回默认封面图img 是原图地址
now无time.Time返回当前时间无参数,模板里直接取当前时间
safeHTMLs stringtemplate.HTML将字符串标记为安全 HTML,按原样输出不转义s 是原始 HTML 字符串
Str2Htmls stringtemplate.HTML同 safeHTML,把字符串当作 HTML 输出s 是字符串
queryEscapes stringstring对字符串做 URL 查询转义s 是待转义字符串
trimSpaces stringstring去除字符串首尾空白s 是原始字符串
printfformat string, args ...anystring按格式拼装字符串(同 fmt.Sprintf)format 是格式串,args 是参数

以下 6 个函数为本版新增补充:now、safeHTML、Str2Html、queryEscape、trimSpace、printf。

当前模板可调用函数共 47 个:本篇基础函数 22 个,加上系统定制函数 25 个。全部由 themeTemplateFuncs() 注册,并在单元测试 TestThemeTemplateFuncNames 中强制校验总数与名称,新增或删除函数必须同步更新白名单与测试。

3. 怎么理解返回值

这里的返回值是基础类型,不是模型类型。也就是说,基础函数只负责把模板写法中的判断、格式化和字符串处理变简单,不承担内容模型输出。

4. 典型用法

{{if HasPrefix .Request.Path "/template-basics"}}
  当前是主题模板基础
{{end}}
{{default .Site.Title "默认站点名"}}
{{date "2006-01-02" .Content.CreatedAt}}