ユーザースクリプトでリンク・引用テキスト生成、Webスクレイピングも…… Chrome拡張機能「S.G.T.C.」
以下の文章は9月中旬を過ぎても続く暑さ、深夜の眠気、しつこい蚊への対応に追われながら書いた文章です。頭のネジが抜けたような表現が多々ありますがご容赦ください。
戯言
2022年某月、リンク作成系の拡張機能をあれこれと試すが、
- テンプレートからの置換形式だとケース毎に用意する必要が
- ユーザースクリプト形式の場合、コード毎に全て記述するのでは無く、「共通する変数・関数」は別途コード化しライブラリとして呼び出したい
- コンテキストメニューからの呼び出し
- 誰得と言われようと特殊URLでも最低限(タイトルとURLの取得)の処理を行いたい
と、これら全てを満たす拡張機能は見つからず、メインブラウザを Vivaldi に移行後もリンク作成は IE系ブラウザ「Ancia」のユーザースクリプト(自作)で続行と二度手間に……
そんなストレス溜まる日々の息抜きゲームプレイ中、何の脈絡もなく「『Display Image List』のUserScript実行部分のソース流用で行ける?」との思い付きから始まった「S.G.T.C.」の開発。
事前の仕様調査が甘かったのもあるが「その機能が実装されないのには、それなりの理由がある」に何度も当たるとは思いもしなかった。まぁ、その後 Chrome に実装された API や先人のありがたいライブラリ、面倒な処理実装でなんとかした訳ですが。
「S.G.T.C.」について
閑話休題。
そんな第三者にはどうでもよい「開発者側の事情」はさておき、「S.G.T.C.」は
Send "Generated Text By UserScript" to Clipboard.
"S.G.T.C." is an extension for Chrome. It can send text generated with a "UserScript" to the clipboard.
Based on the information on the page,
- Create Links
- Get a list of Image URLs
- Get a list of Links
- Generate quoted text based on mouse-selected text
- Get any information on a page with Web scraping
etc.
On the user side, more functionality can be added by writing "UserScript".
概要は以上。
リンク作成系の定番拡張機能「Create Link」の様なシンプルさを捨て、対象ユーザーを JavaScript 中級者以上に絞る事で、閲覧中のページから
- URL
- ページタイトル
- Referrer
- HTMLテキスト(厳密には document.documentElement.outerHTML)
- 選択テキスト(HTML or Text)
- キーボードの入力状態
等の情報を元にユーザー側で機能追加可能という、「環境は用意したので、後は自分で頑張ってね!」と開発者のサポート負担を減らすステキ横着仕様。
それで具体的には何ができるの?
リンクテキストの生成だけに絞っても、ユーザースクリプト次第で
- 全角文字の半角への変換
- エスケープHTML
- 任意文字の置換
- URLを基準とした
- リンク用見出し文の冒頭・末尾へ文字追加
- 任意形式へ見出し文を正規化
と、手作業では面倒な作業を一括自動化で時間の節約。
ユーザースクリプトの参考例として、私が使用している設定を以下のURLからダウンロードできます。設定のインポート→セーブ後、オプション画面の UserScript から確認してください。