發佈外掛
外掛市集的運作方式與 Raycast 的擴充功能儲存庫類似:你的外掛存放在公開的 readaware-plugins 儲存庫裡,透過 pull request 進入。合併之後,它就會出現在應用程式的「設定 → 外掛 → 外掛市集」中,一鍵即可安裝。
用 TypeScript 編寫
建議使用 TypeScript。儲存庫自帶一個 template/,已經接好型別化的 API(types/plugin-api.d.ts)——複製它,編寫 src/main.ts,再組建為單個自包含模組:
bun build src/main.ts --outfile main.js --format esm最終上架的始終是組建出的 main.js;請保留 src/ 的提交,讓審閱者能讀到真實程式碼。純 JavaScript 同樣被接受。plugins/ 裡的官方外掛就是這樣寫成的——把它們當作活的範例。
提交
- Fork 這個儲存庫。
- 把
template/複製為plugins/<your-plugin-id>/,至少包含manifest.json和main.js。資料夾名稱必須與 manifest 的id一致。 - 在
registry.json中新增對應條目,保持陣列按 id 排序。 - 在本機執行與 CI 相同的檢查:
node scripts/validate.mjs npx tsc --noEmit - 發起 pull request,說明外掛做什麼,以及它宣告的每一項權限為什麼是必要的。
CI 會強制檢查 registry 與 manifest 的一致性、id 的格式、權限白名單和檔案存在性,並對每個 TypeScript 外掛做型別檢查。
更新
流程相同:在同一個 pull request 裡同時提升 manifest.json 和 registry.json 中的 version。注意應用程式透過 CDN 讀取 registry,合併後的更新可能要過一小段時間才會出現在外掛市集分頁裡。
審核要求
- 只宣告最小權限。宣告的權限超出程式碼實際使用時,pull request 會被退回——參見權限表。
main.js必須可讀,或附帶打包它的原始碼。- 不接受混淆程式碼,不接受資料分析或追蹤,不接受遠端程式碼載入。
外掛執行在應用程式內部,擁有與應用程式本身相同的存取能力。安裝是使用者對每個外掛逐一做出的信任決定,而這道審核是社群的第一道防線——請寫出那種即使來自陌生人、你自己也放心安裝的外掛。