Parsers(解析器)在订阅下载或更新完成的瞬间对配置内容做自动处理。与全局生效的 Mixin 不同,Parsers 可以精确指定“只处理哪一个订阅”,适合多订阅用户做差异化定制。
编辑入口
Settings → Parsers → Edit,打开的是一份 YAML 文件,结构如下:
parsers:
# 用 url 精确匹配某个订阅
- url: https://example.com/api/sub?token=abc
yaml:
prepend-rules:
- DOMAIN-SUFFIX,company.com,DIRECT
- DOMAIN-KEYWORD,tracker,REJECT
append-proxies:
- name: "自建备用"
type: ss
server: my.server.com
port: 8388
cipher: aes-256-gcm
password: mypass
yaml 段支持的快捷指令
| 指令 | 作用 |
|---|---|
prepend-rules / append-rules | 在规则列表最前/最后插入规则(前置优先级更高)。 |
prepend-proxies / append-proxies | 插入节点。 |
prepend-proxy-groups / append-proxy-groups | 插入代理组。 |
mix-proxy-providers / mix-rule-providers | 合并 provider 定义。 |
mix-object | 浅合并任意顶级字段(如 dns、tun)。 |
code 段:完全编程控制
parsers:
- reg: ^https://example\.com/
code: |
module.exports.parse = (raw, { yaml }) => {
const config = yaml.parse(raw);
// 删除名称包含“过期”“剩余”的信息节点
config.proxies = config.proxies.filter(
p => !/过期|剩余|官网/.test(p.name)
);
return yaml.stringify(config);
};
reg 用正则匹配订阅地址,适合一条 Parser 匹配同服务商的多条订阅。
提示:Parser 修改的是“下载后的副本”,不影响服务器上的原始订阅;写错时删除对应段落重新更新订阅即可还原。改完 Parsers 需要手动更新一次订阅才会触发。