「Subject Semester Sorter」は、金沢工業大学の学生ポータル(KITナビ)上で、選択した年度・学期の科目情報を抽出して一覧表示するシンプルな Chrome 拡張機能です。拡張は対象ページにコンテンツスクリプトを注入し、ポップアップから操作します。
※この拡張機能は金沢工業大学生しか使う意味がありません。
- ページ内の科目情報を解析して、選択した年度/学期だけを抽出して表示
- ポップアップ UI から操作可能(
popup.html/popup.js) - 拡張はページにスクリプトを注入して動作(
content.js) - キーボード操作対応: リスト内の科目は Tab でフォーカスでき、Enter で選択可能(マウス不要で操作できます)
まずリポジトリをクローンまたはダウンロードします。
PowerShell 例:
# PowerShell 例
git clone https://github.com/Soki0909/subject_semester_sorter
cd subject_semester_sorter- ソースをローカルに配置(既にワークスペース内にある想定)。
- Chrome(または Chromium ベースのブラウザ)を開き、拡張機能ページに移動:
- アドレスバーに
chrome://extensions/を入力して開く。
- アドレスバーに
- 右上の「デベロッパーモード」を有効にする。
- 「パッケージ化されていない拡張機能を読み込む」ボタンを押し、
プロジェクトのルートフォルダ(
subject_semester_sorterが置かれているフォルダ)を選択する。 - 正常に読み込まれると拡張のアイコンがツールバーに表示されます。
注意:
manifest.jsonのhost_permissionsに指定したホスト(学生ポータル)でのみコンテンツスクリプトが注入されます。必要に応じてhost_permissionsを変更してください。
- 学生ポータルの対象ページ(例:
KITP00500)を開きます。 - 拡張のアイコンをクリックしてポップアップを開きます。
- ポップアップの UI から年度・学期を選択(UI の具体的なコントロールは
popup.htmlを参照)。 - 抽出ボタンを押すと、ページ内の科目データから該当年度・学期の科目のみを抽出し、ポップアップ内または新しい表示領域に一覧表示します。
補足: 表示された科目リストはキーボードで操作できます。Tab キーで項目へフォーカスし、Enter キーで該当科目を選択(クリック同等)できます。これによりマウス操作が不要になります。
(補足)content.js はページ DOM から必要な情報を取得してメッセージをポップアップに送る役割を果たします。popup.js はポップアップの UI を制御し、ユーザーの選択に応じて content.js にメッセージを送信します。
manifest.json— 拡張の設定(権限、content_scripts、action など)content.js— 対象ページに注入されるスクリプト(ページの DOM から科目情報を抽出)popup.html— 拡張のポップアップの HTMLpopup.js— ポップアップの動作(ユーザー入力処理、コンテンツスクリプトとの通信)
※ 実装やファイル名は将来的に拡張される可能性があります。
- ホスト設定:
manifest.json内のhost_permissionsを編集することで、拡張が動作する対象ドメインを変更できます。 - スクリプトの権限: 現在は
scripting,storage,tabsを要求しています。必要に応じて見直してください。 - デバッグ:
console.logをcontent.js/popup.jsに追加して DevTools で出力を確認できます。 - デバッグ:
console.logをcontent.js/popup.jsに追加して DevTools で出力を確認できます。 - アクセシビリティ: リスト項目に
tabindexが設定されており、キーボード操作(Tab / Enter)での利用を想定しています。
- 拡張がページで動かない場合:
- 拡張が有効であること、対象ページの URL が
manifest.jsonのmatches/host_permissionsに合致していることを確認してください。 - デベロッパーツールのコンソールでエラーを確認してください。
- 拡張が有効であること、対象ページの URL が
- この拡張はユーザーのポータルページにアクセスして DOM を解析します。取得したデータはローカルで処理され、外部に送信する実装は含まれていません。
