generated at
scrapbox-userscript-std
UserScriptを書くにあたって便利そうな函数を集めたrepo

巷で見かけるUserScriptのパターンを函数化しただけ(一部例外あり)takker

exports
./
すべての機能がre-exportされている
./title
titleLcの処理やencodingなど
./text
その他テキスト変換処理
./rest
まだ全部は対応し切れていない
(since v0.29.5) ./websocket
websocketを使う函数
開いていないページを自由に書き換えられる
ページの削除やピン留めもできる
Scrapbox Websocket APIとでも呼ぼうかなtakker
./browser
web browser上でないと使えないもの
./browser/dom/
websocketを使わない函数
元々↓とまとめてre exportしていたが、bundleでなぜかこちらでは使用していないscrapbox-parserのコードが混じってしまう現象が起きたので、websocketありとなしとでdirectoryを分けた
(deprecated) ./browser/websocket/
./websocket/ と同じ
v0.24.4まではbrowserでしか動かなかったが、v0.24.5からserver-side runtimeでも動かせるようにしたので、root直下にモジュールを動かした
後方互換性のため、今後もこのパスで読み込めるようにはするつもり
(以下、v0.24.4までの情報)
websocketってブラウザ上じゃないとダメなんですか?bsahd
自分が知っている限りだとそうですtakker
一回Pythonで外部から接続を試みたことあるけれど、おそらく認証周りでどうしてもうまくいかなかったMijinko_SD
ブラウザからCookieを抜き出すのだとダメなのかなbsahd
server-sideからwebsocketを通じてscrapboxへ書き込むことに成功したので、 ./browser/ 配下から移動しましたtakker
ブラウザ用にbuildする方法がよくわからないbsahd
web browserでbuildする場合はscrapbox-bundlerを使ってくださいtakker
CLIの場合はesbuildなどでbuildできますが……Web系のmodule resolutionに対応するためにesbuild_deno_loaderなどを噛ませたコードを自作する必要があります。まあまあめんどい
まだbeta版ですが、CLIでesbuild_deno_loaderを使えるようにしたesbuild-deno-cliというのを作ってあります
$ deno run -A jsr:@takker/esbuild-deno-cli@0.1.0-rc.5 https://scrapbox.io/api/code/takker/複数のページを削除するUserScript/mod.ts --bundle --minify --format=esm
2024-09-19現在はこれを使うのが楽です
--reload 未対応なのがきつい。いちいち手動でcacheを消す必要がある
将来的にはもう少しマシなCLIを作る予定です
(「ブラウザ用(のコード)」は「web browserにて<script>importで読み込める形式のコード」と解釈しました)
現時点だとこんな感じです。答えになっていないようでしたらまた聞いて下さい


言語
Denoにしか対応していない
Nodeも需要があれば作ろうと思うtakker
たしかdntを使えば変換できるとか
JSRにpublishしたので不要
nodeで動くかテストしてないけど、まあ動くでしょ
2025-01-26 22:15:07 そんなことはなかったhttps://github.com/takker99/scrapbox-userscript-std/issues/218

ファイル構成とかを自分で調べた範囲でまとめてみたMijinko_SD
でもまだよくわかっていないファイルもある
わかっていないものの大半が内部処理用なので、理解する必要性自体はそんなに無いけれど
今は使っていない
まともに動いてなかった気がするtakker
上記2つは反映しましたMijinko_SD
差分データをwebsocketに渡す形式に変換する
更新前のページデータから更新後のページデータに書き換えるのに必要なwebsocket送信用データを作っている
差分書き込みのコアプログラム
えっ抜けてた?まじですかtakker
ensure.ts isHeightViewable.ts が入っていないですねMijinko_SD
おそらく内部処理用で、わざと抜いているのだと思いますが
わからなかったところが埋まったので助かりました!!!!!Mijinko_SD.icon*3

UserScript