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