给公众号小编用的合规工作台。写稿时拦红线,发文前给评分,被投诉有台账,发布后自动回填数据。
四个痛点对应四个动作:
| 你的问题 | 工具里怎么做 |
|---|---|
| 平台不给推荐 | 发布评分 + AI 治理,把「内容农场」信号压掉 |
| 触发侵权 | 素材台账 + 重复图预警 + 字体自查 + 品类专属词库 |
| 被平台删文 | 红线词实时拦截,在编辑器里当场标出来 |
| 手动录数据太累 | 后台数据自动抓取,回填到复盘看板 |
- 地址栏输入
chrome://extensions(Edge 用edge://extensions) - 右上角打开 「开发者模式」
- 点 「加载已解压的扩展程序」 → 选择
writer-guard文件夹 - 弹出欢迎页即成功
需要 Chrome 111+(用了
world: "MAIN"注入,用于抓取后台接口数据)。
升级:改完文件回 chrome://extensions 点卡片上的刷新圆圈,不用卸载重装。
工作台 →「团队设置」→ 填操作人名字 → 勾选你的品类(办公 / 设计 / 开发)。
品类勾上之后,检测台会额外叠加该品类的专属红线。
推荐路径:工作台 →「编辑台」,左边写 Markdown、右边实时看公众号排版,写完三种交付任选:
- 复制排版:富文本进剪贴板,粘到任何编辑器都带样式
- 写入编辑器:自动打开你已登录的公众号图文页,把排版好的正文和标题直接写进去(零配置)
- 推送草稿箱:官方接口直推草稿箱(需在「团队设置 → 公众号绑定」填 AppID / AppSecret)
也可以按老习惯:进 mp.weixin.qq.com 图文编辑页,右下角会出现「安全台」按钮,颜色随风险变:🟢 通过 / 🟡 有优化项 / 🔴 有必删内容;点开看详情:命中哪个词、在哪一句、为什么、怎么改。编辑台写好的稿子可点「送进检测台跑红线」直接送检。
工作台 →「检测台」→ 粘贴标题和正文 → 看三个数:发布评分 / AI 度 / 红线命中。
评分 < 80 或 AI 度 ≥ 40,先改再发。
- 打开公众号后台 →「内容分析 → 图文分析」→ 点一次查询或翻页
- 保持这个标签页在前台
- 工作台 →「数据复盘」→ 点 「抓取当前标签页」
- 核对预览表,取消勾选不想写的行 → 点 「写入复盘看板」
新增的会新建记录,已有的会更新阅读/完读/在看数值。
工作台 →「投诉看板」→ 登记(自动算 72 小时倒计时)→ 复制申诉模板 → 附上素材台账和原始录屏。
| # | 模块 | 干什么 |
|---|---|---|
| 1 | 编辑台 | Markdown 写作 → 本地排版 → 一键进公众号(v1.17 新增) |
| 2 | 检测台 | 红线词 + AI 痕迹 + 九项评分,支持品类叠加 |
| 3 | 标题改写 | 标题党 → 信息型标题,给 6 个候选 |
| 4 | AI 治理 | 七个降 AI 痕迹手法 + 合规边界 |
| 5 | 字体自查 | 白名单可商用 / 黑名单需授权 |
| 6 | 素材台账 | 每张图记来源、凭证、到期日 |
| 7 | 重复图预警 | 感知哈希比对,撞图报警 |
| 8 | 模板库 | 测试环境段、反向结论、对比表、素材声明 |
| 9 | 截图标注 | 箭头 / 矩形 / 文字 / 马赛克 |
| 10 | 软件选题库 | 测过的软件、版本、风险、结论 |
| 11 | 投诉看板 | 投诉登记、72h 倒计时、申诉模板 |
| 12 | 封面设计 | 专业画布编辑器:图层、排版、模板、导出 |
| 13 | 多平台改写 | 一稿生成小红书 / 知乎 / B站 / 抖音版 |
| 14 | 数据复盘 | 后台抓取 + 手动录入 + 趋势图 |
| 15 | 团队设置 | 操作人、品类、CSV 台账互换、变更日志 |
通用红线之外,按你实际写的品类再叠一层。工作台「团队设置」或检测台的品类条勾选即生效。
| 规则 | 级别 | 典型命中词 |
|---|---|---|
| Office 激活 / KMS | 必删 | kms 激活、激活服务器、office365 共享、365 拼车、heu kms |
| 账号拼车 / 代充 | 必删 | 拼车、共享账号、代充、租号、无限账号、教育版白嫖 |
| 模板资源转卖 | 高危 | 模板合集下载、稻壳模板、简历模板打包 |
| 自动化脚本风险 | 高危 | 自动打卡、虚拟定位、钉钉外挂、自动抢红包 |
| 规则 | 级别 | 典型命中词 |
|---|---|---|
| Adobe 破解 | 必删 | genp、amtemu、amtlib、x-force、adobe 全家桶、ps 破解 |
| Figma / Sketch 授权滥用 | 必删 | figma 教育版、席位共享、sketch 破解 |
| 字体包 / 素材包合集 | 必删 | 字体合集下载、商用字体打包、千图、摄图、素材网盘 |
| AI 生成图商用风险 | 高危 | ai 换脸、ai 写真、midjourney 共享、一键生成明星 |
| 素材授权误用 | 高危 | 样机免费下载、笔刷包、canva 破解、iconfont 商用 |
| 规则 | 级别 | 典型命中词 |
|---|---|---|
| JetBrains 破解 | 必删 | ja-netfilter、license server、idea 永久激活、无限试用补丁 |
| 经典破解重灾区 | 必删 | navicat 注册机、ultraedit 注册码、beyond compare 破解、sublime 注册码 |
| API Key / 账号共享 | 必删 | apikey 共享、copilot 共享、代充、成品号、student pack 代领 |
| 代写 / 源码交易 | 必删 | 毕设代做、论文代写、源码出售、刷 star、课设接单 |
| 开源协议风险 | 高危 | gpl 商用、agpl 闭源、二次闭源分发 |
| 爬虫与数据合规 | 高危 | 绕过反爬、ip 池搭建、批量采集个人信息、脱库 |
设计取舍:每个品类只收真正高频、真有处罚先例的雷区,不做关键词堆砌。误报比漏报更烦人——一个天天报错的工具你会关掉它。
加自己的规则:编辑 data/dict.js 里的 CATEGORY_RULES,结构同 REDLINE,回扩展页刷新即生效。
{
id: 'my-rule',
category: 'dev',
name: '我的规则',
level: 'block', // block=必删 / warn=高危 / tip=提示
why: '为什么危险',
suggest: '怎么改',
patterns: [/匹配词/g, /另一个词/g],
}公众号后台的数据是 XHR 异步加载的,抓 DOM 不可靠(表格经常换结构)。所以做法是:
- MAIN world 注入(
content/net-hook.js)hook 掉fetch和XMLHttpRequest,把接口响应的原始 JSON 转发出来 - 自适应提取(
content/data-scrape.js)在 JSON 树里递归找「同时含标题字段和阅读字段」的对象数组 - 字段名模糊匹配,接口改名也能吃住
- DOM 表格兜底:接口没截到时,直接解析页面表格
| 数据 | 支持的字段名 |
|---|---|
| 标题 | title / appmsg_title / msg_title / article_title / name |
| 阅读 | read_num / readnum / read_count / int_page_read_count / total_read |
| 完读率 | finish_rate / complete_rate / finish_percent / progress |
| 在看 | like_num / likenum / old_like_num / praise_num |
| 分享 | share_num / share_count / forward_num |
| 涨粉 | add_fans / new_fans / increase_fans |
| 日期 | date / stat_date / publish_date / sent_time(时间戳自动转换) |
数值类型也做了归一:"0.42" → 42%,"860" → 860,1730419200 → 2024-11-01。
按顺序排查:
- 是不是在数据页——抓取需要当前标签页是
mp.weixin.qq.com下的数据页面 - 有没有触发过加载——先点一次「查询」或翻页,接口才会发请求
- 缓存是不是空的——点「清空抓取缓存」,回数据页重新点一次查询
- 接口完全没匹配上——说明公众号换了路径特征。改
content/net-hook.js里的PATH_HINT正则,把你 F12 看到的接口路径加进去 - 字段没识别出来——改
content/data-scrape.js里的FIELDS映射表
抓不到也不影响用——「录入一篇的复盘数据」手动填一直是可用的。
原工具的标题是写进提示词让模型画的。AI 画中文几乎必出错字——笔画缺失、生造字、字母混进中文里。封面上出现错字,比没有封面更伤专业度。
所以这里的分工是:
- AI 只画底图:用「AI 底图」面板生成提示词,复制到任意绘图工具(即梦 / 豆包 / MJ / SD)
- 文字全部本地排版:字体、字号、行高、字距、描边、阴影都由你精确控制
提示词里已经明确写了「不要出现任何文字」,负向词也带了「文字、字幕、标语、招牌文字、乱码」。
左右两侧各有一条 15px 的三角按钮栏,默认两侧都收起,画布占满整个区域。
| 位置 | 内容 | 展开宽度 | 默认 |
|---|---|---|---|
| 左侧 | 工具面板:版式 / 尺寸 / AI 底图 | 252px | 展开 |
| 右侧 | 属性面板:画布背景 → 图层 → 位置与尺寸 → 排版特效 | 278px | 收起 |
左三角开合左边的工具面板,右三角开合右边的属性面板。
图层列表在右侧属性面板里,紧跟在「画布背景」下面——从上到下是「画布背景 → 图层 → 选中图层的属性」,一路顺着改,不用左右来回看。
加图层的按钮(文字/图片/矩形/圆形/线条)也跟着放在图层区块顶部。
点三角展开,再点收起。两侧可以同时展开,画布会自动重新计算缩放比例(适应窗口)。
装好扩展后打开 mp.weixin.qq.com,页面右下角有两个悬浮按钮:
| 按钮 | 颜色 | 作用 |
|---|---|---|
| 安全台 | 蓝 | 打开红线检测面板(右侧滑出) |
| 封面 | 紫 | 在页面内全屏打开封面设计器,不跳标签页 |
封面覆盖层按 Esc 或点右上角「关闭」退出。数据走同一个 chrome.storage,和独立标签页打开的工作台完全互通——在里面做的封面,回工作台的素材台账能看到记录。
这就是「绑定」的意思:不用离开公众号编辑页,写完稿顺手就能出封面。
| 预设 | 尺寸 | 说明 |
|---|---|---|
| 公众号首图 | 900 × 383 | 2.35:1,信息流会裁成 1:1 |
| 公众号次图 | 900 × 900 | 1:1,与首图同组 |
| 小红书竖版 | 1242 × 1656 | 3:4,最常用 |
| 小红书方版 | 1080 × 1080 | 1:1 |
| 小红书横版 | 1080 × 810 | 4:3 |
| B站封面 | 1146 × 717 | 16:10 |
| 视频号 | 1080 × 1260 | 6:7 |
也可以填任意自定义尺寸。换尺寸时图层按比例迁移,版式不会散。
五种图层:文字 / 图片 / 矩形 / 圆形 / 线条。矩形和圆形可互相切换。
- 拖动移动,四角控制点缩放(文字层会等比改字号)
- 顶部控制点旋转,接近 90° 倍数会自动对齐
- 图层列表拖动排序即层级,双击改名
- 每层可单独锁定、隐藏
- 方向键微调 1px,Shift + 方向键 10px
工具栏和左栏各有一个加图入口,出来的东西完全不同:
| 入口 | 出来什么 | 用途 |
|---|---|---|
| 左栏「+ 图片」 | 图片图层:按原图比例,画布 45% 宽,居中,可拖动可缩放,插在当前选中层之上 | 往封面里放产品图、截图、图标 |
| 工具栏「上传底图」 | 背景图:铺满画布、只有一张、放最底层、不参与吸附 | 给整张封面垫底 |
背景图在图层列表里显示为「背景图」带 ▦ 图标。重复上传背景会替换旧的,不会叠成好几层。
双击画布上的图片图层可以直接换图,属性面板里也能改「填满裁剪 / 完整显示 / 拉伸」和圆角。
字号、字重(300–900)、行高、字距、左中右对齐、颜色、描边、阴影、背景块(圆角+内边距)。
双击画布上的文字直接进编辑。
背景设置固定显示在属性面板顶部,不管有没有选中图层都能改。
| 模式 | 说明 |
|---|---|
| 纯色 | 单一底色 |
| 双色 | 线性渐变,可调角度 |
| 四角(默认) | 四个角各一色,双线性插值融合 |
这是真正的四角插值,不是四色扇区——左上、右上、右下、左下各一个颜色,中间自动平滑过渡。
CSS 的 linear-gradient 只能两色,conic-gradient 是扇形放射,都做不出这个效果。实现是用 canvas 双线性插值:先在 64×N 的低分辨率画布上逐像素算四角插值,再用 imageSmoothingQuality: 'high' 放大到目标尺寸。这样既准确又快(每次改色只算 64×24 个像素)。导出时用同一套算法,屏幕和成图完全一致。
四角热区半径 56px:圆点本身只有 18px,鼠标稍偏就会落到画布上、误触发画布缩放。所以滚轮判断用的是「离哪个角最近且距离 < 56px」,不是「有没有命中圆点」。这样在角上随手滚都在换色,画布不会被放大缩小。
四角独立控制:
- 画布四角各有一个小圆点(hover 才显现)
- 滚该角的圆点 → 只改这个角的颜色
- 点该角的圆点 → 取色器自定义
不会撞色:滚轮换色时会跳过另外三个角已经占用的颜色,整个色板被占满时才允许重复。测试里连续滚动 30 轮,每一步都校验四色互不相同。
属性面板里也有 2×2 的四角取色器(左上/右上 在上排,左下/右下 在下排),布局和画布位置对应。
封面设计器工具栏上有「插入编辑器」按钮,点一下就把当前画布生成图片塞进公众号正文。
三档降级,哪档能成就走哪档:
| 档 | 做法 | 说明 |
|---|---|---|
| ① | 构造 paste 事件 |
最接近真人粘贴,微信编辑器会自己走上传 |
| ② | execCommand('insertImage') |
先把光标折到正文末尾,再插图 |
| ③ | 写进剪贴板 | 提示「按 Ctrl+V 粘贴」,最稳的兜底 |
每档都会检查编辑器里 img 数量有没有真的变多,没变才降级。第 ③ 档加了 2 秒超时——没有用户手势时 clipboard.write 会一直挂着,不加超时整个流程就卡死。
两种打开方式:
- 在公众号页面里点「封面」FAB → 设计器是 iframe → 用
postMessage把 PNG 的 ArrayBuffer 发给父页面,父页面直接插 - 在工作台标签页里打开 → 没有父页面,只能复制到剪贴板
所以想一键插入,请在公众号编辑页里打开封面设计器。
左侧「素材」页签里有 20 个文件夹样式的矢量素材,点一下插进画布,插入后就是普通图片图层——能拖、能缩放、能导出。
| 类型 | 素材 |
|---|---|
| 常用图标 | 文档 / 压缩包 / 图片 / 视频 / 音频 / 表格 / PDF / 代码 |
| 状态 | 加密(锁)/ 收藏(星)/ 云端(云)/ 设置(齿轮) |
| 配色 | 黄 / 蓝 / 紫 / 绿 / 粉 五色文件夹 |
| 带文字 | 下载 / 资料 / 模板 |
带文字的三个支持修改:插入时会生成两个图层——文件夹图(不含字)+ 一个文字层。文字层就是普通文字部件,双击画布上的字直接改,字号颜色位置都能调。
实现上是 Canvas 矢量绘制(512×512),不是位图切图。所以放大不糊,导出也是清晰的。
带字素材在面板里显示带字预览(方便辨认),插入画布时用的是无字版本 + 文字层,这样字才能改。
双击画布上的文字,原地出现输入框,直接改,不用去右边面板找。
| 操作 | 效果 |
|---|---|
| 双击文字 | 原地出输入框,内容全选 |
| 直接打字 | 正常输入,框会跟着长高 |
| Enter | 换行(文字支持多行) |
| Ctrl / ⌘ + Enter | 提交 |
| 点别处 | 提交 |
| Esc | 取消,一个字都不改 |
细节:
- 输入框字体、字号、字重、行高、字距、对齐都跟图层一致,改的时候看到的就是最终效果
- 提交后自动重绘画布、刷新属性面板、触发自动保存
- 文字一变,逐字着色会清空——因为字符索引对不上了,留着会串色
- 锁定的图层双击不会进入编辑
- 图片图层双击是「更换图片」,形状图层双击是选中
选中文字时,底部状态栏会显示「双击可直接改字」。
画布上的每一次改动都会自动存,关掉页面、刷新、切走再回来,接着上次的继续。
工具栏右上角有状态指示:
| 显示 | 含义 |
|---|---|
| 保存中… | 正在写盘(灰) |
| 已保存 | 存好了(绿) |
| 已保存(图片过大未存) | 图层和排版存了,图片数据超配额被丢弃(橙) |
| 已恢复上次编辑 | 打开时从存档恢复(绿) |
| 保存失败 | 写盘出错(红) |
存的内容:画布尺寸、背景(三种模式 + 四色)、所有图层(位置/大小/文字/字号/颜色/逐字色/描边/阴影)、缩放、选中项。
防抖 500ms:连续拖拽只落盘一次,不会把存储写爆。
图片配额兜底:图片以 dataURL 存在图层里,撑爆 chrome.storage 配额时自动降级成「不含图片」的版本再存一次,布局不丢,只是图片需要重新上传。
打开时的行为:有存档就恢复存档,没有才铺默认画布(一个占位标题)。
想重来怎么办:挑一个新模板点击就会覆盖当前画布,自动保存会跟着更新。
选中文字层时,右侧面板从上到下:
| 顺序 | 区块 | 说明 |
|---|---|---|
| 1 | 画布背景 | 常驻,随时可改 |
| 2 | 图层 | 列表 + 加图层按钮 |
| 3 | 逐字着色 | 紧跟图层,进面板第一眼就是它 |
| 4 | 文字内容 | 内容、字体、字号、颜色、对比度 |
| 5 | 描边 / 阴影 / 背景块 | |
| 6 | 位置与尺寸 | 挪到后面了,调大小是次要操作 |
| 7 | 图层操作 | 上移/复制/删除 |
逐字着色提前是因为它用得最频繁——改标题里某几个字的颜色,不用再往下滚。
| 鼠标在哪 | 滚轮作用 |
|---|---|
| 画布上的文字 | 调字号(宽度等比跟走,排版不乱) |
| 画布上的图片 / 形状 | 缩放图层 |
| 画布空白处 | 缩放画布 |
| 画布四角 56px 范围内 | 换该角的背景色(不会误触发画布缩放) |
| 属性面板逐字着色的字块 | 换这一个字的颜色 |
逐字着色的用法:选中文字层 → 右侧面板「逐字着色」(在图层下面第一块)列出每个字 → 鼠标悬在某个字块上滚动,只有这个字换色,旁边的不动,并自动避开同层已用的颜色。
标题里想把某个词挑出来?点「逐字着色」面板里的字块选中要变的字,再点调色板上色。支持多选、全选、一键清除。
适合「三天看懂基金定投」这种只强调半句的做法。导出时按字符索引逐字绘制,和屏幕上完全一致——不会因为换行位置不同就对不上色。
每个文字层下面会显示它和实际背景的对比度比值:
| 比值 | 判断 |
|---|---|
| ≥ 4.5:1 | 清晰 |
| 3:1 – 4.5:1 | 偏弱,建议加深颜色或加描边 |
| < 3:1 | 太低,手机上基本看不清 |
渐变背景取最差的那一端来算,不会出现「左边看得清、右边糊成一团」的情况。
调好一版之后点「保存当前设计为预设」,下一期换个字就能用。预设存本地,最多 40 套,带尺寸和图层信息。
内置 8 个模板是「起点」,预设是「你自己的资产」——做久了这一栏比模板更有用。
- 悬停在元素上滚轮 → 缩放这个元素(文字改字号并同步改宽度,形状改宽高)
- 画布空白处滚轮 → 缩放画布
不用先选中再去找按钮,鼠标在哪就作用于哪。
字体下拉里每一项都标了商用状态:
- ✓ 可商用:思源黑体/宋体、阿里巴巴普惠体、HarmonyOS Sans、MiSans、得意黑、站酷高端黑、霞鹜文楷、优设标题黑
- ✗ 需授权:微软雅黑、苹方、方正兰亭黑、汉仪旗黑
选到需授权的字体会直接提示「字体公司索赔很常见」。没安装的字体也会标出来(显示时会回退到系统字体)。
封面是字体侵权最高发的场景,因为字体公司有成熟的爬虫取证流程。这个下拉框就是你的第一道防线。
36 个开箱即用模板,按场景分组:
| 类型 | 模板 |
|---|---|
| 大字压场 | 深底大字 / 描边大字 / 角落大字 / 聚光灯 / 括号框 / 下划线强调 |
| 图文分区 | 左文右图 / 上图文下 / 色带压底 / 三分栏 / 左右对比 / 渐隐蒙版 |
| 极简留白 | 极简留白 / 极简线条 / 网格线 / 圆点阵 / 下划线强调 |
| 卡片系列 | 三联卡片 / 层叠卡 / 半透叠层 / 标签贴 / 编号徽章 |
| 数据清单 | 数据大字 / 序号清单 / 时间轴 / 报纸头版 |
| 图形装饰 | 斜切色块 / 斜条纹 / 环形聚焦 / 圆形焦点 / 波浪弧 / 箭头引导 |
| 风格化 | 引语体 / 代码风 / 双色对比 / 渐变条 / 杂志线框 |
每个模板都适配横版、竖版、方形三种画布尺寸,换尺寸不会错位。
每个模板按当前画布尺寸和横竖版自适应调整布局,不是死图。
应用模板、加载预设、删除预设都直接生效,不弹确认框,按 Ctrl+Z 就能撤销。
整个扩展已经去掉所有原生 confirm / alert / prompt:
| 原来弹窗的场景 | 现在怎么做 |
|---|---|
| 应用模板覆盖提示 | 直接应用,靠撤销兜底 |
| 加载预设覆盖提示 | 直接加载,靠撤销兜底 |
| 删除预设确认 | 直接删除 |
| 清空图片指纹 / 变更日志 | 直接执行,底部轻提示 |
| CSV / JSON 导入确认 | 直接合并,结果显示在底部 |
| 预设起名输入 | 按画布主标题自动命名,双击可改 |
| 截图标注加文字 | 画布上浮出内联输入框,回车确认 |
| 抓取失败的操作指引 | 页面内提示块,不打断 |
需要说明的地方用页面内提示,需要输入的地方用内联输入框,全程不打断。
画布上的图层 DOM 在每次重渲染时都会重建,所以事件监听必须用委托挂在不被重建的 canvas 上,不能逐个绑到图层元素上。早期版本用了「只绑一次」的守卫标记,结果监听绑在了已经被替换掉的旧元素上,表现就是「画布完全不能拖」。
现在 bindStageEvents 采用事件委托,命中优先级为:
控制点 > 图层本体 > 空白
这个坑已经用 9 项真实 PointerEvent 测试锁住,任何一次重构把绑定改回去都会立刻失败。
PNG,宽图 1x、窄图 2x(高清)。导出时会自动往素材台账记一条来源记录,避免图做了却忘了登记。
| 键 | 作用 |
|---|---|
Ctrl/Cmd + Z |
撤销(50 步) |
Ctrl/Cmd + Shift + Z |
重做 |
Ctrl/Cmd + D |
复制选中图层 |
Delete / Backspace |
删除选中图层 |
| 方向键 | 微调位置 1px |
Shift + 方向键 |
微调位置 10px |
扩展没有后端服务器。做真实时同步要部署服务、搭账号体系、处理冲突——那是另一个项目。对 3–10 人的小编团队,CSV 台账互换更实用:零成本、可审计、出问题能回滚。
A 采集 B 导出 C 合并 D 回发
各自本地登记 → 每人导出 CSV → 管理员依次导入 → 合并后的 CSV
名字写进操作人 发到群里 选「合并」 发回群里各自导入
- 按记录
id去重 - 同一条记录,谁的
updatedAt(更新时间)更晚,就保留谁的版本 - 所以:改完一条记录要重新保存一次,否则时间戳没更新,合并不上
第一列 _module 标记这是哪张台账(素材台账 / 软件选题库 / 投诉看板 / 数据复盘),后面是统一列名。枚举值导出成中文(自截自录、侵权、已申诉),导入时自动还原成代码——这样可以在 Excel/飞书里直接看懂和编辑。
「团队设置」里有完整日志:谁、什么时候、新增或删除了哪条记录。合并前先看一眼,能避开大多数冲突。
检测台识别到红线词后,每条命中都直接给出替换词,不用你自己想怎么改。
[高危] 标题党 / 夸张表述 震惊
…这个永久免费的工具太强了 这里有破解版…
夸张标题被算法标记后不进推荐池…
替换为 意外 [替换]
改法:用"场景 + 具体结果 + 限定条件"替代…
点「替换」直接改输入框里那一处,改完自动重扫。删除类的按钮是红色,替换类是绿色。
公众号编辑器里的注入面板同样有替换词和「替换」按钮,点了直接改编辑器内容。
| 组 | 级别 | 例子 |
|---|---|---|
| 破解 / 盗版 | 阻断 | 破解版 / 激活码 / 注册机 / 白嫖 |
| 网盘导流 | 阻断 | 百度网盘 / 提取码 / 后台回复 / 加微信 |
| 翻墙代理 | 阻断 | VPN / 科学上网 / 机场节点 |
| 医疗健康功效 | 阻断 | 治疗 / 根治 / 无副作用 / 祖传秘方 |
| 金融理财承诺 | 阻断 | 稳赚不赔 / 保本 / 高回报 / 翻倍 |
| 外部链接 | 警告 | 裸链 / 网盘域名 |
| 诱导互动 | 警告 | 点赞在看 / 转发朋友圈 / 集赞 |
| 标题党 | 警告 | 震惊 / 必看 / 神作 / 手慢无 |
| 广告法绝对化 | 警告 | 最 / 第一 / 国家级 / 100% / 永久 |
| 教育培训承诺 | 警告 | 包就业 / 保过 / 七天精通 |
| 违禁承诺 | 警告 | 保证 / 一定 / 立竿见影 |
| 商标授权 | 警告 | 官方认证 / 独家授权 / 央视推荐 |
加粗是这版新增的 4 组。词条总数从约 110 条扩到 230+ 条。
阻断级不给"换个词就能过"的假方案——比如「破解版」的替换词是「官方免费版」,意思是整句改写,不是把"破解"改成"官方"就完事。删除类(提取码、加微信、无副作用)的替换词是「(删除)」,点了直接清掉。
警告级给的是真能换的词:震惊→意外、永久免费→长期、最→比较好。
检测只是第一步。这一版加了改写引擎,两个入口:
| 入口 | 位置 | 行为 |
|---|---|---|
| 工作台 | 检测台「一键降 AI 味」 | 改写输入框内容,列出逐条修改,可「恢复原文」 |
| 公众号编辑器 | 注入面板底部「降 AI 味」 | 直接写回编辑器,按钮变「撤销降味」 |
五类规则,全部是「高置信度、不会改坏语义」的替换:
| 类别 | 例子 |
|---|---|
| 删除套话 | 首先,/ 其次,/ 值得一提的是,/ 众所周知,/ 在这个…时代,/ 随着…的发展, |
| 套话改写 | 综上所述 → 说白了 / 由此可见 → 所以 / 此外 → 另外 / 以下是三点 → 三条 |
| 黑话换白话 | 赋能→帮 / 闭环→完整流程 / 抓手→切入点 / 颗粒度→细致程度 / 底层逻辑→根本原因 / 降本增效→省钱省时间 |
| 修饰词收紧 | 非常强大 → 挺强大 / 极大地提升 → 大幅提升 / 令人惊叹 → 让人印象深刻 |
| 空白清理 | 多余空格、重复标点、行首空格、连续空行 |
一段典型 AI 腔(首先其次再次 + 闭环赋能 + 底层逻辑颗粒度 + 众所周知):
改写前:AI 度 高,发布评分 22 分(存在阻断项,不要发)
改写后:AI 度 15,发布评分 73 分(可以发,有优化项)
158 字 → 126 字,共改 16 处
- 只动词,不改句子结构。规则硬拆句子只会更别扭,句式重构该交给模型。
- 句长均匀度改不了。AI 度里的「句长σ」这一项属于结构问题,要手动插短句。
- 缺真实细节改不了。版本号、报错原文、翻车记录这些必须你自己加。
规则改完还是要通读一遍。
「形成了完整闭环」如果先被通用规则 闭环 → 完整流程 命中,会变成「形成了完整完整流程」。
所以词表顺序有硬约束:长串组合词必须排在同词根短规则之前。现在 形成了完整闭环、完整闭环、实现降本增效、底层逻辑清晰、颗粒度细 这些组合规则都在前面,且有专门的回归测试守着。
设置页顶部有「AI 平台接入」,填 Key、自动验证、通过后自己收起,只留一个绿点。
| 平台 | 接口 | 默认模型 |
|---|---|---|
| OpenAI | api.openai.com/v1 | gpt-4o-mini |
| DeepSeek | api.deepseek.com/v1 | deepseek-chat |
| 智谱 GLM | open.bigmodel.cn/api/paas/v4 | glm-4-flash |
| 月之暗面 Kimi | api.moonshot.cn/v1 | moonshot-v1-8k |
| 阿里通义千问 | dashscope.aliyuncs.com/compatible-mode/v1 | qwen-plus |
| 自定义 | 任意 OpenAI 兼容地址 | 自己填 |
- 选平台 → 自动带出接口地址和模型名
- 粘贴 Key → 点「验证并保存」
- 验证通过 → 表单收起,变成一行:绿点 + 平台名 + 模型 + Writer Guard 徽章
- 侧边栏「封面设计」右侧亮起绿点(呼吸动画)
先打 GET /models(免费、快)。返回 401/403 直接判定 Key 无效;接口不支持 /models(404)就退回一次 max_tokens: 1 的 chat 请求探活。
存在 chrome.storage.local 的 wg_aiConfig 里,刷新不丢。字段:provider / key / baseUrl / model / verified / lastCheck / lastMsg。
chrome.alarms 注册一个 24 小时周期的任务(background.js),到期后打一次验证接口:
- 有效 → 只更新
lastCheck - 失效 → 把
verified改成false - 全程不弹通知、不动角标,下次打开设置页才看到「验证已失效」
设置页打开时也会调一次 silentRecheck(),但不到 24 小时不会真的发请求。
Key 只存在本机浏览器存储里,不上传任何第三方服务器。验证请求直连你选的那家平台。
不自动扫描。 只有你点面板底部的「开始检测」,才会去读正文、跑一遍红线 + AI 痕迹。
这样做的原因:公众号编辑页是个持续变化的 DOM,自动监听要么漏(只等 30 秒)、要么一直占资源(MutationObserver + 轮询)。改成手动后:
- 没有 MutationObserver、没有 setInterval、没有 input 监听
- 打开面板不扫描,只回显上一次的结果;没检测过就显示「未检测」
- 你在编辑器里改内容,检测结果保持不变,不会自己重扫
- 想更新就再点一次「开始检测」
面板状态:
| 显示 | 含义 |
|---|---|
| 未检测 | 还没点过检测按钮 |
| 分数 + 标签 | 检测完成,显示上次结果 |
| 没找到正文编辑区 | 点了检测但没定位到编辑器,会告诉你怎么办 |
这个状态说明面板已经注入了,但没找到正文编辑区,或者扫描过程崩了。这一版修了两个原因:
旧代码每 500ms 找一个编辑器,找 60 次(30 秒)还没找到就彻底放弃,之后再也不会重试。公众号的编辑区是动态生成的——先开草稿箱、再点「新建图文」,编辑区出来时早就过了 30 秒。
现在改成三路兜底,永不放弃:
- 编辑器一建好就挂上(
MutationObserver盯 DOM 变化) - 每 2 秒低频轮询一次,编辑器被替换了也能重新挂
- 手动点「重新检测」,立即重新查找
content.js 里有自己的一份 scanRedline(公众号页面不加载工作台的 engine.js)。上一版把词库的 patterns 从裸正则改成了 { re, to } 带替换词,工作台的引擎改了,这里没改。
结果:拿到对象当成正则用,re.source 是 undefined,new RegExp(undefined, ...) 直接抛错。整条 buildReport → render 链断掉,verdict 永远停在初始文案。
现在两处都兼容两种格式,顺带把「替换词」也带进了面板。
- 已知选择器(
.ProseMirror/#js_editor/.edui-body-container…) - 页面上任何
[contenteditable],取文字最多的可见的那个 - 同源 iframe 里找
三层都找不到,点「重新检测」会明确告诉你「没找到正文编辑区」,而不是干等着。
还找不到的话:把公众号编辑页的地址发我,我加对应规则。
按这个顺序看:
| 现象 | 原因 | 处理 |
|---|---|---|
| 按钮写着「降 AI 味 (未加载)」且是灰的 | 改写引擎没注入,扩展没重新加载 | 去 chrome://extensions 点扩展卡片上的刷新,再 Ctrl+Shift+R |
| 面板顶部弹红色横条,写着具体原因 | 看文字照做 | 红色提示停留 7 秒 |
| 按钮点了变成「撤销降味」,但正文没变 | 编辑器写回失败(公众号编辑器结构特殊) | 去工作台改写后复制粘贴 |
| 按钮点了完全没动静,也没有提示 | 页面上的还是旧版 content script | 重载扩展 + 强刷页面 |
公众号编辑器会动态重建 DOM。原来代码里缓存了 state.editor,编辑区重建后这个引用就失效了——元素已经不在文档里,focus() 打不上去,execCommand 也就无从下手,改写静默失败,界面毫无反馈。
现在改成每次操作前先验证:
function getLiveEditor() {
const cached = state.editor;
if (cached && document.contains(cached) && cached.isContentEditable) return cached;
const fresh = findEditor(); // 失效就重新找
if (fresh) state.editor = fresh;
return fresh;
}配合「按钮自检 + 红色错误提示」,以后点下去没反应的概率很低;万一失败,面板上会明说是什么原因。
你提到的 E:\每日更新\17\19\Gulang_extracted 我查过了,接不进来:
| 项 | 实际状态 |
|---|---|
| 程序 | 孤狼智写 v2.1.0(商业软件,需要联网激活) |
| 授权 | activation.json 里 is_active: false,日志「服务器拒绝授权」 |
| 模型 | Mojiang.enc 未下载,日志「模型未找到」「降AI功能不可用」 |
| CUDA 推理库 | 缺 3 个 |
| 本地 API | 11434 / 8080 / 5000 / 7860 等端口全部未开放 |
| 权重文件 | 目录内无 gguf/bin 权重(只有 OCR 模型) |
它是「专用降味模型 + Claude 兜底校对」的付费客户端形态,没有可调用的接口。
如果确实想接模型,可行路径是标准的 OpenAI 兼容接口:
- 本地:Ollama(
http://127.0.0.1:11434/v1),拉一个qwen2.5之类的中文模型 - 云端:任何 OpenAI 兼容服务
告诉我服务地址、模型名、是否需要 Key,我把设置项和调用接上。接上之后,「一键降 AI 味」会先用规则改,再把规则改不动的句式问题交给模型。
从开源 skill md-to-wechat 的思路迁移而来,但做了两处关键改造:
- 排版本地化:原版把 Markdown 交给第三方渲染服务换 HTML(要注册账号、记 THEME_ID、离线不可用);这里改成扩展内纯本地渲染,零网络、零依赖,样式全部内联(公众号编辑器只认内联样式)。
- 推稿双通道:原版只有官方 API 一条路(AppSecret + IP 白名单,换 Wi-Fi 就 40164);这里默认走网页会话通道——在已登录的公众号页面里直接写入排版结果,不碰 AppSecret,也没有 IP 限制。
| 写法 | 效果 |
|---|---|
# ~ ###### |
标题(H2 按主题换样式:左竖条 / 居中线 / 粗下划线 / 反白色块) |
**加粗** |
主题强调色加粗 |
==关键词== |
绿底高亮 |
~~长尾词~~ |
紫底标注 |
> 引用 |
主题色左边线 + 浅底 |
- / 1. 列表 |
支持嵌套 |
| 表格 | 主题色表头 |
| ``` 代码块 | 灰底等宽 |
 |
居中插图,图注自动小字居中 |
主题内置 6 套:墨蓝 / 简约白 / 暖橘 / 松绿 / 红金(政务风)/ 商务灰。
预览是真机手机壳(375×740,带状态栏 / 公众号文章头 / 底部数据条),按读者手机上的实际效果排版;标题、作者改动会实时同步到文章头。可切「宽屏」对比。
| 通道 | 前置条件 | 说明 |
|---|---|---|
| ① 复制排版 | 无 | text/html 进剪贴板,粘到公众号编辑器即带样式 |
| ② 写入编辑器 | 公众号已登录 | 自动定位已打开的图文编辑页,模拟粘贴写入(三档降级:模拟 paste → insertHTML → innerHTML),同时回填标题 |
| ③ 推送草稿箱 | AppID / AppSecret + IP 白名单 | 封面上传为永久素材、正文外链图自动转微信 CDN、直推草稿箱;40164 会直接告诉你微信看到的 IP |
- 封面设计器每导出一次,编辑台就能「用设计器那张」直接拿最近一张当推送封面
- 不选封面时,推送自动用正文第一张图,再不行用绑定设置里的默认封面
- 本地上传的封面自动压到 900px 内,避免超微信 2MB / 10MB 限制
「发布到公众号」卡片里、摘要下面多了一格隐形字数:
- 把想隐藏的文字直接粘进文本框(只存纯文本,代码不用管,自动存草稿)
- 点「确定 · 插入并复制」:自动生成隐形代码(135 编辑器同款思路,
font-size:0+ 透明色兜底),追加到公众号正文末尾,同时富文本复制进剪贴板 - 编辑器会计入这些字数,读者看不到任何内容
编辑台工具条下方多了一排「AI」按钮,直接复用「团队设置 → AI 平台接入」里配好的模型:
| 按钮 | 干什么 |
|---|---|
| 起标题 | 按正文要点出 6 个信息型候选标题,点一个直接用 |
| 写正文 | 按标题 + 素材生成 Markdown 全文(内置禁编造数据/荣誉的约束) |
| 改写选中 | 选中一段改写,原地替换 |
| 降 AI 味 | 整篇去模板腔、排比堆砌,保留 ==高亮== 标记 |
| 生成摘要 | 80 字摘要自动填进摘要框 |
平台支持 OpenAI / DeepSeek / 智谱 GLM / Kimi / 通义千问 / 豆包(火山方舟) / 自定义 OpenAI 兼容接口。豆包选「豆包(火山方舟)」,填方舟 API Key,模型名填 doubao-1.5-pro-32k 之类或你的 ep-xxx 接入点 ID。
- 工作台顶栏「豆包」按钮:右侧抽屉直接内嵌豆包网页对话;若内嵌页提示未登录,点「独立窗口」——工作台自动挤到左半屏、豆包占右半屏
- 贴边技能面板(在豆包网页右侧):25 个预设技能分四类——写文章 7 / 起标题 6 / 去 AI 味 6 / 生图片 6,2 列卡片 + 搜索;点卡片直接把提示词插进豆包对话框;卡片右上角 ☆ 收藏进「收藏」分组;底部「+ 自定义技能」可存自己的提示词;鼠标移到关闭区自动折叠
- 豆包回答 → 编辑台:在豆包页面划选回答文字,浮出「→ 编辑台」一键回填到编辑台正文
- 豆包图片 → 公众号:豆包生成的大图悬停时浮出「插到公众号」,自动转发到已打开的图文编辑器插入正文(找不到编辑器会兜底复制到剪贴板)
编辑台「送进检测台跑红线」一键把标题 + 纯文本送进检测台并自动开扫,写完即检。
公众号后台 →「设置与开发 → 基本配置 → API IP 白名单」加入本机公网 IPv4(设置页可一键查询)。换网络后 IP 会变,报 40164 就按提示把新 IP 加进去。网页会话(通道②)完全不受此限制。
工作台左侧新增「视频 · 图文工具」分组,两个完整独立应用原样内置(源文件一行业务代码没删):
- 智录笔记:上传视频 + SRT 字幕 → 全视频截图廊(悬浮预览/滚轮切换/点击关闭)→ 笔记 + 画中画水印 → 封面生成器 → 一键复制到公众号;还带视频理解提示词生成器(解说/AI 视频/短剧/电影级 PPT 四种用途、人物预设、任务队列)、Aiy 短剧生产(视频生成 + 中文配音 + 历史记录)、演讲者模式(计时器/提词/字号调节)。
- 情绪导演:粘贴分镜脚本/故事大纲/小说/口播文案 → 生成「脸·身·声·词」四重奏导演词(时间线精确到秒)+ 四重奏速览 + 五维导演评分卡;需在页面里填 Agnes API Key。
打开方式:工作台侧边栏,或扩展弹窗里的两个快捷按钮。右上角可「新窗口」独立打开、「重新加载」刷新。
和发布安全台的联动(内嵌打开时可用):
- ✍️ 发到编辑台:智录笔记的图文会转成 Markdown(含截图、加粗、列表)追加进编辑台正文,标题自动回填;
- 🛡 送合规检测:把当前内容送进检测台跑红线 + AI 痕迹评分。
技术说明:两个应用跑在 MV3 沙箱页里,数据(API Key、模板、水印预设、对话记忆)由扩展代管持久化,跨域请求(apihub.agnes-ai.com / Bing TTS)走扩展后台反代,导出文件由工作台落盘——功能与独立打开完全一致。源码备份在 tools/studio-src/,改动桥接后用 python tools/build-studio.py 重新生成。
沙箱适配的几个要点(v1.22.1+):
- 文件选择:沙箱里
showOpenFilePicker会抛 SecurityError("📄 SRT / 📁 视频"按了没反应的原因),桥接用页内文件框实现了同名 API,选择/拖拽都支持; - 公众号标题栏:预览区头部那两行示例说明文字换成了「公众号标题」输入框,点「插入到公众号标题」直接写进公众号编辑器的标题框(找不到编辑页时标题会存到编辑台,写入正文时自动带上);
- 存档安全:写入改为"读最新档-合并-落盘",多处多开不再互相覆盖;
unlimitedStorage解除 10MB 配额;关页面/切后台前强制落盘; - 加载自愈:iframe 2.5 秒没握手自动换地址重试(最多 3 次),Edge 偶发的「此页面已被 Microsoft Edge 阻止」不用再手动刷新。
平台识别 AI 内容不是看单一特征,而是几个信号叠加打分。所以正解不是伪装,是把 AI 生成比例压下去,把真实经验密度提上来。这在平台规则内是允许且被鼓励的。
- 连接词密度 — 首先 / 其次 / 此外 / 综上所述 / 由此可见
- 句式均匀度 — 句长方差小,每句长度差不多
- 黑话密度 — 赋能 / 闭环 / 抓手 / 颗粒度 / 底层逻辑
- 段落长度方差 — 每段长度高度一致
- 有没有不可伪造的真实经验 — 具体型号、版本号、报错原文、失败记录
工具里的「AI 度」按这五项算出来,0–100 分,低于 40 才算安全。
判定逻辑有一处细节值得说:真人写短句流时句长方差也很小,但那是风格不是机器味。所以工具只在「平均句长 ≥ 18 字且长度趋同」时才判 AI,避免误伤。
1. 删掉所有连接词 首先、其次、再次、最后、此外、综上所述、由此可见、值得一提的是——这些是 AI 的骨架。删完之后段落靠事实自然衔接,机器味立刻掉一半。
2. 刻意打乱句长 插一句 5 字以内的短句,再写一句 40 字以上的长句。
❌ 该软件具有强大的功能和极致的用户体验,能够显著提升工作效率。 ✅ 启动 1.2 秒,导出一张 4K 图 3 秒。但设置项藏在三级菜单里,我找了十分钟。
3. 塞进不可伪造的具体细节 设备型号、软件版本号、具体日期、第几步出错、错误提示原文。AI 编不出真实的报错信息。
4. 写失败和翻车
我试了 6 个工具,5 个在第三页就开始乱码。
真实经验一定包含失败。AI 只写成功路径。
5. 换掉黑话 赋能、闭环、抓手、粒度——换成具体动作。
❌ 它可以帮助你实现降本增效,形成业务闭环。 ✅ 原来两个人做一天的活儿,现在一个人两小时。
6. 段落长度不要均匀 一段 2 行,下一段 8 行,再一段 1 行。
7. 加口语和自嘲
UI 丑得我差点卸载。但它现在是常驻工具。
AI 不会自嘲。
2025 年 9 月起施行的《人工智能生成合成内容标识办法》要求:AI 生成的内容需按规定标注。
务实做法:测试、截图、结论、踩坑全部自己完成,AI 只用于资料整理和排版。 这样既不用强制标注,也不会有 AI 味。
如果稿子确实是 AI 主写的,如实加一句辅助说明,比被平台识别出来的后果轻得多:
本文测试与结论由本人完成,写作过程中使用了 AI 工具辅助整理,全部内容经本人核实。
Q:编辑器里没出现「安全台」按钮?
微信编辑器会改 DOM 结构。打开 content/content.js,把新的选择器加进 EDITOR_SELECTORS 数组(按 F12 找编辑区的 class 或 id),刷新扩展即可。
Q:点「抓取当前标签页」提示不是公众号页面?
抓取功能要求当前活动标签页是 mp.weixin.qq.com。先点「打开图文分析页」,在那个页面上操作。
Q:数据会传到哪?
不传任何地方。全部存在本机浏览器的 chrome.storage.local。换电脑前用「团队设置 → 导出 JSON 备份」。
Q:多台电脑怎么同步? 导出 JSON 备份 → 另一台「合并导入 JSON」。同一账号也可以用 Chrome 自带的扩展数据同步,但多人协作请走 CSV 流程。
Q:想先看看界面不想装?
直接双击 workbench/workbench.html,大部分功能能跑(数据存 localStorage)。抓取和编辑页拦截需要装扩展。
Q:改了词库怎么生效?
编辑 data/dict.js → 回扩展页点刷新圆圈。不用重新打包。
writer-guard/
├── manifest.json 扩展配置(MV3,需 Chrome 111+)
├── background.js 后台服务
├── welcome.html 安装欢迎页
├── data/
│ └── dict.js 核心词库(通用红线 / 品类红线 / AI痕迹 / 字体 / 模板)
├── content/
│ ├── net-hook.js MAIN world,hook fetch/XHR 截取后台接口
│ ├── data-scrape.js 接口 JSON 自适应提取 + DOM 表格兜底
│ ├── content.js 编辑页实时检测(含品类支持)
│ └── content.css
├── popup/ 工具栏弹窗
├── workbench/
│ ├── workbench.html 工作台主界面(13 个视图)
│ ├── workbench.css
│ ├── core.js 存储 / 路由 / 操作人 / 日志 / CSV 互换
│ ├── engine.js 检测引擎(红线 / AI / 评分 / 改写)
│ ├── mod-compliance.js 检测台 / 标题改写 / 字体自查
│ ├── mod-assets.js 素材台账 / 重复图
│ ├── mod-tools.js 模板库 / 截图标注 / 多平台改写
│ ├── mod-data.js 软件库 / 投诉看板 / 复盘 / 数据抓取`n│ ├── mod-cover.js 封面设计器(图层引擎 / 排版 / 导出)
│ ├── mod-settings.js 团队设置 / 品类 / CSV / 日志
│ └── app.js 启动
├── tests/
│ ├── syntax-check.html 语法检查(14 个文件)
│ ├── engine-test.html 引擎断言(31 项)
│ └── integration-test.html 集成断言(39 项:CSV往返/合并/抓取解析)
├── icons/
└── README.md
这一版对界面做了一次系统性重做,不是零散调色。
之前大量文字是 11–13px,长时间看很累。现在全部走 CSS 变量,最小 11.5px,正文 13.5px:
| 变量 | 值 | 用途 |
|---|---|---|
--fs-xs |
12px | 徽章、辅助标签 |
--fs-sm |
12.5px | 说明文字、表格头 |
--fs-base |
13.5px | 正文、输入框、表格 |
--fs-md |
14.5px | 卡片内小标题 |
--fs-lg |
16px | 卡片标题 |
--fs-xl |
19px | 页面标题 |
行高从 1.65 提到 1.72,加 letter-spacing: .012em 让中文不挤。
中文优先,不再让英文系统字体抢占:
PingFang SC → HarmonyOS Sans SC → MiSans → Source Han Sans SC
→ Noto Sans SC → -apple-system → Segoe UI → Microsoft YaHei
- 品牌色从单色蓝改为 蓝紫渐变(
#2563eb → #7c3aed),主按钮、选中态、logo 都用它 - 三档阴影(
--shadow-xs/sm/lg),卡片浮起、hover 加深 - 圆角 13px,输入框 9px,徽章胶囊形
- 顶栏毛玻璃
backdrop-filter: saturate(180%) blur(14px) - 侧边栏深色渐变 + 选中项发光
- 统一过渡曲线
cubic-bezier(.4,0,.2,1),时长 0.2s - 视图切换淡入上移
- 按钮 hover 上浮 1px + 阴影加深,active 轻微回弹
- 输入框 focus 时边框变色 + 3.5px 光晕
- 表格行、卡片、缩略图 hover 有反馈
- 评分环和 AI 进度条数值变化带动画
AI 进度条不显示:原本用 <i style="width:61%"> 做进度,实际渲染宽度恒为 0(父容器 460px 正常、display:block、无 !important,换成 div 和固定 px 都一样)。改用容器渐变实现,不依赖子元素宽度:
bar.style.background = `linear-gradient(90deg, ${color} ${pct}%, #e7ebf2 ${pct}%)`;评分环数字偏上:align-items: baseline + line-height: 78px 导致垂直不对齐,改成 align-items: center + line-height: 1,"分"字用 align-self: flex-end 贴底。
cd writer-guard
python -m http.server 8899浏览器依次打开:
| 页面 | 期望结果 |
|---|---|
http://127.0.0.1:8899/tests/syntax-check.html |
RESULT: ALL PASS |
http://127.0.0.1:8899/tests/engine-test.html |
RESULT: 31 pass / 0 fail |
http://127.0.0.1:8899/tests/integration-test.html |
RESULT: 39 pass / 0 fail |
writer-guard/
├── manifest.json # 扩展清单(版本号以这里为准)
├── background.js # 后台:数据抓取、豆包推送、跨域反代
├── content/ # 注入脚本:红线拦截、悬浮按钮、编辑器写入、后台抓数
├── workbench/ # 工作台:编辑台 / 检测台 / 封面设计 / 豆包侧窗
├── studio/ # 内置应用(智录笔记 / 情绪导演)构建产物
├── data/ # 词库
├── icons/ popup/ welcome.html
├── docs/ # GitHub Pages 落地页(index.html + assets/)
├── tools/ # 测试与构建脚本(不打包进发布 zip)
├── tests/ # 测试夹具页面
├── screenshots/ # 开发截图
├── LICENSE # 保留所有权利声明
└── dist/ # 打包产物(已 gitignore)
- 仓库:
https://github.com/aiy51dev/writer-guard - 站点:
https://aiy51dev.github.io/writer-guard/ - 下载:
https://github.com/aiy51dev/writer-guard/releases/latest
为什么不是
aiy51dev.github.io仓库:那个仓库已被「资源导航页一键发布」工具占用 (站点根https://aiy51dev.github.io/是它的导航首页),扩展单独开项目仓库,站点落在/writer-guard/子路径,两边互不影响。脚本里也写死了这道保护(PROTECTED),禁止覆盖。
一键脚本(建仓库 / 上传代码 / 开 Pages / 传安装包 / 探活全包):
# PowerShell: $env:GH_TOKEN="ghp_xxx" cmd: set GH_TOKEN=ghp_xxx
export GH_TOKEN=ghp_xxx
python tools/publish-github.py令牌用 classic PAT 勾
repo(要顺带建 Release 就再勾workflow)即可;脚本不写任何凭据到.git/config。若github.com:443直连超时(国内常见),脚本走api.github.com的 Git Data API 上传(blob → tree → commit → ref),等价于一次完整提交,不需要 git 推流。
纯手动(网络好的时候):
git remote add origin https://github.com/aiy51dev/writer-guard.git
git push -u origin main
# 然后 Settings → Pages → Branch: main / 目录: /docs
# Releases → Draft a new release → tag v1.29.3 → 上传 dist/writer-guard-v1.29.3.zip- 改
manifest.json的version - 跑
python tools/build-release.py→ 生成dist/writer-guard-v<版本>.zip(约 0.4 MB,只含运行时文件) - GitHub → Releases → Draft a new release → tag 用
v<版本>→ 上传这个 zip - 落地页的「下载最新版」指向
releases/latest,会自动跳到新版本
扩展不能通过 GitHub Pages 安装:Chrome / Edge 只认「加载已解压的扩展程序」或商店上架。 Pages 只用来放落地页与文档,安装包走 Releases。
- 仓库 Settings → Pages
- Source 选 Deploy from a branch,Branch 选
main、目录选 /docs(docs/.nojekyll已存在,跳过 Jekyll 处理) - 保存后等 1 分钟,地址即
https://aiy51dev.github.io/writer-guard/ - 落地页的仓库坐标写在
docs/index.html的var REPO一处;站点所有资源都是相对路径,放在根路径或子路径都能跑(当前是项目站子路径)
- 本仓库为 保留所有权利(见
LICENSE):源码公开仅供查看与学习,复制、二次分发、商用、上架商店需书面许可 - 与腾讯 / 微信官方无关,不承诺流量与收益
- 不提供破解、刷量、规避审核等任何功能;词库里的「必删词」是拦截名单,不是玩法说明
- v1.29.3 清单描述与仓库开源配套:新增
LICENSE(保留所有权利)、.gitignore、docs/落地页(GitHub Pages:功能卡片 + 真实截图 + 3 分钟安装 + FAQ + 版权免责)、tools/build-release.py(只打运行时文件,约 0.4 MB) - v1.29.2 编辑页豆包侧窗不再鼠标移开自动收起:侧窗保持一直显示,收起只由点击触发(点「豆包」图标、点 ×、Esc、打开安全台面板让位);iframe 持续存活,豆包回答不丢
- v1.29.1 修复公众号编辑页豆包侧窗一直卡在「正在打开豆包…」白屏:
doubao-side.html的加载提示逻辑写成了内联<script>,被 MV3 扩展页面 CSP(script-src 'self')直接禁掉——隐藏提示的 load 事件和 8 秒兜底从来没执行,白色提示层永远盖在豆包上,看起来像没登录;其实豆包(含登录态)早就加载好了。脚本抽成外链doubao-side.js,提示文案不再误导「多半是没登录」,兜底缩短到 6 秒;测试加 4 条静态检查防回归(外链脚本 / 无内联 script / 文案) - v1.29.0 侧边栏「封面设计」移到「智录笔记」上方(视频·图文工具分组第一位);公众号图文编辑页右下角新增「豆包」悬浮按钮(就排在「封面」下面):点开右侧豆包侧窗(420px,底边自动贴在悬浮按钮组上方),外壳走扩展自带
doubao-side.html(懒加载 + 白屏兜底提示 + 新窗口入口),鼠标移开 220ms 自动收起 / Esc / × / 打开安全台面板时自动让位——收起只是隐藏,iframe 保持存活,豆包正在写的回答不会丢 - v1.28.1 「写入编辑器」不再写进标题栏:编辑器定位重做(标题/摘要/作者短字段直接出局 + 面积/命中强度打分 + 同源 iframe 深挖,正文为空也绝不再按「文字最多」误选标题);修复 iframe 编辑器被移除后仍被缓存当活的(游离浏览上下文 contains 陷阱);正文先写、标题后填(原来先 focus 标题栏,execCommand 兜底会把整篇插进标题);插入完成后自检「正文变长才补标题,标题暴涨=写错地方」并给出明确报错。排版预览表头「写入编辑器」前新增「复制」按钮:带样式/图片/隐形字数的 HTML 直接进剪贴板,公众号正文 Ctrl+V 即可,不碰标题栏
- v1.28.0 智录笔记 → 编辑台投递重做:截图不再把 base64 塞进正文(只留
短代号,真图进图库,预览/复制/写入时换回真图,图丢了显示灰框不显示代码);按钮文字/字幕条目不再混进正文;带底色段落转引用块、<mark>转绿底高亮。编辑台 AI 按钮(起标题/写正文/改写/降AI味/摘要)没配 API 时只推右侧内置豆包侧窗:postMessage 之外新增后台注入兜底(content script 没注入也能填),不再自动开/切网页版豆包标签页,彻底失败时提示词复制走 + 用户主动点才开「右侧小窗」。豆包侧栏鼠标离开立刻自动收起(跨域 iframe 下用指针坐标判断,不再漏判)。封面复制高清化:导出倍率 2→3 倍(900×383 → 2700×1149),剪贴板同时带text/html(微信按原图上传,不再重采样发糊)和 PNG - v1.27.0 封面「复制」按钮:整画布重渲染 PNG 走
ClipboardItem同步手势写入,背景色和编辑内容一起带走 - v1.26.0 未接 API 推豆包不再开网页版:内置 iframe 侧窗跨域 postMessage 握手填充发送
- v1.16.0 封面「插入编辑器」:一键把画布插入公众号正文,三档降级(paste 事件 → execCommand → 剪贴板),每档校验 img 是否真的插入
- v1.15.0 封面设计新增 20 个文件夹素材:Canvas 矢量绘制、点击插入画布、带文字的三个附带可编辑文字层
- v1.14.0 新增 AI 平台接入:支持 OpenAI/DeepSeek/智谱/Kimi/通义/自定义,填 Key 自动验证、通过后收起只留绿点、侧边栏「封面设计」亮绿点;配置存本机刷新不丢;后台每 24 小时静默复验
- v1.13.0 发布安全台改为纯手动检测:去掉 MutationObserver、定时轮询、输入监听,只有点「开始检测」才扫描;面板打开只回显上次结果
- v1.12.1 修复发布安全台一直「等待检测」:编辑器监听改为永不放弃(DOM 变化 + 2 秒轮询 + 手动重检);修复 content.js 的 scanRedline 未适配新词库格式导致扫描崩溃
- v1.12.0 内置版式从 16 个扩到 36 个,新增角落大字/斜条纹/引语体/标签贴/渐变条/网格线/聚光灯/括号框/下划线强调/层叠卡/编号徽章/时间轴/三分栏/渐隐蒙版/圆点阵/箭头引导/代码风/报纸头版/波浪弧/左右对比
- v1.11.0 封面画布双击文字原地编辑:字体字号对齐跟图层一致,Enter 换行、Ctrl+Enter/失焦提交、Esc 取消;改字后自动清空逐字着色避免串色
- v1.10.0 封面画布自动保存:每次改动防抖 500ms 落盘,刷新自动恢复;工具栏显示保存状态;图片超配额时降级保存;顺带修了脏尺寸导致四角渐变渲染崩溃
- v1.9.1 修复「降 AI 味」在公众号编辑器里静默失败:编辑器缓存引用失效后改用实时查找;失败提示分级显示(红色错误停留 7 秒);引擎未注入时按钮直接标「(未加载)」
- v1.9.0 红线命中给替换词:每条命中显示「替换为 X」+ 一键替换按钮;风险词库从 8 组扩到 12 组(新增医疗、金融、广告法绝对化、教培承诺),词条 110→230+
- v1.8.5 四角加 56px 换色安全热区,角上滚轮不再误触发画布缩放
- v1.8.4 属性面板重排:逐字着色提到图层下方第一位,文字内容紧随其后,位置与尺寸挪到属性末尾
- v1.8.3 图层列表移入右侧属性面板(画布背景下方);左侧工具面板只留版式/尺寸/AI 底图并默认展开
- v1.8.2 修正滚轮分工:画布上文字滚轮改回调字号;逐字着色的字块滚轮才换该字颜色
- v1.8.1 左右面板内容归位:左侧放工具面板(图层·版式·尺寸·AI 底图),右侧放属性面板(画布背景·位置与尺寸·排版)
- v1.8.0 背景改为四角渐变:四个角各控一色、canvas 双线性插值融合、滚轮换色自动避让不撞色;文字上滚轮切换颜色;模板 16 个;折叠按钮交叉控制
- v1.7.0 背景设置常驻属性面板 + 画布四角调色热区;文字上滚轮切换颜色;模板扩到 16 个;两侧折叠按钮功能对调
- v1.6.1 移除封面设计器的安全区(虚线框 + 说明文字 + 工具栏按钮全部去掉),画布不再有参考线干扰
- v1.6.0 新增降 AI 味改写引擎:工作台一键改写 + 公众号编辑器内直接写回,带逐条修改清单与撤销;修复组合词叠加替换
- v1.5.0 视觉系统全面升级:字号阶梯、字体栈、渐变配色、圆角阴影、过渡动效;删除安全区说明文字;修复 AI 进度条不显示
- v1.4.0 左右面板改为三角按钮折叠(默认收起、tab 面板移到右侧);扩展绑定公众号页面:右下角新增「封面」入口,在页面内全屏打开设计器不跳转
- v1.3.3 区分「图片图层」与「背景图层」:加图片不再变成铺满画布的底图;背景只留一张、不参与吸附;安全区文案改成直白说明并标出「参考线不可拖」
- v1.3.2 修复画布拖动失效:事件绑定改委托模式,不再绑在会被重建的图层元素上;补 9 项真实鼠标交互测试
- v1.3.1 去掉全部原生弹窗:应用模板/加载预设/删除直接生效,撤销兜底;预设自动命名可双击改;截图标注改用内联输入框
- v1.3 封面设计器增强:逐字着色、WCAG 对比度检测、方案预设、滚轮分级缩放、圆形装饰、元素越界警告、BUILD 版本号
- v1.22.2 修复/增强:①智录笔记「📄 SRT」「📁 视频」点了没反应——沙箱页禁止 File System Access 弹窗,桥接补了页内文件选择框(可拖拽);②Edge 打开内置应用偶发「此页面已被 Microsoft Edge 阻止」——studio 页补进 web_accessible_resources + iframe 握手看门狗自动重试,不用再手动刷新;③关掉再开数据丢失——存档改"读最新档-合并-落盘"(多开不再互相覆盖)+ unlimitedStorage + 退出前强制落盘;④预览区头部说明文字替换为「公众号标题」栏,点「插入到公众号标题」直接写进公众号编辑器标题框
- v1.22 新增:内置两个完整独立应用——「智录笔记」(视频+字幕→全视频截图廊→笔记→封面→公众号图文,含视频理解提示词生成器、AI 短剧生产、电影级 PPT 演讲者模式、AI 对话助手)和「情绪导演·脸身声词四重奏」(分镜/大纲/小说/口播 → 精确到秒的表演指令 + 四重奏速览 + 导演评分)。原样内嵌(MV3 沙箱页),业务代码一行未删;新增一键「发到编辑台 / 送合规检测」、localStorage 跨会话持久化、跨域 API 后台反代、导出下载中转
- v1.20 新增:隐形字数(纯文本粘贴 → 一键生成隐形代码插编辑器 + 复制);编辑台预览升级真机手机壳
- v1.19 新增:工作台内嵌豆包侧窗 / 独立窗口;豆包贴边技能面板(预设 25 技能、收藏、自定义、搜索);豆包回答一键回填编辑台;豆包图片一键插入公众号
- v1.18 新增:编辑台 AI 助手(起标题 / 写正文 / 改写选中 / 降 AI 味 / 生成摘要);AI 平台新增豆包(火山方舟)
- v1.17 新增:编辑台(Markdown 本地排版引擎 + 6 主题、复制排版 / 写入公众号编辑器 / 推送草稿箱三通道、本地草稿箱、公众号绑定设置、封面设计器联动);迁移自开源 skill md-to-wechat,排版改为本地实现
- v1.2 新增:封面设计器(三栏画布编辑、图层系统、8 个版式模板、7 种平台尺寸、字体商用检测、安全区、AI 底图提示词)
- v1.1 新增:品类专属词库(办公/设计/开发 15 条)、后台数据自动抓取、团队 CSV 台账互换 + 操作人 + 变更日志
- v1.0 首发:检测台、标题改写、AI 治理、字体自查、素材台账、重复图预警、模板库、截图标注、软件选题库、投诉看板、多平台改写、数据复盘
词库规模:通用红线 8 类 + 品类红线 15 条 + AI 痕迹 5 类 + 字体白 22/黑 22 + 模板 8 个 + 评分卡 9 项。