SuperAPI AI 工具集

craft-twig-guidelines

编程与开发

查看项目

更新于 10-16 00:30

技能介绍

用途:为 Craft CMS 5 项目的 Twig 模板提供统一编码规范,适用于原子组件、视图、布局、构建器与局部模板。触发时应同时加载 craft-site(模板架构与组件模式)与 craft-content-modeling(涉及元素查询、字段访问、section 决策时)。

主要能力与约定:变量命名优先单词小写,多词用 camelCase,禁止缩写与 snake_case;空值默认用 ??,??? 仅在项目已装 nystudio107/craft-emptycoalesce 或 craft-seomatic 时可用,Craft 5 支持 ?. 空安全链;空白控制用 {%- 与 {{-,不用已弃用的 {%- minify -%};每个 {% include %} 必须带 only 以避免变量泄漏;UI 组件不用 {% macro %},宏仅用于返回字符串的工具函数;每个组件文件加分隔线注释头。

Craft Twig 辅助:{% tag %} 用于标签名随 props 变化的元素,false/null 省略属性,class 支持数组过滤,aria/data 支持嵌套哈希;tag() 用于简单内联元素;attr() 生成属性串;|attr、|parseAttr、|append 操作 HTML 字符串;svg() 输出图标;Craft 5.11+ 的 url(url, false) 可剥离全部查询参数;5.10+ 提供 heading()/h()/h1()…h6() 程序化标题,level 超出 1-6 抛 InvalidArgumentException。数据操作用 collect() 链式方法,简单单步可用原生过滤器,不要混用。

安全与输出:用户可见字符串走 |t(),不可信 HTML 用 |purify,|raw 仅限可信字段;内联资源用 {% js %}/{% css %}/{% script %};{% dd %}/dump() 仅调试。|e('js') 会把空格等字符转义为 \uXXXX,导致多词短语无法在渲染结果中逐字匹配。

限制与常见坑:Craft 5.10+ 中 yii\base\Model 一律视为非空,|default 与 is empty 判断失效,需检查具体属性;Twig 无 instanceof;块不能写在条件内;不要硬编码 /admin,用 cpUrl();用户可见文案禁用 em/en 破折号。资料未提供安装命令、收费与平台信息。