merge和script js脚本的合并处理,就是原clash for windows的配置文件预处理。可以让机场订阅更新时,不覆盖指定规则,比如机场的配置让aaa.com 走了代理,你需要不走代理。然后你更改了配置,但是更新订阅又变成走代理了,你希望更新订阅后你增加的规则不变
1)左边栏【订阅】--【新建】
2)类型选择[Merge]-名称随便写,描述可为空
3)右键merge那文件。选择编辑文件
4)编辑你需要增加的规则
比如下面的:
在规则最前面增加:
aaaaa.com 域名走直连
jichanggo.com走♻️ 手动切换,这里的"♻️ 手动切换" 需要看你的机场的是什么,有些默认是机场名,有些是”手动选择“,有些是”手动切换“
在规则最后面增加:bbbb.com域名不走代理
prepend-rules:
- DOMAIN,aaaaa.com,DIRECT
- DOMAIN,jichanggo.com,♻️ 手动切换
prepend-proxies:
prepend-proxy-groups:
append-rules:
- DOMAIN,bbbb.com,DIRECT
append-proxies:
append-proxy-groups:
官方说明:
prepend-rules:类型和 clash rules 配置一致,内容合并到 rules 前
append-rules:类型和 clash rules 配置一致,内容合并到 rules 后
prepend-proxies:类型和 clash proxies 配置一致,内容合并到 proxies 前
append-proxies:类型和 clash proxies 配置一致,内容合并到 proxies 后
prepend-proxy-groups:类型和 clash proxy-groups 配置一致,内容合并到 proxy-groups 前
append-proxy-groups:类型和 clash proxy-groups 配置一致,内容合并到 proxy-groups 后
5)保存后右键启用Merge规则
6)给需要增加规则的机场,点击更新订阅--查看是否增加成功
一直往下翻,直到当前配置规则部分。成功过就有了。
如果是会写js脚本,还可以使用Script做加工。新建配置的时候选择scrip不是选择merge即可。其它操作一样。
比如:
删除 DOMAIN-SUFFIX,challenges.cloudflare.com,? OpenAI 这条规则
在最后加上规则:DOMAIN,jichanggo.com,♻️ 手动切换
// Define the main
function
function main(params) {
if (!params) return params;
const ruleToDelete = "challenges.cloudflare.com";
//筛选不包括challenges.cloudflare.com字符串的规则
params.rules = params.rules.filter(rule => !rule.includes(ruleToDelete));
const ruleNew ="DOMAIN,jichanggo.com,♻️ 手动切换";
params.rules.push(ruleNew);
return params;
}
params是clash的object配置,params.rules就是rules部分、
config.proxies就是proxies部分