generated at
input mode UserScript
Scrapboxで記事を徘徊していると勢い余ってうっかり記事を編集してしまったり,最悪消してしまうことがよくあります.
というわけでvimのようにmodeが分かれていればよいのではないかと思い,UserScriptを使ってそのようにします (see also: /help-jp/UserScript).以下のようにmodeを分けてみましょう.

readonly mode
input mode

さてこのUserScriptを有効にすると
このように背景がグレーアウトし,一切の入力操作を受け付けなくなります (readonly mode).
この際に右のnavbarのペンアイコンをクリックするか, i キーを押下すると
グレーアウトが解除され入力操作を受け付けるようになります (input mode).
再度readonly modeに戻りたい場合は,同様に右のnavbarのペンアイコンをクリックするか, Esc キーを押下すると良いでしょう.

というわけでそのスクリプトが以下です:
script.js
let isInputMode = true; const enterInputMode = (e) => { if (!isInputMode) { if (e) { e.preventDefault(); } $("#text-input").prop('disabled', false); $("#text-input").focus(); $('.page').css('opacity', '1.0'); isInputMode = !isInputMode; } } const exitInputMode = (e) => { if (isInputMode) { $("#text-input").prop('disabled', true); $('.page').css('opacity', '0.6'); isInputMode = !isInputMode; } } const modeSelectors = { true: exitInputMode, false: enterInputMode, } scrapbox.PageMenu.addMenu({ title: 'Input mode', image: 'https://i.gyazo.com/5f2de2133ef5d9a35ac16b3b8aa1c6aa.png', onClick: () => { modeSelectors[isInputMode](); }, }); $(window).keydown((e) => { if (e.keyCode === 73) { // key code of "i" enterInputMode(e); } if (e.keyCode === 27) { // key code of Esc exitInputMode(e); } }); exitInputMode();

実際に利用する際は
example-script.js
import '/api/code/moznion/input_mode_UserScript/script.js'
などとしてやると良いのではないでしょうか.

これで安心して閲覧できますね.良かった良かった.