最后更新时间:2026-05-08 10:00:00
ViewModel 是前台模板的主模型。页面渲染时,模板优先从这个对象读取数据;首页、栏目页、详情页、搜索页、标签页都会复用它,只是字段填充方式不同。
| 字段名 | 类型 | 字段说明 | 模板用途 |
|---|---|---|---|
uri | string | 当前请求 URI | 判断当前页面和生成导航状态 |
site | *conf.SiteOption | 站点配置 | 输出站点标题、Logo、SEO 信息 |
themes_ext | map[string]any | 主题扩展数据 | 读取主题级配置 |
type | string | 页面类型 | 区分 home、category、article、page 等场景 |
title | string | 页面标题 | 输出页面主标题和 TDK |
description | string | 页面描述 | 输出摘要和 TDK |
keywords | string | 页面关键词 | 输出关键词 meta |
list | []*ContentCardVM | 列表数据 | 列表页、首页、搜索页、标签页循环渲染 |
pager | PagerVM | 分页对象 | 控制分页组件显示 |
columns | []*models.Column | 全站栏目树 | 用于头部导航、侧栏菜单、站点地图 |
nav | []*models.Column | 面包屑 | 用于当前位置导航 |
single | *ColumnVM | 单页模型 | 单页模板读取栏目正文和扩展配置 |
content | *ContentCardVM | 内容详情 | 详情页主体数据 |
current_column | *models.Column | 当前栏目 | 用于栏目页和详情页上下文判断 |
request | *RequestData | 请求信息 | 读取路径、参数、UA、来源页 |
prev | *ContentCardVM | 上一篇 | 详情页上一篇跳转 |
next | *ContentCardVM | 下一篇 | 详情页下一篇跳转 |
这个模型是前台模板的入口,不是某一个页面独占的数据。函数返回的列表、详情、栏目、分页,最后都会被汇总到这里。