Install
openclaw skills install @ytisvibecoding/html-text-editor-liteInject a lightweight inline text editor into static HTML for non-technical users to click-to-edit text, save edits locally, and export clean HTML without sty...
openclaw skills install @ytisvibecoding/html-text-editor-lite把任意静态 HTML 升级成「可点击改文字」的版本:注入一个右下角浮动工具条(开始编辑 / 保存到浏览器 / 导出干净版),纯原生 JS、零依赖、约 6KB,不破坏页面。
不适用:用户想调色、改字号、换布局、重塑视觉风格 → 那是 html-visual-editor(html-editor)的活。本 skill 只管"改文字"。
</body>)。<input>-editable.html,不动原文件):
python <skill-dir>/scripts/inject.py <input.html>
常用参数:
-o <out.html>:指定输出路径--force:覆盖已存在的输出--inplace:直接写回原文件(谨慎)--exclude ".side-nav,nav,.legend":排除不希望被编辑的区域(默认已排除 .side-nav,nav,避免误触导航目录)present_files 展示生成的 *-editable.html 给用户。index.html。index.html 始终是唯一真源。body 递归下行,对每个元素判断"孩子是否全是 inline":
data-hve,不再下钻(inline 子元素随父一起可编辑)。<span class="hve-t"> 包起来(处理 flex/grid 卡片里直接躺着的"孤儿文字"),再递归进入每个元素孩子。--exclude 命中的子树。HVE-LITE START/END 注释包裹 → 幂等:重复运行先剥离旧块再注入,不会叠加。span.hve-t 辅助标签,Blob 下载 index.html。v1 用「白名单标签 + querySelectorAll」:只扫 h1-h4/p/li/span/td/th/b/i/strong/em/a,且要求"不含块级子元素"。两个致命漏洞:
<div class="quote">、<div class="cs-line">、<div class="onum">、<div class="sn-title"> 这类用 div 直接装文字的元素不在窄白名单里 → 整片改不了。<div class="card">文字A<div>子块</div>文字B</div>,文字 A/B 是 div 的直接文本节点,但 div 因为"有块级子元素"被判为非叶子而整体跳过 → 文字 A/B 永远标不到。
结果就是:只有恰好是 <b>/<strong> 且独立的加粗短语命中了白名单,其余大量 div 文字全漏。实测某真实简报:v1 仅覆盖 318/513 文本节点,v2 覆盖 496/513(剩余即 side-nav 导览,故意排除)。--exclude ".side-nav,nav" 已处理;若页面用别的类名做导航/图例/工具条,手动加进 --exclude。</body>:脚本在 </body> 前注入;残缺片段会报错退出。\uXXXX 转义(脚本已这么做),避免某些环境 f-string/编码问题。grep -c '^<!-- ==== HVE-LITE START' out.html 应为 1(精确注释标记,不是 JS 里的字符串)。grep -c 'id="hve-bar"' out.html 应为 1。runScripts:'dangerously' 执行内嵌脚本,统计 document.querySelectorAll('[data-hve]').length——应远大于个位数(真实简报实测 262)。若只有几个,说明回退到了 v1 行为,需排查。grep hve-bar 应为 0、且无残留 class="hve-t"。