TeX構文を選択$で可能にするUserscript
#userscript
code:script.js
// Scrapboxの入力エリアを取得
const textInput = document.getElementById('text-input');
if (textInput) {
textInput.addEventListener('keydown', (e) => {
// $ キーが押されたとき
if (e.key === '$') {
const start = textInput.selectionStart;
const end = textInput.selectionEnd;
// テキストが選択されている場合のみ実行
if (start !== end) {
e.preventDefault();
const text = textInput.value;
const selectedText = text.substring(start, end);
// $ で囲む
const replacement = [$ ${selectedText}];
// Scrapboxの内部状態を壊さないよう、コマンドで値を書き換える
// (単に textInput.value を書き換えると、Scrapbox側の同期が外れることがあるため)
document.execCommand('insertText', false, replacement);
// 変換後の選択範囲を調整(任意)
textInput.setSelectionRange(start, start + replacement.length);
}
}
});
}