功能请求与什么问题有关?
目前许多机场提供的原生订阅,其自带的 rules 规则非常臃肿、过时,甚至存在格式不规范(如缩进混乱、包含非法字符)的问题。
当用户希望在 ShellCrash 中通过“配置模板”或“自定义规则/Rule-set”来实现精细化分流时,原订阅自带的 rules 往往会与用户的自定义规则产生冲突。
此外,由于部分机场原生 YAML 格式不标准(例如混合了 2 空格和 4 空格缩进),直接套用在线订阅转换(如 Subconverter)经常会触发 yaml-cpp: error 等解析崩溃,导致无法通过云端彻底洗干净订阅。
希望的解决方案
希望在 ShellCrash 的面板菜单中(例如在【订阅功能】或【导入选项】内),增加一个开关选项:
“是否清空/忽略订阅转换后的 rules 规则”
具体逻辑:
- **当该选项开启(Yes)时:ShellCrash 在本地下载并解析配置源文件时,直接通过脚本(如通过
sed、awk 或内置的 yaml 工具)将原转换订阅后的 rules: 节点及其下方所有内容完全剔除或清空。
- **随后,仅保留原订阅的
proxies(节点信息),并完全依赖用户在 ShellCrash 中配置的“自定义规则”、“Rule-set(规则集)”以及自定义的分流模板来重新生成最终的 rules 配置。
考虑过的替代方案
- 使用在线订阅转换: 极易因为多个机场源 YAML 缩进不统一、或WORKER-VLESS订阅缩进不统一而导致转换服务器直接报 500 错误(
end of map not found 等),且存在一定的隐私泄露风险。
- 下载到本地手动修改: 每次机场更新节点或优选 IP 变动时,都需要重新手动复制、对齐缩进、删除规则,无法做到全自动自动化刷新。
附加信息
这个功能对于喜欢折腾高性能“纯 Rule-set 分流”以及自建混合节点(机场+自建 Worker 优选)的用户非常实用。
通过在 ShellCrash 本地预处理时直接“剥离”原生 rules,可以极大地提高配置生成的容错率,彻底避免因为机场底层规则写错而导致路由器 Clash/Mihomo 内核无法启动的问题。
感谢作者的维护!
功能请求与什么问题有关?
目前许多机场提供的原生订阅,其自带的
rules规则非常臃肿、过时,甚至存在格式不规范(如缩进混乱、包含非法字符)的问题。当用户希望在 ShellCrash 中通过“配置模板”或“自定义规则/Rule-set”来实现精细化分流时,原订阅自带的
rules往往会与用户的自定义规则产生冲突。此外,由于部分机场原生 YAML 格式不标准(例如混合了 2 空格和 4 空格缩进),直接套用在线订阅转换(如 Subconverter)经常会触发
yaml-cpp: error等解析崩溃,导致无法通过云端彻底洗干净订阅。希望的解决方案
希望在 ShellCrash 的面板菜单中(例如在【订阅功能】或【导入选项】内),增加一个开关选项:
“是否清空/忽略订阅转换后的 rules 规则”
具体逻辑:
sed、awk或内置的 yaml 工具)将原转换订阅后的rules:节点及其下方所有内容完全剔除或清空。proxies(节点信息),并完全依赖用户在 ShellCrash 中配置的“自定义规则”、“Rule-set(规则集)”以及自定义的分流模板来重新生成最终的rules配置。考虑过的替代方案
end of map not found等),且存在一定的隐私泄露风险。附加信息
这个功能对于喜欢折腾高性能“纯 Rule-set 分流”以及自建混合节点(机场+自建 Worker 优选)的用户非常实用。
通过在 ShellCrash 本地预处理时直接“剥离”原生 rules,可以极大地提高配置生成的容错率,彻底避免因为机场底层规则写错而导致路由器 Clash/Mihomo 内核无法启动的问题。
感谢作者的维护!