HTML Visual Editor
把纯静态 HTML 文件变成可在浏览器里直接点选编辑的页面。核心思路:往 HTML 里内联注入 assets/visual-editor.js(一个零依赖、自包含的脚本),页面右下角会出现工具栏,用户点"✏️ 编辑"后即可点击任意文字块直接修改。
为什么这样设计
- 自包含单文件:脚本是内联注入的,不引用外部资源,注入后的 HTML 仍然双击就能用,适合 beautiful-html-templates 这类强调"单文件 deck"的场景。
- 不破坏设计系统:用户只能改文字内容(标题、正文、列表、表格单元格等"叶子文本块"),字体、配色、版式、动效一概不动——这与模板库"设计系统锁定"的原则一致。
- 编辑与幻灯片导航共存:编辑模式下按键事件会被拦截,不会触发 deck 的翻页快捷键。
使用流程
注入(幂等,重复执行会自动跳过):
python "<skill_dir>/scripts/inject_editor.py" "<目标文件.html>"- 默认就地修改,并自动创建一次性备份
<文件名>.html.vebak - 想保留原文件可加
--out <新文件.html> - Windows 环境注意路径引号;
<skill_dir>即本 SKILL.md 所在目录
- 默认就地修改,并自动创建一次性备份
打开文件:在浏览器中打开注入后的 HTML(Windows 用
start "" "<文件路径>",macOS 用open)。告诉用户这三个按钮(每次注入后都要说明):
- ✏️ 编辑:开关编辑模式。开启后文字块出现蓝色虚线框,点击即可输入;再点一次退出(恢复放映/翻页体验)
- 💾 导出 HTML:把当前所有修改烘焙进 HTML 并下载为
<原名>.edited.html;导出的文件是干净版本(不含编辑器),替换原文件即完成修改 - ↩️ 重置:放弃所有未导出的修改,恢复原样
工作方式说明(用户常会问):
- 修改实时自动暂存在浏览器 localStorage,刷新、关闭重开都不丢;点"导出"后暂存自动清空
- 导出文件如需再次编辑,重新跑一次注入脚本即可
适用与边界
适合:改标题/正文/数据/人名/日期/按钮文字等文案;deck、落地页、信息海报等静态单文件 HTML。
不适合、应回退到直接改代码的情况:
- 改图片、改布局结构、增删页面、调样式 —— 编辑器只处理文字
- 元素是 JS 动态渲染出来的(注入脚本在页面加载时扫描一次;动态内容的修改不会持久化)
交付清单(每次执行后给用户)
- 注入后文件的绝对路径(单独一行,可点击)
- 三个按钮的一句话说明
- 提示:改完点"💾 导出 HTML",用下载的
.edited.html替换原文件