scrapbox-userscript-stdのファイル構成
Mijinko_SD.iconが個人的に調べた範囲のものであって間違っているものもあるかもしれない
ここの情報を当てにしすぎず、製作者の/takker/takker.iconさんが公開している情報をちゃんと確認するようにしてほしい
ファイルが追加されたバージョンを書いていることもあるが、Mijinko_SD.iconが知っている範囲でしか書いていない
.test.tsはテスト時にのみ使用するファイル(deno testを参照)なので、ここでは取り上げない 更新を追いきれなかったが為に不足している情報もあるかもしれない
わざわざこれを読まなくても、mod.tsが提供している関数等の情報であればドキュメントを閲覧することで確認できる このページはこんな人のためにある
mod.tsが提供していない関数も確認しておきたい人
デバッグのためにライブラリの内部まで確認する必要が出てきた人
ファイル
utilitesとかが雑においてある
mod.ts
スクリプトのbundleに使う
このファイルをとりあえずインポートしておけば、殆どのライブラリ関数が使えるようになる
sleep.ts
指定したミリ秒だけ処理を遅らせることができる
その他
未確認
web browser上でないと使えないもの
websocketを使わない函数
元々↓(./browser/websocket/)とまとめてre exportしていたが、bundleでなぜかこちらでは使用していないscrapbox-parserのコードが混じってしまう現象が起きたので、websocketありとなしとでdirectoryを分けた
cache.ts
scrapbox.ioが管理しているcache storageから、最新のresponseを取得する
caret.ts
click.ts
座標指定・押すボタンの指定・Shift, Ctrl, Altの同時押しに対応している
cursor.d.ts
カーソルの型定義
cursor.ts
カーソルを取得する
内部的にはstores.tsを呼び出して、その返値を抽出しているだけ
dom.ts
ScrapboxのDOMを取得するための関数が入っている edit.ts
1. 編集時に使えるショートカットキーによるアクションを実行する
2. カーソル(キャレット)を移動したりスクロールしたりする ensure.ts
値の型を判定する
引数は
value:判定したい値
name:値の名称
valueの型が正しくなかった場合はTypeError例外が発生する
mod.tsには含まれていない
extractCodeFiles.test.ts(v0.19.0 ~)
extractCodeFiles.ts(v0.19.0 ~)
scrapbox.Page.linesで取得できるような行データを渡して、中に含まれるコードブロックを抽出する isHeightViewable.ts
今は使っていない
まともに動いてなかった気がする/villagepump/takker.icon
mod.tsには含まれていない
mod.ts
./browser/直下にある*.tsファイルをほぼ全てbundleに含めるためのファイル
motion.ts
モバイル用edit.tsのような感じ?
node.ts
行の取得や解析に関する関数が入っている
open.ts
別のページを開く
開くと同時にページ末尾にテキストを追記することもできる
position.ts
カーソル座標の型定義
press.ts
キーを押したときの処理をスクリプト内部から発火させる
pushPageTransition.ts(v0.18.0 ~)
ページ遷移と同時にスクロールする仕込みをしたいのであれば、open()のoptionsのcontextに遷移先の情報を渡す方法がある selection.d.ts
選択範囲の型定義
selection.ts
選択範囲を取得する
内部的にはstores.tsを呼び出して、その返値を抽出しているだけ
statusBar.ts
stores.ts
カーソルと選択範囲を取得するためのものらしい
websocketを使う函数
開いていないページを自由に書き換えられる
ページの削除やピン留めもできる
_fetch.ts
Scrapboxの編集のコミット関連で何かしらの処理をしているっぽい
applyCommit.ts
メタデータを含んだ行にcommitsを適用する
deletePage.ts
指定したページを削除する
diffToChanges.test.ts
diffToChanges.ts
差分データをwebsocketに渡す形式に変換する
id.ts
各種IDを取得できる
プロジェクトID
ユーザーID
行ID
IDをUnixTimeに変換することもできるっぽい?
listen.ts
Streamを購読する
makeChanges.ts
更新前のページデータから更新後のページデータに書き換えるのに必要なwebsocket送信用データを作っている
差分書き込みのコアプログラム
mod.ts
websocket/直下にあるファイルをbundleに含めるためのファイル
以下のファイルが対象
deletePage.ts
listen.ts
patch.ts
pin.ts
socket.ts
patch.ts
ページ全体を書き換える
serverには書き換え前後の差分だけを送信する
pin.ts
ページをピン留めしたり外したりする
既にピン留めされているかの確認はここではできない
pull.ts
ページ情報を取得し、オブジェクトとして返す
socket.ts
WebSocketの接続を開始したり終了したりできる
ここで作成した接続はpatch()などに渡すことで使用することができる
mod.ts
./browser/以下のスクリプトのbundleに使う
onp.ts
scrapbox-rest.ts
scrapbox.ts
Scrapboxの型定義ファイルをインポートしている
socket.ts
ScrapboxのWebSocketを操作するためのライブラリと型定義ファイルをインポートしている testing.ts
Denoのtestingをインポートしている
関連
まだ全部は対応し切れていない
auth.ts
これは、一部の危ない操作を行う時に要求される
error.ts
一部の関数で使われているエラー(例外)クラスが格納されている
getGyazoToken.ts
Gyazo OAuth uploadで使うaccess tokenを取得する
getSnapshots.ts
ページのスナップショット(その時点でのページ単体のバックアップ)を取得することができる
getTweetInfo.ts
Twitterのツイートの情報を取得する
getWebPageTitle.ts
指定したURLのページタイトルをScrapboxのサーバー経由で取得する
link.ts
指定したプロジェクトに存在するリンク名(ページタイトル含む)をまとめて取得できる
getLinks()ではおそらく1000件ずつ取得できる
引数のoptionを設定することで次の1000件を取得できる
readLinksBulk()では全部まとめて取得できる
mod.ts
rest/直下にあるファイルをbundleに含めるためのファイル
確認した限りでは全てのファイルが対象になっていた
page-data.ts
projectにページをインポートする
pages.ts
ページ情報を取得する
プロジェクト内に存在するページの概要をまとめて取得することもできる
profile.ts
ログインしているユーザーの情報を確認できる
ログインしているかを確認するのにも使える
project.ts
プロジェクトの情報を取得できる
そのプロジェクトに参加していれば、一部のプロジェクト設定の設定値もここで取得できる
自身が所属しているプロジェクトの一覧も確認できる
replaceLinks.ts
指定したプロジェクト内に存在するリンクをまとめて置換する
search.ts
指定した単語を含むページが存在するプロジェクトの一覧を返す
参加しているプロジェクトから検索することもできる
watch listに登録されているプロジェクトから検索したり、全く関係のない場所から入手した公開プロジェクトのIDリストを元に検索したりすることもできる util.ts
他の関数の戻り値などで使われている汎用型が格納されている