功能介绍
覆写配置(Override)

覆写文件(Override)

覆写文件(Override)允许用户修改配置文件的部分字段,常用于修改托管、订阅的配置的内容。覆写文件允许有多个,为了便于单独控制开关和分享,覆写文件通常以功能点划分。

语法参考

  • 覆写文件使用 YAML 格式,后缀名为 stoverride
  • 通常地,使用 namedesc 字段作为覆写文件的名称和描述,这两个字段仅用于展示;
  • 覆写文件对配置文件的修改,采用如下规则:
    • 对于简单类型的同名 key,例如 string、number、boolean,会直接覆盖;
    • 对于字典类型的同名 key,采用递归按 key 合并;
    • 对于数组类型的同名 key,采用覆写文件的数组会插入在配置文件数组的前面。
    • 对于字典类型和数组类型的 key 后面新增注释(line comment)#!replace,则会采用覆盖方式合并
⚠️

暂时不支持修改数组中的元素,后续会提供其他语法进行修改。

常见的覆写样例:

name: BiliBili 重定向 MCDN / PCDN 到正规 CDN
desc: 加载更流畅的 BiliBili 更值得干杯🍻!
 
http:
  force-http-engine:
    - 'upos-*.bilivideo.com:80'
    - '*:4480'
    - '*:9102'
  url-rewrite:
    - https?:\/\/(.*):4480\/upgcxcode http://upos-sz-mirrorcos.bilivideo.com/upgcxcode 302
    - https?:\/\/(.*):9102\/upgcxcode http://upos-sz-mirrorcos.bilivideo.com/upgcxcode 302
    - https?:\/\/upos-.*-.*oss\d*\.bilivideo\.com\/upgcxcode http://upos-sz-mirrorcos.bilivideo.com/upgcxcode 302
    - https?:\/\/upos-sz-mirror(?!cos\.).*bilivideo\.com\/upgcxcode http://upos-sz-mirrorcos.bilivideo.com/upgcxcode 302
    # alternative:
    # upos-sz-mirrorhw.bilivideo.com
    # upos-sz-mirrorcos.bilivideo.com
    # upos-sz-mirrorcoso1.bilivideo.com
    # upos-sz-mirrorcoso2.bilivideo.com
    # upos-sz-mirrorbs.bilivideo.com
    # upos-sz-mirrorali.bilivideo.com
script:
  shortcuts:
    bilibili-quic: network == 'udp' and geoip(dst_ip) == 'CN' and dst_port == 3478
rules:
  - SCRIPT,bilibili-quic,REJECT

采用了 #!replace 语法的覆写样例:

name: 仅使用 CloudFlare DNS
dns:
  # 将会完整覆盖原有 default-nameserver
  default-nameserver: #!replace
    - system
    - 223.5.5.5
    - 1.0.0.1
  # 将会完整覆盖原有 nameserver
  nameserver: #!replace
    - https://1.0.0.1/dns-query # CF IPv4
    - https://[2606:4700:4700::1111]/dns-query # CF IPv6

下面为一个简单的合并实例:

# config.yaml
dict:
  k1: true
  k2: 1
  k3:
    - 1
    - 2
    - 3
  k4:
    - 1
    - 2
    - 3
# override file
key: value
dict:
  k3:
    - 0
  k4: #!replace
    - 1
  k5: null
# after override
key: value
dict:
  k1: true
  k2: 1
  k3:
    - 0
    - 1
    - 2
    - 3
  k4:
    - 1
  k5: null

覆写集合(Override Hub)

Stash 内置了一个覆写文件的列表,用户可以在 Stash App 内浏览并安装覆写文件。如果您也撰写了覆写文件并想与广大用户分享您的配置,欢迎修改 source.json (opens in a new tab) 文件后提交 Pull Requests (opens in a new tab)

⚠️

该列表由社群进行维护,不代表 Stash Network Limited 立场。用户在使用任何覆写文件前需认真审查其内容,恶意的覆写文件可能损坏你的设备,导致财产损失。Stash Network Limited 不对其中任何的功能与安全性负责。

如果你认为有任何不应该出现在该列表的内容,请与 [email protected] 联系。