composing-html 是一个用于生成单文件 HTML 制品的技能模块,核心目标是让用户无需手写页面外壳,专注于内容创作。composer 会自动提供 <!DOCTYPE>、<head>、内联 CSS、base.js、设计令牌、页眉和页脚等基础结构,用户只需提供标题与正文内容。
主要用途
该工具适用于需要快速产出独立 HTML 页面的场景,例如 PR 审查报告、状态报告、事故复盘、幻灯片、设计系统、原型、流程图、模块图等。通过提供预置的样式和组件,避免重复推导卡片、徽章、眉题等元素的外观。
主要能力
- 设计令牌:提供颜色变量(如 --ivory、--paper、--slate、--clay 等)、字体栈(--serif、--sans、--mono)和几何变量(圆角、边框、阴影)。
- 布局原语:.page、.masthead、.grid、.stack、.row、.card、.rule、.colophon 等类。
- 组件:眉题、徽章、快捷键、列表、行内代码、代码块(自动复制按钮)、details 折叠、标签页、拖拽排序、实时参数绑定(data-bind / data-out)。
- 模板系统:提供 21 个模板,分为 report(状态报告、事故报告)、review(PR 审查、代码走查、模块图)、editor(分类板、标志编辑器、提示调优器)、deck(幻灯片,支持方向键和空格导航)、design(设计系统、组件变体)、exploration(对比网格、设计方向、实施计划)、research(功能解释、概念解释)、diagram(SVG 图集、流程图)、prototype(动画沙盒、点击流)以及 freeform 自由格式。
- 输出检查:check 命令可对生成的制品进行确定性 lint,检测框架泄漏、未定义令牌、标签页断裂、硬编码颜色、内联排版、嵌套卡片、绑定断裂、排序断裂、标题跳级、图片缺少 alt 等问题,并以非零退出码报告错误。
使用方式
推荐工作流:将正文写入 .html 文件,通过 --set 传递元数据,例如:
python scripts/build.py build freeform --set title='My Page' --set subtitle='Optional subhead' --set body_html=@body.html --out artifact.html
--set KEY=VALUE 直接赋值字符串,--set KEY=@FILE 从文件读取内容。对于结构化模板,可使用 spec.json 文件,通过 --spec 传入。构建后可运行 check 命令检查制品。
适用场景
适合需要频繁生成结构化 HTML 制品的场景,如每周状态报告、多个 PR 的审查报告、需要一致导航的幻灯片、设计系统文档、流程图、原型演示等。当同一制品形态重复出现时,使用模板可保证跨制品一致性。
限制
- 每次构建生成一个制品。
- 对于带有 _html 字段的模板,用户提供的内容需自行转义,其他字符串值会自动 HTML 转义。
- 检查器不评估审美,仅检测是否违反设计系统或存在无效绑定。
- 对比度比率未作检查,因为令牌对已预先验证。
- 部分功能细节(如具体模板的完整键列表)需通过 describe 命令查看。