关于 loops-lmx
loops-lmx 是面向 Loops 邮件创作的技能,用于编写、转换和检查 LMX 邮件标记。它依据规范与设计指南处理结构和视觉要求,并要求输出完整有效的文档。
主要功能
- 01生成、编辑 LMX 邮件
- 02将多种格式转换为 LMX
- 03检查标记及嵌套规则
- 04参考规范与设计指南
适用场景
- 01把 HTML 或 Markdown 邮件迁移为 LMX
- 02检查 LMX 标签和属性是否正确
- 03为新邮件规划并编写 LMX
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ loops-so/ skills --skill loops-lmx安装后在 Claude Code 中输入/loops-lmx确认已加载。
附带文件references/lmx-design-guidelines.mdreferences/lmx-spec.md
详细介绍
LMX 技能
此技能可帮助编写、审查和生成正确的 Loops LMX 邮件标记。LMX 是一种基于 XML 的格式:每个元素都是 PascalCase 标签,自闭合标签必须使用 />,且只有规范中列出的标签有效。
适用场景
在任务涉及以下内容时使用此技能:
- 生成或编辑 LMX 邮件内容
- 复制源材料、迁移现有邮件,或将 HTML、MJML、Markdown 或纯文本邮件文案转换为 LMX
- 审查 LMX 标记是否正确
- 为布局选择合适的 LMX 标签或属性
- 将设计指南应用于 LMX 文档
- 说明特定 LMX 标签或属性的工作方式
工作方式
启用此技能时:
- 阅读
references/lmx-spec.md,了解完整的标签和属性参考。该文档具有权威性;不要自行编造标签或属性。 - 阅读
references/lmx-design-guidelines.md,了解 Loops 设计指南。除非用户明确覆盖某条规则,否则生成的每份文档都必须遵循这些指南。 - 对于全新邮件或重大视觉改版,除非用户明确要求只修改文案或进行最小更新,否则在编写 LMX 之前遵循全新邮件设计流程。
- 将源材料视为输入,而非覆盖规则。复制源内容、迁移现有邮件,或将 HTML、MJML、Markdown、截图或纯文本转换为 LMX 时,仍须遵循本技能的规范、设计、文案和输出检查清单规则,除非用户明确覆盖某条具体规则。
- 生成输出前验证嵌套和内容类型规则(参见规范第 3 节)。
- 定稿前查看规范中的常见错误表。
- 始终输出完整、有效的文档,而非片段,除非用户明确要求片段。
分类路由
-
标签定义、必需/可选属性、嵌套规则、内容类型、变量语法、自闭合要求或转义: 阅读
references/lmx-spec.md -
颜色对比度、间距、列圆角、Style 标签用法、视觉层次,或任何关于“外观应如何”的问题: 阅读
references/lmx-design-guidelines.md -
全新邮件设计、大幅改版,或 gpt-image/imagegen 参考: 阅读
references/lmx-design-guidelines.md,尤其是全新邮件设计工作流和参考图到渲染结果的 QA 部分。只有在没有合适的 Loops 原生参考或用户提供的参考,且任务仍需要视觉参考时,才在 Codex 中使用imagegen技能。 -
创建活动、通过 API 发布 LMX、修订 ID、主题、组件或图片上传: 使用
loops-api技能(HTTP)或loops-cli技能(终端)。本技能涵盖 LMX 文档本身。
全新邮件设计流程
创建全新的营销活动、生命周期、工作流或事务性邮件时,或用户要求进行大幅视觉改版时,请使用此流程。
- 按照
references/lmx-design-guidelines.md中的「已知品牌 / 客户背景检查」执行。 - 只有在了解 Loops 原生内容和用户提供的背景后,才开始使用视觉参考。可在适用时使用现有组件 / 主题预览、用户截图 / 模拟图,或简洁的书面布局参考。在 Codex 中,只有任务仍需视觉探索时,才生成
imagegen/gpt-image 参考图。 - 生成参考图时,提示词应要求提供完整的 600px 宽邮件模拟图,而非通用卡片。包含准确的可见文案、主题内容、相关品牌元素,以及仅限 LMX 安全结构:
Style、Section、Columns、Paragraph、H1、H2、H3、Button、分隔线、清单行和简单图像占位符。 - 将生成的参考图限制为 Loops 编辑器可实现的真实效果。避免使用不受支持的 SVG 插画、重叠图层、自定义图标、复杂的应用界面、虚构的产品截图、装饰性图形和适用于落地页的大尺寸主标题。
- 编写 LMX 前,检查选定的参考图。如果布局或文本明显有误,请使用有针对性的提示词再迭代一次,而不是凭记忆弥补。
- 将选定的参考图或 Loops 原生结构转换为有效的 LMX,同时保留层级结构。将过大的生成式标题调整为设计指南中的邮件默认值,并在适当时使用 LMX 安全的间距、
Section卡片和共享背景的Columns。 - 根据邮件类型使用变量:营销活动和工作流邮件使用
{contact.*};当值来自触发事件时,工作流邮件使用{event.*};事务性邮件仅使用{data.*}。 - 如果通过 API、CLI 或编辑器实现邮件,请通过支持修订安全的邮件消息路径进行更新,并将全新的 Loops 编辑器渲染预览与视觉参考或 Loops 原生内容进行对比,然后再宣布完成。
输出检查清单
返回任何 LMX 输出前,请确认:
- 所有标签均为 PascalCase,且属于允许的标签集
- 所有自闭合标签均使用
/>(例如<Image />、<Divider />、<Br />、<Icon />、<Style />) - XML 敏感字符均已转义:
&转义为&,<转义为<,属性中的"转义为" - 必需属性均已提供:
<Image />上的src、<Component>上的componentId、<Icon />上的name,以及<Link>上的href - 顶层没有文本或行内标签
- 变量使用明确的 LMX 命名空间,且只出现在受支持的位置:行内内容、按钮文本、
<Button href>、<Link href>、<Image alt/href/dynamicSrc>和<Section href> - 变量命名空间与邮件类型相符:营销邮件使用
{contact.apiName};工作流邮件使用{contact.apiName}和/或{event.propertyName};事务性邮件使用{data.variableName}(而非不带前缀的{variableName}或{DATA_VARIABLE:...}) - 不自行编造行内回退语法;回退内容应放在 LMX 字符串之外
-
<Button>文本不包含行内标签,但可以包含变量;可点击的 CTA 按钮必须包含href -
<CodeBlock>会将花括号视为字面字符 - 顶层的
<Style />最多出现一次;生成的输出中应将其放在首位 - 正文/背景颜色以及 X/Y 方向内边距均经过妥善设置:由
themeId提供,或在需要时明确设置bodyColor/backgroundColor以及bodyXPadding/bodyYPadding - 新建邮件和重大改版均遵循全新邮件设计流程,除非用户明确要求跳过
- 如果有渲染预览,在完成工作前,已在 Loops 编辑器中将新建邮件和改版邮件与选定的参考内容或 Loops 原生来源进行视觉比较
- 生成的文案遵循文案和标点指南:不使用破折号、装饰性箭头符号或省略号,除非用户要求或源文保留了这些内容
- 生成的
<H1>、<H2>和<H3>文本末尾不加句号;仅在有意使用时才使用问号或感叹号 - 生成的文档使用克制的标题层级:通常只用一个
<H1>,仅在必要时使用<H2>分节,只有存在真实嵌套层级时才使用<H3> - 标题层级、正文/卡片宽度、水平密度和布局结构适合电子邮件,并遵循设计指南
- CTA 和
<Button>文本简洁、以行动为导向,且末尾不加句号 - 不存在同色文字与背景的情况(检查文字与区块颜色、图标颜色与背景等)
- 区块元素之间有足够的垂直间距
- 重要文案、标题、CTA 和重点区块在适当情况下使用微妙的视觉强调
- 谨慎使用
<Section>,仅用于提示框、分组控件、链接组或明确的卡片式布局;默认情况下,不要将普通正文拆分包装进许多悬浮卡片 - 相邻的
<Section>同级元素之间使用换行间隔,除非用户明确指定了其他区块间距方式 - 相邻的高亮区块(包括
blockColor段落、列和区块)之间留有明显的垂直间距,除非它们有意构成一个连贯的卡片 -
<Columns>包含两个到四个<ColumnItem>子元素;如提供widths,其数量须与列数一致 - 动态图片使用静态
src加上dynamicSrc,而非在src中使用变量 -
<Icons color>使用#000000、#808080或#ffffff之一;<Icon>不带color属性 - 不手动添加法律页脚、邮寄地址或退订区块;Loops 会自动添加必需的页脚内容。品牌页脚组件可以放在其上方