quote-block-all
code:script.js
scrapbox.PopupMenu.addButton({
title: (text) => text.includes("\n") ? ">" : "",
onClick: (text) => text.split("\n")
.map((line) => line.replace(/^(\s*)/, "$1>"))
.join("\n"),
});
thk takker.icon!
コードリード
textには\n区切りの複数行文字列が入る(複数行選択時)
単一行選択時は入らないので、includesで判定して非表示にしてる
非表示とは「何も表示しない」を表示すること
1: textを\nでスプリットして配列にする
2: 1に対してmap
mapとは、各要素に対して何かを適用した版を新たに返すこと
mapの中身は、>を先頭につける正規表現を何か書いている
行頭の空白を\1でキャプチャして、\1の後に>をつけているのかsta.icon
で、>つけた配列はそのままだと文字列じゃないので、joinで復元する
titleには表示テキストを書く
空文字列を指定すれば非表示にできる
ので、?の記法(三項演算子)で場合分けすれば「こういうときだけ表示しない」が可
onClickにはクリックされたとき(項目選択されたとき)の処理を書く
テストする
あああ
いいい
ううう
y1.iconえええ
sta.iconおおおーーーー
↓ quote
あああ
いいい
ううう
y1.iconえええ
sta.iconおおおーーーー
おおsta.icon*2
なるほど、選択範囲を全部>つける感じなのかsta.icon