使用指南
Profiles Enhanced Mode 增強模式
目前支援 4 種型別的配置檔案,分別是 Remote、Local、Script、Merge。其中,Remote 和 Local 型別為 主配置檔案,Script 和 Merge 型別為 增強配置檔案,用於修改主配置檔案的。點 新建 可以建立這些配置檔案(如下圖),對於 Remote 型別的,也可以直接輸入 URL 後匯入即可。 (備註:該模式主要參考了 CFW 的實現)

Remote 遠端配置
目前僅支援 clash 格式的配置連結,即響應體資料是符合 clash 配置格式的(utf8 編碼)。如果響應頭中存在 Subscription-Userinfo 欄位,則其對應的流量資訊會展示出來。遠端配置可以點選右上角的更新按鍵自動更新。
Local 本地配置
新建本地配置之後,右键 \- 打开文件 即可開啟對應的本地配置檔案(預設會用 VScode 開啟,如果找不到執行程式則用預設編輯器開啟)。在編寫完本地配置之後右键 \- 使用 即可重新整理該配置。
Merge 合併處理
該配置型別用於對主配置進行欄位增加的操作,檔案格式是 ·yaml·。該 idea 源於 CFW 配置預處理中的簡便方法。目前僅支援 6 種操作型別。啟用方法:右键 \- 启用,在修改了檔案之後,點選重新整理觸發配置變更。
- 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 後 - 其他 clash 的欄位:5 個預設使用的欄位(
rules,proxies,proxy-groups,proxy-providers,rule-providers)以及其他 clash-meta 支援的欄位,直接設定這些欄位將直接覆蓋 profile 對應欄位的內容。
Script 腳本處理
該配置型別提供編寫 JS 腳本修改配置的能力,JS 執行時為 quickjs。該 idea 源於 CFW 配置預處理中的 Mixin/parser。啟用方法:右键 \- 启用,在修改了檔案之後,點選重新整理重置配置檔案。
腳本中需要宣告一個 main 函式,函式簽名為 main(params: object): object;。函式入參為序列化為 js object 的 clash 配置,務必返回處理後的 js object。
如果腳本中存在異常未處理,處理程式將跳過該腳本所做的操作,並且對應的 profile 項將變紅和報錯提示。
腳本執行環境採用 quickjs 實現,不能執行如檔案系統訪問等操作。
例如,處理 ws 配置變更:
function main(config) {
if (!config.proxies) return config;
config.proxies.forEach((proxy) => {
if (proxy.network === "ws" && (proxy["ws-path"] || proxy["ws-headers"])) {
const opts = proxy["ws-opts"] || {};
opts.path = proxy["ws-path"];
opts.headers = proxy["ws-headers"];
delete proxy["ws-path"];
delete proxy["ws-headers"];
}
});
return config;
}Profiles 的處理流程
首先選擇一個主配置檔案,如果沒有就是預設的空配置。其次如果存在 Script 和 Merge 這些增強配置,且已經啟用了,則會按順序進行鏈式處理。即前一個處理的結果作為下一個處理的輸入。
