generated at
scrapbox-userscript-stdのファイル構成
ここは、takker/scrapbox-userscript-stdのファイル構成を記述しているページ
一部は/villagepump/scrapbox-userscript-stdからの引用も含む
Mijinko_SDが個人的に調べた範囲のものであって間違っているものもあるかもしれない
ここの情報を当てにしすぎず、製作者のtakkerさんが公開している情報をちゃんと確認するようにしてほしい
ファイルが追加されたバージョンを書いていることもあるが、Mijinko_SDが知っている範囲でしか書いていない
.test.ts はテスト時にのみ使用するファイル(deno testを参照)なので、ここでは取り上げない
更新を追いきれなかったが為に不足している情報もあるかもしれない

わざわざこれを読まなくても、 mod.ts が提供している関数等の情報であればドキュメントを閲覧することで確認できる

このページはこんな人のためにある
takker/scrapbox-userscript-stdにどんな系統の関数があるかを確認したい人
mod.ts が提供していない関数も確認しておきたい人
デバッグのためにライブラリの内部まで確認する必要が出てきた人

ファイル
>utilitesとかが雑においてある
mod.ts
スクリプトのbundleに使う
このファイルをとりあえずインポートしておけば、殆どのライブラリ関数が使えるようになる
sleep.ts
sleep関数を使えるようにする
指定したミリ秒だけ処理を遅らせることができる
その他
未確認
>web browser上でないと使えないもの
>websocketを使わない函数
>元々↓( ./browser/websocket/ )とまとめてre exportしていたが、bundleでなぜかこちらでは使用していないscrapbox-parserのコードが混じってしまう現象が起きたので、websocketありとなしとでdirectoryを分けた
cache.ts
>scrapbox.ioが管理しているcache storageから、最新のresponseを取得する
caret.ts
Scrapboxエディタキャレット選択範囲に関する関数が入っている
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
>今は使っていない
>まともに動いてなかった気がするtakker
mod.ts には含まれていない
mod.ts
./browser/ 直下にある *.ts ファイルをほぼ全てbundleに含めるためのファイル
どれが含まれているかは当該ファイルを参照
motion.ts
モバイル用 edit.ts のような感じ?
node.ts
行の取得や解析に関する関数が入っている
open.ts
別のページを開く
開くと同時にページ末尾にテキストを追記することもできる
position.ts
カーソル座標の型定義
press.ts
キーを押したときの処理をスクリプト内部から発火させる
pushPageTransition.ts (v0.18.0 ~)
Scrapboxのリンク先へスクロールする機能を、UserScript上から実行できるようにしたもの
ページ遷移と同時にスクロールする仕込みをしたいのであれば、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
ページをピン留めしたり外したりする
既にピン留めされているかの確認はここではできない
getPage()で取得可能なデータにピン留めに関する情報が含まれている
pull.ts
ページ情報を取得し、オブジェクトとして返す
socket.ts
WebSocket の接続を開始したり終了したりできる
ここで作成した接続は patch() などに渡すことで使用することができる
mod.ts
./browser/ 以下のスクリプトのbundleに使う
外部ソースコードの依存関係がまとめられている
onp.ts
scrapbox-rest.ts
ScrapboxのREST APIに関する型定義をインポートしている
scrapbox.ts
Scrapboxの型定義ファイルをインポートしている
socket.ts
ScrapboxのWebSocketを操作するためのライブラリと型定義ファイルをインポートしている
testing.ts
Denoのtestingをインポートしている
./parser/(v0.15.0 ~)
関連
>まだ全部は対応し切れていない
auth.ts
CSRFトークンを取得できる
これは、一部の危ない操作を行う時に要求される
error.ts
一部の関数で使われているエラー(例外)クラスが格納されている
getGyazoToken.ts
>Gyazo OAuth uploadで使うaccess tokenを取得する
getSnapshots.ts
ページのスナップショット(その時点でのページ単体のバックアップ)を取得することができる
getTweetInfo.ts
Twitterのツイートの情報を取得する
おそらく、Scrapboxのツイート埋め込み機能で使われているAPIリソースを流用したもの
getWebPageTitle.ts
指定したURLのページタイトルをScrapboxのサーバー経由で取得する
link.ts
指定したプロジェクトに存在するリンク名(ページタイトル含む)をまとめて取得できる
getLinks() ではおそらく1000件ずつ取得できる
引数の option を設定することで次の1000件を取得できる
readLinksBulk() では全部まとめて取得できる
内部では/scrapboxlab/api/pages/:projectname/search/titlesを叩いて取得している
mod.ts
rest/ 直下にあるファイルをbundleに含めるためのファイル
確認した限りでは全てのファイルが対象になっていた
page-data.ts
>projectにページをインポートする
pages.ts
ページ情報を取得する
プロジェクト内に存在するページの概要をまとめて取得することもできる
profile.ts
ログインしているユーザーの情報を確認できる
ログインしているかを確認するのにも使える
project.ts
プロジェクトの情報を取得できる
そのプロジェクトに参加していれば、一部のプロジェクト設定の設定値もここで取得できる
自身が所属しているプロジェクトの一覧も確認できる
replaceLinks.ts
指定したプロジェクト内に存在するリンクをまとめて置換する
search.ts
指定した単語を含むページが存在するプロジェクトの一覧を返す
参加しているプロジェクトから検索することもできる
watch listに登録されているプロジェクトから検索したり、全く関係のない場所から入手した公開プロジェクトのIDリストを元に検索したりすることもできる
util.ts
他の関数の戻り値などで使われている汎用型が格納されている