全局变量
Halo 目前为模板引擎在全局提供了一些变量,本文档将列出已提供的变量以及介绍这些变量的使用方法。
site
描述
提供了部分可公开的系统相关的设置项,其中所有参数均来自于 Console 的系统设置。
类型
示例
显示站点标题:
显示站点 Logo:
显示当前 Halo 版本:
#halo.matchVersion(constraint)
描述
用于判断当前运行的 Halo 版本是否满足指定的语义化版本范围,适合在主题模板中为依赖新版 Halo 能力的片段添加兼容判断。
引入版本: 2.25.0
版本范围格式遵循 Semantic Range Expressions,例如 >=2.25.0、>2.0.0 & <3.0.0 等。
开发版本 0.0.0 会始终返回 true,以便在本地开发环境中调试主题模板。
示例
仅在 Halo 版本满足要求时渲染模板片段:
判断一个版本范围:
theme
描述
关于当前激活主题的信息。
类型
其中:
版本说明:spec.homepage 和 spec.license 自 Halo 2.7.0 起可用,spec.issues 自 Halo 2.15.0 起可用。
示例
显示主题名称:
在静态资源加入版本号参数,以防止升级之后的缓存问题:
按登录状态条件渲染
描述
Halo 的模板引擎集成了 Spring Security 方言,可以在任意模板中使用 sec:authorize 属性,根据当前访问者的认证状态和角色决定元素是否渲染。属性值使用 Spring Security 表达式。
常用表达式:
isAuthenticated():访问者已登录isAnonymous():访问者未登录hasRole('xxx'):访问者具有指定角色,例如内置的超级管理员角色为super-role
未登录的访问者会被视为匿名用户(角色为 anonymous)。
示例
根据登录状态显示登录或退出入口:
仅对超级管理员显示入口:
访问量统计脚本
描述
文章详情页(post.html)和自定义页面详情页(page.html)的模型中包含了统计所需的信息,Halo 会向这些页面的 <head> 自动注入异步统计脚本(/halo-tracker.js),用于累计对应内容的访问量,即 PostVo 等模型中 stats.visit 数据的来源。
主题无需为此手动引入任何脚本,也不要重复注入。Console 中的内容预览请求不会被统计。
示例
在模板中展示访问量: