{if has_doc >= 1}

模板标签语法大全

更新于 2026-09-17 03:14:13 2 次浏览

BlogKit 使用自研模板引擎,模板文件为零 PHP 代码的 .html 文件。所有标签使用花括号语法,本篇是完整语法参考。

变量输出

                        输出变量(自动 HTML 转义)
                点语法取嵌套值(同样自动转义)
{field name="title"}           循环内取当前行字段(自动转义)
{field name="content" escape="false"}   输出原始 HTML(可信内容专用)
{field name="_index"}          循环索引(从 0 开始)
{field name="_key"}            循环键名

重要约定:顶层变量与 默认一律转义;需要输出 HTML(如富文本正文)必须显式写 escape="false",且仅用于系统生成的可信内容。

过滤器

过滤器链写在变量后,用 | 分隔,参数用 : 传递:

                  转大写
                  转小写
          截断 50 字,超出补 ...
        日期格式化
          时间格式化
          中文相对时间(3 分钟前)
                  HTML 转义
              去除 HTML 标签

过滤器可叠加,如

循环

{loop name="articles"}
    <li>{field name="title"}</li>
  • 循环体通过 读当前行数据;
  • 支持任意深度嵌套,子循环直接写在内层即可;
  • {count name="articles"} 输出数组长度。

条件判断

有标题时输出
{if status >= 1}已发布            比较运算:>=、>、<、<=
{if type == 'post'}相等比较     字符串相等( 可选)
AB              else 分支

循环内按字段判断:

{loop name="articles"}
    {if field="is_top" >= 1}置顶

支持的变体:{if x in [a,b]}、多级 。注意:== 形式只用于「变量与字面量相等」这一种写法,大小比较请使用 >= 等形式。

包含子模板

{include file="common/header"}
{include file="common/footer"}

不带 .html 后缀时自动尝试 common/ 子目录。包含文件会走完整解析流程,支持嵌套。

系统内置变量

               站点配置项(bk_config 表中的任意键)
{config name="cache_enabled"}  直接读配置
                   输出表单 CSRF 隐藏域
                  当前完整 URL
                         当前年份(页脚版权常用)
zh-CN                 当前语言标识

专用功能标签

                   输出分页条(配合控制器分页数据)
{plugin_hook name="sidebar"}   触发插件钩子并输出返回内容
{if-permission type="login"}登录可见   权限包裹

模板继承与宏

引擎支持模板继承(TemplateInheritance)与宏定义/宏调用(macro),可在主题内复用公共布局片段。

编译与缓存

模板首次渲染时编译为 PHP 文件存于 storage/,之后直接使用编译产物;模板文件修改后自动重新编译。开发主题时如遇改动不生效,到后台「系统维护 - 缓存设置」清理模板缓存。

文档整理中

文档发布后将在此按目录展示,当前可先前往下载页体验 BlogKit。

前往下载页