connpass のイベント参加者ページに、その場でシャッフル機能を追加する Chrome / Firefox 向け拡張機能(Manifest V3)です。
connpass のイベント参加者ページ(https://*.connpass.com/event/*/participation*)を開いた状態でツールバーの拡張機能アイコンをクリックすると、ポップアップが開きます。募集枠の選択・重複排除・追加参加者の入力・シャッフルをポップアップ上だけで完結でき、結果はコピーするか、HTMLファイルとしてダウンロードできます。ポップアップは開くたびにそのページから参加者一覧を取得し直すため、ページ側で参加者が増減しても再読み込みだけで最新の状態を反映できます。
Note
npm パッケージ版(pkg/)とはロジックを共有していません。拡張機能単体でネットワークアクセスなしに完結させるため、独立して実装しています。
リポジトリルートで依存関係をインストールし、このパッケージをビルドします。
pnpm install
pnpm --filter connpass-pickup-ext run builddist/chrome/ と dist/firefox/ に、それぞれのブラウザ向けの拡張機能一式(manifest.json / content.js / popup.html / popup.js / styles.css / icons/)が生成されます。
chrome://extensionsを開く- 右上の「デベロッパーモード」をオンにする
- 「パッケージ化されていない拡張機能を読み込む」から
ext/dist/chromeを選択する
about:debugging#/runtime/this-firefoxを開く- 「一時的なアドオンを読み込む」から
ext/dist/firefox配下のmanifest.jsonを選択する
各ストアに提出する成果物を作りたい場合は、次のコマンドを実行します。
pnpm --filter connpass-pickup-ext run packagedist/chrome.zip(通常のzip)と、web-ext でビルドした dist/firefox.xpi(Firefox向け、manifestの妥当性チェック込み)が生成されます。--target=chrome/--target=firefox を付けると、どちらか一方だけをビルドできます。
pnpm --filter connpass-pickup-ext exec node scripts/build.mjs --zip --target=firefox各ストアへの実際の提出は手動で行う必要があります。
このパッケージはモノレポの一部です。開発環境のセットアップやテストの実行方法は、リポジトリルートの CONTRIBUTING.md を参照してください。