ReadAware

發佈外掛

外掛市集的運作方式與 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/ 裡的官方外掛就是這樣寫成的——把它們當作活的範例。

提交

  1. Fork 這個儲存庫。
  2. template/ 複製為 plugins/<your-plugin-id>/,至少包含 manifest.jsonmain.js。資料夾名稱必須與 manifest 的 id 一致。
  3. registry.json 中新增對應條目,保持陣列按 id 排序。
  4. 在本機執行與 CI 相同的檢查:
    node scripts/validate.mjs
    npx tsc --noEmit
  5. 發起 pull request,說明外掛做什麼,以及它宣告的每一項權限為什麼是必要的。

CI 會強制檢查 registry 與 manifest 的一致性、id 的格式、權限白名單和檔案存在性,並對每個 TypeScript 外掛做型別檢查。

更新

流程相同:在同一個 pull request 裡同時提升 manifest.json registry.json 中的 version。注意應用程式透過 CDN 讀取 registry,合併後的更新可能要過一小段時間才會出現在外掛市集分頁裡。

審核要求

  • 只宣告最小權限。宣告的權限超出程式碼實際使用時,pull request 會被退回——參見權限表
  • main.js 必須可讀,或附帶打包它的原始碼。
  • 不接受混淆程式碼,不接受資料分析或追蹤,不接受遠端程式碼載入。

外掛執行在應用程式內部,擁有與應用程式本身相同的存取能力。安裝是使用者對每個外掛逐一做出的信任決定,而這道審核是社群的第一道防線——請寫出那種即使來自陌生人、你自己也放心安裝的外掛。