VVCMS5 Logo
首页 / 开发文档 / 主题开发
主题开发

主题开发:主题函数与常用模板函数

整理主题模板常用函数:栏目/内容/分页/相关文章等调用方式与注意事项。

2026-03-04 105

模板引擎注册了一组函数,可直接在模板中调用(例如 {{ParseTime .CreatedAt "2006-01-02"}})。

字符串/通用:

  • HasPrefix(s, prefix)
  • HasSuffix(s, suffix)
  • Contains(s, substr)
  • default(v, fallback):当 v 为 nil 或空字符串时返回 fallback
  • printf(...):fmt.Sprintf

数值:

  • Add(a, b):把 a/b 尽力转成整数后相加

时间:

  • now():当前时间
  • date(layout, time):格式化 time(layout 为空默认 2006-01-02)
  • ParseTime(v, layout):当前实现等同于 date(layout, v) 的包装

HTML/字符串处理:

  • safeHTML(s):返回 template.HTML
  • Str2Html(s):返回 template.HTML(常用于输出文章 HTML)
  • StrSub(s, n):截取前 n 个 rune

URL/路径:

  • url(parts...):拼接 URL 路径片段
  • asset(path):拼接主题静态资源到 /static/ 前缀

内容/组件数据(用于侧栏、推荐等“主题组件”):

  • HomeSlides():轮播数据
  • FriendLinks():友情链接
  • Top():置顶内容列表
  • Recom():推荐内容列表
  • Latest():最新内容列表
  • Hot():热门内容列表
  • Tags(num):标签列表(num 为数量)
  • ColumnContents(slug, num):指定栏目的内容列表
  • ContentsByIds(idsCsv, ...):按 ID 列表取内容(idsCsv 支持逗号/空格/分号/竖线等分隔)

互动/评论:

  • Messages(limit):留言列表
  • ContentComment(contentID):指定文章的评论列表
  • Related(contentID, num):相关文章

约定:

  • 新主题制作时,优先复用这些函数实现侧栏/轮播/友情链接等模块,而不是自行“猜测”数据来源。

站点开关字段提示(模板常用):

  • 文章评论区(article.html)通常使用:.Content.EnableComment(内容是否允许评论).Site.EnableMessage(站点是否开启评论/互动能力)
  • 留言页(message.html)通常使用:.Site.EnableComment(站点是否开启留言).Site.EnableCaptcha(是否启用验证码)