Install
openclaw skills install hug-htmlGenerate customizable, self-contained HTML templates with editable regions, module assembly, and content filling using Python scripts and front-end editing i...
openclaw skills install hug-html当用户提到以下内容时触发本技能:
复杂需求触发示例(以下场景同样支持):
不触发:
骨架 (Skeleton)
├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距
└── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距
模块 (Modules) ← 模块模板 = {模块结构 + 模块样式} 预置组合
├── 模块结构 — 复合模块的 HTML 骨架(header-entity 的图标+文字布局、qr-card 的卡片+二维码结构等)
└── 模块样式 — 模块级的视觉样式(由 base 模块组合提供:字体、颜色、背景、圆角等)
基础 (Base/Primitives)
└── 基础样式 — 作用于具体文字/元素的 CSS 原语:字族、字号、字重、字色、行高、透明度、对齐方式
方案模板 = 预置的{骨架结构 + 骨架样式 + 模块结构 + 模块样式 + 基础样式}组合
编辑粒度(可视化编辑器内):
| 可更新 | 不可更新(需改 Grid Spec) |
|---|---|
| ✓ 图片内容(点击输入URL / 拖放文件替换) | ✗ 骨架结构(行列数、合并方式、gap) |
| ✓ 基础样式(每个文字元素独立:字体家族/字重/字号/字色) | ✗ 模块结构(组件的HTML骨架) |
| ✓ 模块样式(通过 cell style 覆盖背景色/内边距) | ✗ 骨架样式(底板色/外阴影等) |
大模型使用流程(自由生成模式):
--audit 审查📚 渐进式加载:本技能采用渐进式 MD 体系,
SKILL.md为入口(≤230行),详细内容拆分到references/*.md按需加载。
| # | 能力 | 说明 |
|---|---|---|
| 1 | 骨架结构 | N×M 网格、行列数、单元格合并(rowspan/colspan)、gap 间距 |
| 2 | 骨架样式 | 底板背景/渐变、外阴影、外边框、圆角、卡片内外边距 |
| 3 | 模块体系 | 复合模块(header-entity/qr-card/feature-panel 等 14 种)+ Base CSS 原语 |
| 4 | 方案模板库 | 内置 7+ 预置{骨架+模块+样式}组合 + 用户可自定义固化 |
| 5 | 样式预设 | 5 种内置风格:商务/科研/喜庆/丧事/技术,一键切换配色字体 |
| 6 | 基础编辑 | 每个文字元素独立控制:字体家族(8种)/字重(100-900)/字号(9-48px)/字色/透明度 |
| 7 | 图片编辑 | 点击输入URL + 拖放文件替换,所有复合模块图片均支持 |
| 8 | 生成后审计 | 自动检查 HTML 结构完整性、标签平衡、图片属性、网格越界、渲染风险 |
| 9 | 统一接口 | --export-interfaces 导出完整接口定义 JSON,大模型可直接理解 |
| 10 | 方案模板固化 | --save-as <名> 将任意生成固化为用户模板,后续按名引用 |
| 11 | 自由生成模式 | AI 参考模块库和模板范,理解需求确定骨架→选模块→设样式→生成→审计 |
明确这个技能能做什么、不能做什么,避免使用时"不知道支不支持"。
| 场景 | 说明 | 示例触发词 |
|---|---|---|
| 生成推广卡片 | 应用推广、活动宣传、产品介绍的毛玻璃卡片 | "生成一个APP推广HTML卡片" |
| 生成信息面板 | 带表格、参数、二维码的信息展示面板 | "做一个带二维码和参数描述的HTML" |
| 生成可视化编辑模板 | 带 Ctrl+E 可编辑的 HTML | "生成一个可视化编辑的HTML模板" |
| 生成日历/周历仪表板 | 假日管理、年份控制、工日统计的交互仪表板 | "生成一个周历交互HTML" |
| 生成双端对比卡片 | 左应用右元服务/双实体的对比展示 | "生成一个双端推广卡片" |
| 内容填充 | 自动/手动填充 data-field 标记的文字和图片 | "给这个HTML模板填充示例内容" |
| 方案模板固化 | 将当前设计保存为可复用的用户模板 | "把这个模板保存为 my-card" |
| 自由创作 HTML | AI 参考模块库直接编写自包含 HTML | "帮我写一个毛玻璃风格的首页" |
| 场景 | 为什么不支持 | 替代方案 |
|---|---|---|
| 复杂前端应用(SPA / 数据可视化大屏) | 本技能面向静态 HTML+CSS 卡片,不支持路由/状态管理/API调用 | 手写 React/Vue 项目 |
| 多页面 HTML 站点 | 本技能是单页面自包含 HTML 生成器,不处理页面间导航 | 手写或使用静态站点生成器 |
| PDF / 图片输出 | 本技能输出 HTML 文件,不直接生成图片或 PDF | 生成 HTML 后用浏览器打印或截图 |
| 外部 CSS/JS 框架集成 | 本技能强调零外部依赖的自包含 HTML | 手动引入 CDN 或在 scripts 字段写自定义 JS |
| 非网格布局的自由排版 | 本技能基于 CSS Grid 网格系统,不适合绝对定位的自由排版 | 使用自由生成模式直接手写 HTML |
| 后端交互 / 数据库读写 | 本技能是纯前端 HTML,无后端能力 | 搭配 Node.js / Flask 等后端框架 |
| 情况 | 说明 |
|---|---|
| 网格越界 | 单元格的 row/col 索引 + rowspan/colspan 不能超过网格总行列数,否则 CSS Grid 会异常渲染 |
| 毛玻璃裁剪 | backdrop-filter 需要容器有 overflow:hidden,否则内容可能被裁剪 |
| JSON 模板路径 | --spec 参数支持绝对路径、相对路径和内置模板名;文件不存在会输出中文错误提示 |
| 文件编码 | 所有输入输出文件必须为 UTF-8 编码;其他编码可能导致乱码 |
| 编辑模式兼容性 | Ctrl+E 编辑模式需要现代浏览器(Chrome/Edge/Firefox),不支持 IE |
# 查看所有模板
python scripts/grid_builder.py --list-templates
# 从内置模板生成 HTML
python scripts/template_generator.py --type harmony-app -o "data/output/card.html"
# 生成可视化编辑界面
python scripts/visual_editor.py --type harmony-app -o "data/output/editor.html"
# 内容填充
python scripts/content_filler.py auto --template "data/output/card.html" --output "data/output/filled.html"
# 使用自定义 Grid Spec
python scripts/grid_builder.py --spec "data/templates/3x3-merge.json" -o "data/output/grid.html"
# 固化方案模板(将当前生成保存为可复用的用户模板)
python scripts/grid_builder.py --save-as my-template --spec harmony-app --desc "我的毛玻璃卡片"
# 按名称使用用户方案模板(下次直接引用)
python scripts/grid_builder.py --spec "my-template" -o "data/output/from-user-template.html"
# 导出完整接口定义(供大模型参考)
python scripts/grid_builder.py --export-interfaces "data/output/interfaces.json"
本技能支持两种生成模式,每次生成完成后必须输出生成说明(print_generation_guide() 自动输出):
grid_builder.py 生成,自动执行审计visual_editor.pycontent_filler.pypreview_url 展示,deliver_attachments 交付🛑 [MANDATORY] 每次生成完成后,必须阅读
print_generation_guide()输出的生成说明并向用户展示。
python scripts/grid_builder.py --list-modules 查看可用的 base/composite 模块python scripts/grid_builder.py --list-templates 查看内置模板风格python scripts/grid_builder.py --list-presets 查看可用风格data/output/python scripts/grid_builder.py --audit <文件>,不可跳过preview_url 展示自由生成模式适用场景:简单卡片、快速原型、不需要网格拆分的页面。 结构化模式适用场景:复杂网格布局、需要批量生产、可复用模板。
| 工具 | 访问级别 | 用途 |
|---|---|---|
| Read | 只读 | 读取 Grid Spec、模块库、样式预设 |
| Write | 写入 | 将输出 HTML 写入 data/output/ |
| Bash | 受限 | 运行内部处理脚本(限制在 scripts/ 目录内) |
v2.1.0 起,所有脚本均集成了中文错误处理机制:
❌ [错误类型] 说明 + 💡 修复建议--debug 参数可显示完整堆栈(仅供开发调试用)references/faq.md如果遇到报错看不懂、或者修复建议不管用的情况,查阅
references/faq.md或直接要求 AI 协助排查。
| 文档 | 内容 |
|---|---|
references/guide.md | 完整使用教程(v2 网格架构) |
references/permissions.md | 权限扫描报告和风险说明 |
references/module-library.md | 两层级模块库说明 |
references/style-presets.md | 样式预设系统说明 |
references/call-chains.md | 调用链定义(skill-sub) |
references/antipatterns.md | 反模式手册 |
references/faq.md | 常见问题解答 |
脚本报错了?不要慌。所有错误提示已改为中文,并附带修复建议。
| 错误现象 | 可能原因 | 怎么做 |
|---|---|---|
| ❌ [文件错误] 找不到文件 | 路径写错了 | 检查路径是否存在,用绝对路径试试 |
| ❌ [JSON错误] 格式错误 | JSON 语法有问题 | 用 jsonlint.com 校验,或检查多了一个逗号 |
| ❌ [模板错误] 未知模板 | 模板名写错了 | 用 --list-templates 查看所有可用模板 |
| ❌ [参数错误] 缺参数 | 命令写少了参数 | 用 --help 查看完整参数说明 |
| ⚠️ 审计警告 | HTML 有小问题但不致命 | 检查输出的 [WARN] 内容,逐一修正 |
| 浏览器打开是空白 | HTML 文件编码问题 | 确认文件是 UTF-8 编码保存的 |
完整错误排查指南见
references/faq.md。
版本 2.1.2 — 全面中文异常处理:所有脚本输出的英文 Traceback 改为中文错误提示+修复建议;新增能力边界定义和错误排查指引。