Scrapboxで別ページに指定文字列を書き込む方法
ScrapboxのWebSocketを使うとできる
libraryはscrapbox-headless-scriptを参照
以下ログ
/icons/hr.icon
window.open()のみを使ってできるかもしれない
可能性の段階だが、方法を見つけた
整理
標準で提供されているAPI
:projectname/:pagetitle?body=:text
新しいページに$textを書き込む
すでにページが存在していたら追記する
これだと、文章の途中に書き込むなどの操作ができない
考えられる方法
没:Page Dataのimport機能を無理やりhookする
できなくはないが、多分BANされても文句言えない
高頻度に叩くと一定時間全てのAPIを使えなくなるみたい
表にあまり出したくない方法
同じ方法をちょっと工夫すると、確認ダイアログなしにscrapbox projectを削除することが可能になってしまう
新しいページで任意のscriptを実行する
今日の朝辺りに思いついた方法
scrapbox-url-parametersを使って、window.open()で開いたページにscriptのURLとscriptに渡すparametersを渡す
?body=をつけると他のURL parameterが消えてしまう
逆にbody以外のURL parameterを使えば、消えずに渡せる
あとはscrapbox-cursor-emulationやscrapbox-insert-textを駆使して書き込めばいい
処理が終了したらwijndow.close()を使ってタブを閉じる
懸念
タブにfocusがないとscriptを実行できなかったりする?
元ネタ
/sta/Scrapboxで別ページに指定文字列を書き込む方法
#2022-01-16 18:04:21
#2021-01-17 16:46:13