陪读蛙

站点控制与站点规则

通过黑白名单决定插件运行范围,并用 per-site JSON 安全配置匹配、selector、布局、阈值和 CSS。

Read Frog 有两套用途不同的站点设置:

功能位置用途
站点控制设置 → 通用通过黑名单或白名单允许/阻止插件在整个主机名上运行。
站点规则设置 → 站点规则修改匹配网页的解析、布局、过滤或样式。

“站点控制”适合权限策略;插件能运行但选错节点、破坏行内文字、翻译代码或需要专属 CSS 时使用“站点规则”。

通用站点控制

黑名单模式会在除列表外的所有主机运行;白名单模式只在列表中的主机运行。这里只按主机名精确或子域匹配:example.com 也匹配 news.example.com,但不接受路径和通配符。

翻译页的“自动翻译网站”和“永不自动翻译网站”也使用这种主机名格式。自动列表只控制是否自动启动,通用站点控制决定插件能否运行。

Site Rule URL pattern

站点规则支持更丰富的 URL pattern,匹配时忽略 query string。

Pattern匹配范围
github.comgithub.com 的 HTTP/HTTPS 页面
*.example.com根域名及所有子域名
docs.example.com/guides/*指定主机的 guides 路径
https://example.com/*仅 HTTPS 页面
www.amazon.*多个顶级域下的 Amazon 主机
javdb*.comjavdb 后带匹配文字的主机名

scheme 可以是 httphttps*,不允许显式端口。宽泛规则需要排除某些页面时使用 excludeMatches

多条规则如何合并

Read Frog 先依次应用所有匹配且启用的内置规则,再应用用户规则。可按 ID 禁用某条内置规则。

  • selector 列表按顺序经过基础字段、.add.remove 处理;
  • minCharactersminWords 是标量,最后匹配的值生效;
  • injectedCssinjectedCss.add 按匹配顺序拼接;
  • 无效 URL pattern 或 selector 会被忽略并显示警告,不会执行。

因此用户规则通常拥有最终决定权,但数组不会简单整体覆盖。用 .remove 撤销前面规则添加的 selector,用 .add 扩展它。

可用字段

每条规则都必须有唯一 idmatches。编辑器接受单个对象或对象数组。

字段含义
id稳定且唯一的规则 ID。
description可选说明。
matches / excludeMatchesURL pattern 或 pattern 数组。
enabled是否启用用户规则。
excludeSelectors永不翻译的节点。
includeSelectors明确纳入处理的区域。
forceBlockSelectors强制按块级内容处理。
forceInlineSelectors强制保留在行内文字流中。
preserveTextSelectors保留匹配节点的原文。
minCharacters / minWords为该站点覆盖小段过滤阈值。
injectedCss注入到匹配网页的 CSS。

selector 集合也支持 .add.remove,例如 excludeSelectors.add

安全示例

从一个窄主机名、少量稳定 selector 和限定作用域的 CSS 开始:

[
  {
    "id": "example-docs",
    "description": "Translate article copy but leave navigation and code untouched.",
    "matches": ["docs.example.com/*"],
    "excludeSelectors": [
      "nav",
      "pre",
      "code",
      "[aria-label='Breadcrumb']"
    ],
    "includeSelectors": ["main article"],
    "forceBlockSelectors": ["article p", "article li"],
    "preserveTextSelectors": [".product-name", ".command-name"],
    "minCharacters": 2,
    "minWords": 1,
    "injectedCss": ".read-frog-translated-content-wrapper { max-width: 100%; }"
  }
]

保存后重新加载一个匹配页面,确认结果再扩大 pattern。优先使用语义属性或长期稳定的 class;构建生成的 class 往往会随网站发布变化。

调整前面的规则

用后置用户规则扩展或撤销内置 selector,而不必复制整条内置规则:

[
  {
    "id": "example-docs-adjustment",
    "matches": ["docs.example.com/*"],
    "excludeSelectors.add": [".sidebar-ad"],
    "excludeSelectors.remove": [".article-summary"],
    "forceInlineSelectors.add": [".term-with-tooltip"]
  }
]

如果整条内置规则都有问题,直接禁用它比重建全部字段更可靠。

校验、限制与排查

编辑器保存前会校验 JSON、schema、重复 ID、selector、pattern、规则数量和大小。目前最多 200 条用户规则,JSON 最多 65,536 字符,每个 CSS 值最多 8,192 字符。

注入 CSS 会在规则匹配的每个页面运行。保持 pattern 足够窄,并避免隐藏登录、安全或账户控件。

排查顺序:确认通用站点控制允许当前主机;确认规则启用且 pattern 覆盖当前路径;检查 excludeMatches;在浏览器检查器中测试 selector;临时删除一半字段定位问题;保存后重新加载页面。

On this page