Scrapboxで会議の議事録を取っていると、誰の発言かを記録するために他人のアイコンを挿入したい、という場面が出てくる。Scrapboxでは ctrl+i
と入力すれば簡単に自分のアイコンは挿入できるけど、他人のアイコンを簡単に挿入する方法は意外にない。一応以下のような手順で任意のページのアイコンを挿入できるというテクニックもあるけど、キーボード上を結構ダイナミックに指を動かす必要があってお手軽ではない & そもそもアイコンが無いページもポップアップに出てくるのでノイズが多い。
[
キーを押すscrap
と入力scrap
にマッチするページ一覧がポップアップで出てくるので、Tabキーを数回押してscrapbox
にカーソルを合わせるctrl+i
で[scrapbox.icon]
を挿入
そこでもっとお手軽に他人のアイコンを挿入できるUserScriptを作った。
ctrl+l
と押すとsuggest-boxが表示されて、ページ内に埋め込まれているアイコンがポップアップで表示される。boxにキーワードを入力すると、そのキーワードにマッチするアイコンが絞り込まれる。Scrapboxネイティブのポップアップと同じように、Tabキーでカーソルを移動し、Enterで確定できる。
パフォーマンス上の制約から、初めにsuggest-boxを押したタイミングでページ内を解析し、ヒットしたアイコン一覧がページごとにキャッシュするようになっている。そのため、一度suggest-boxを表示した後そのページに無かった種類のアイコンを挿入すると、そのアイコンはsuggest-boxには出てこない。もし後から追加したアイコンもsuggest-boxに出したければブラウザリロードするか、suggest-boxの表示中に ctrl+r
を押すと良い。キャッシュが破棄・更新され、アイコンが出るようになる。
導入方法
UserScriptを有効化した上で自分のページに以下のスクリプトを追加する.
// ref: https://scrapbox.io/mizdra/icon-suggestion import { registerIconSuggestion } from '/api/code/mizdra/icon-suggestion/script.js'; registerIconSuggestion();
おまけ
icon-suggestionを作る過程でいくつか有用なコード片が生まれたので、ライブラリとして切り出して公開しておきました。良ければお使い下さい。