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 需要手动更新一次订阅才会触发。