Install
openclaw skills install @thcjp/html-coder-tool-pro企业级HTML开发平台,支持HTML5全API、Web Components组件化、WCAG 2.1合规及性能优化,全方位提升开发效率。
openclaw skills install @thcjp/html-coder-tool-pro功能说明: 本技能涵盖 提升工作效率 等核心能力。
HTML编码工具专业版是企业级 HTML 开发平台,覆盖 HTML5 全部 API、Web Components 组件化开发、WCAG 2.1 全面合规检查和性能优化策略。从基础语义化标记到高级 Canvas 绘图、SVG 操作、Web Storage 和地理定位,专业版提供完整的 HTML 开发能力. 本版本与免费版完全兼容——免费版的语义化 HTML、表单验证和响应式图片能力在专业版中完整保留。专业版新增 HTML5 高级 API、Web Components、WCAG 全面合规和性能优化等能力.
| 能力维度 | 免费版 | 专业版 |
|---|---|---|
| 语义化HTML | 支持 | 支持 |
| 表单验证 | HTML5基础 | 企业级复杂验证 |
| 响应式图片 | picture/srcset | +性能优化策略 |
| 可访问性 | 基础ARIA | WCAG 2.1 AA/AAA全面合规 |
| Canvas/SVG | 不支持 | 完整API支持 |
| Web Storage | 不支持 | localStorage/sessionStorage/IndexedDB |
| Geolocation | 不支持 | 地理定位API |
| Drag & Drop | 不支持 | 拖放API |
| Web Workers | 不支持 | 多线程处理 |
| Web Components | 不支持 | Custom Elements + Shadow DOM |
| 结构化数据 | 不支持 | Schema.org + JSON-LD |
| 性能优化 | 基础懒加载 | 关键路径+预加载+懒加载 |
处理: 解析能力对比的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回能力对比的响应数据,包含状态码、结果和日志.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | HTML编码工具-专业版处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
HTML5 高级API:
- Canvas: 2D绘图、图表、游戏渲染
- SVG: 矢量图形、动画、交互
- Web Storage: localStorage / sessionStorage
- IndexedDB: 客户端数据库
- Geolocation: 地理定位
- Drag & Drop: 拖放交互
- Web Workers: 后台多线程
- WebSockets: 实时通信
- History API: 单页应用路由
# ...
Web Components:
- Custom Elements: 自定义HTML标签
- Shadow DOM: 样式与DOM隔离
- HTML Templates: 可复用模板
- 组件生命周期管理
# ...
WCAG 合规:
- A级: 基础可访问性
- AA级: 主流合规标准
- AAA级: 最高可访问性
- 自动检查 + 修复建议
# ...
性能优化:
- 关键CSS内联
- 资源预加载(preload/prefetch)
- 懒加载(loading=lazy + Intersection Observer)
- 字体加载优化(font-display)
- 图片格式优化(WebP/AVIF)
# ...
企业级表单:
- 多步骤表单
- 条件逻辑字段
- 异步验证
- 自定义验证器
- 表单状态管理
# ...
结构化数据:
- Schema.org 标记
- JSON-LD 格式
- Open Graph 标签
- Twitter Card 标签
处理: 解析核心能力的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心能力的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:开发引擎、全面合规与性能优、编码工具专业版、面向团队的企业级、开发平台、组件化开发等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.使用 Canvas API 创建数据可视化图表.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>销售数据可视化</title>
</head>
<body>
<section aria-labelledby="chart-title">
<h2 id="chart-title">月度销售趋势</h2>
<canvas
id="sales-chart"
width="800"
height="400"
role="img"
aria-label="月度销售趋势柱状图,显示1月至6月的销售数据"
>
<!-- 降级内容:不支持Canvas时显示 -->
<table>
<caption>月度销售数据</caption>
<thead><tr><th>月份</th><th>销售额</th></tr></thead>
<tbody>
<tr><td>1月</td><td>120万</td></tr>
<tr><td>2月</td><td>150万</td></tr>
</tbody>
</table>
</canvas>
</section>
# ...
<script>
// Canvas 数据可视化
const canvas = document.getElementById('sales-chart');
const ctx = canvas.getContext('2d');
# ...
const data = [
{ month: '1月', value: 120 },
{ month: '2月', value: 150 },
{ month: '3月', value: 180 },
{ month: '4月', value: 165 },
{ month: '5月', value: 200 },
{ month: '6月', value: 220 },
];
# ...
// 绘制柱状图
const barWidth = 80;
const gap = 40;
const maxHeight = 300;
const maxValue = Math.max(...data.map(d => d.value));
# ...
data.forEach((item, index) => {
const x = 60 + index * (barWidth + gap);
const barHeight = (item.value / maxValue) * maxHeight;
const y = 350 - barHeight;
# ...
// 绘制柱子
ctx.fillStyle = '#1a1a2e';
ctx.fillRect(x, y, barWidth, barHeight);
# ...
// 绘制数值
ctx.fillStyle = '#e94560';
ctx.font = '14px IBM Plex Sans';
ctx.textAlign = 'center';
ctx.fillText(`${item.value}万`, x + barWidth / 2, y - 10);
# ...
// 绘制月份
ctx.fillStyle = '#8892b0';
ctx.fillText(item.month, x + barWidth / 2, 380);
});
</script>
</body>
</html>
创建可复用的自定义组件.
详细代码示例已移至
references/detail.md
以下场景HTML编码工具-专业版不适合处理:
需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求.
能力配置:
基础能力: 语义化HTML + 表单 + 响应式图片(免费版功能)
高级API: Canvas / SVG / Storage / Geolocation / Workers
组件化: Web Components / Shadow DOM
可访问性: WCAG 2.1 AA / AAA
性能: 关键路径 / 预加载 / 懒加载
SEO: 结构化数据 / Open Graph
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
# ...
<!-- 性能优化: 预加载关键资源 -->
<link rel="preload" href="critical.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="hero.jpg" as="image">
# ...
<!-- SEO: 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "页面标题",
"description": "页面描述"
}
</script>
# ...
<!-- Open Graph -->
<meta property="og:title" content="页面标题">
<meta property="og:description" content="页面描述">
<meta property="og:image" content="og-image.jpg">
# ...
<title>高级HTML页面</title>
</head>
<body>
<!-- 可访问性: 跳过导航 -->
<a href="#main" class="skip-link">跳到主内容</a>
# ...
<header role="banner"><!-- 导航 --></header>
# ...
<main id="main" role="main">
<!-- Web Component -->
<data-chart type="bar" data='[{"label":"A","value":10}]'></data-chart>
</main>
# ...
<footer role="contentinfo"><!-- 页脚 --></footer>
</body>
</html>
python3 wcag-checker.py --file index.html --level AA
# ...
npx lighthouse https://example.com --output html --output-path ./report.html
<!-- 资源预加载 -->
<link rel="preload" href="critical-font.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="hero-image.webp" as="image">
<link rel="prefetch" href="next-page.html">
# ...
<!-- 字体优化 -->
<style>
@font-face {
font-family: 'CustomFont';
src: url('font.woff2') format('woff2');
font-display: swap; /* 加载期间使用回退字体 */
}
</style>
# ...
<!-- 图片格式优化 -->
<picture>
<source srcset="image.avif" type="image/avif">
webp" type="image/webp">
<img src="image.jpg" alt="描述" loading="lazy" decoding="async">
</picture>
# ...
<!-- 脚本优化 -->
<script src="non-critical.js" defer></script>
<script type="module" src="app.js"></script>
// localStorage 持久化存储
localStorage.setItem('userPrefs', JSON.stringify({
theme: 'dark',
fontSize: 'medium'
}));
// ...
// sessionStorage 会话级存储
sessionStorage.setItem('formData', JSON.stringify(formData));
// ...
// IndexedDB 客户端数据库
const db = indexedDB.open('AppDB', 1);
db.onupgradeneeded = (event) => {
const database = event.target.result;
if (!database.objectStoreNames.contains('items')) {
database.createObjectStore('items', { keyPath: 'id' });
}
};
专业版检查清单:
[ ] HTML5 高级API使用正确(含降级方案)
[ ] Web Components 含 Shadow DOM 隔离
[ ] WCAG 2.1 AA 合规检查通过
[ ] 关键资源已预加载
[ ] 图片使用 AVIF/WebP 优化格式
[ ] 字体使用 font-display: swap
[ ] 结构化数据 JSON-LD 已添加
[ ] 免费版语义化HTML能力正常
A: 免费版的语义化 HTML、表单验证和响应式图片能力在专业版中完整保留。专业版新增 HTML5 高级 API、Web Components 和 WCAG 全面合规检查,无需迁移已有代码.
A: 现代浏览器(Chrome/Firefox/Safari/Edge)全面支持 Web Components。对于旧浏览器可使用 polyfill(webcomponentsjs)补充支持.
A: AA 是主流合规标准(对比度 4.5:1),AAA 是最高标准(对比度 7:1)。建议先达到 AA,部分关键页面追求 AAA.
A: Canvas 适合复杂动画和像素级控制(游戏、图表),SVG 适合矢量图形和可缩放场景(图标、地图)。SVG 可被屏幕阅读器访问,Canvas 需要额外 aria 支持.
A: JSON-LD 结构化数据帮助搜索引擎理解页面内容,可触发富文本搜索结果(Rich Snippets),提升点击率和搜索可见性.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| 浏览器 | 工具 | 必需 | 现代浏览器 |
| Lighthouse(可选) | 工具 | 推荐 | npm install -g lighthouse(性能审计) |
| webcomponentsjs(可选) | Polyfill | 可选 | 旧浏览器兼容支持 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "HTML编码工具-专业版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "html coder pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。