Skip to content

使用指南 ​

Profiles Enhanced Mode 增強模式 ​

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

image

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 配置變更:

javascript
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 這些增強配置,且已經啟用了,則會按順序進行鏈式處理。即前一個處理的結果作為下一個處理的輸入。