ScrapboxプロジェクトをKozanebaにインポートする(開発)
from /villagepump/ScrapboxプロジェクトをKozanebaにインポートする(開発)
サクッとできる話ではないことがわかったので思考過程をここに置いていく
Kozanebaのサンプルコードで「ソースコードからKozaneba用のJSONを作成する」があるので、これを使ってScrapboxからエクスポートしたJSONからKozaneba用のJSONを作ればいいと思った
- エスクポートしたJSONにはリンクの情報がなかった
前提として「ページの間のリンクをKozanebaの矢印としてインポートする」という仕様
各ページのAPIを叩いてリンク情報を取得する?
- リンク情報付きでページ一覧が得られるAPIがあったはず

- /scrapboxlab/api/pages/:projectname/search/titles
- でもこれだと本文がない
- エクスポートしたJSONから作るケースなら手元に本文はある

- というかKozaneba的には本文は使わないな
- そんなことなかった、まあいいや
- UI経由で追加した時にはその時点でAPIを叩いてdescriptionを取得してる
- 一旦descriptionを空でやる
- これで良さそう
- 先日inlineに井戸端補完機能をつけるときに使ったばかり
- レスポンス眺めてみた、これで良さそう

- 赤リンクも含まれるはず、まぁあっても良いか

- あった方が面白いかない方がいいかは不明

とりあえず100ページ程度のプロジェクトを対象に実験しようとしているので、全ページ対象で良い
- が一般的にこの機能がリリースされた時に使ってみようとする人は10000ページあったりするので全体でやっても毛玉問題になるだけ
- ページを指定して、そのページと1ホップでリンクされているのものだけを対象にするのが一番有用だと思う
- 100リンク超えてしまったようなページを指定して読み込む
- そうすると子のページの間のリンクが見えて、子をグループに分ける助けになる
- このユースケースだったら親から子へのリンクは自明だから描かない方がいいな
有用かどうかはさておき面白いかもしれないこと
- 指定したページ(orランダムページ)からランダムにリンクをたどっていくのを100回くらいやった結果を表示
/scrapboxlab/api/pages/:projectname/search/titles
- タイトルはある
- 画像URLはある
- 本文はない
- このページ自体のURLはない
- スペースの置換とURLエンコードをすればいいかな?
- リンク情報はリンク先のページタイトルになってる
方針
- 大した分量ではないので素直に頂点集合と辺の集合をつくる
- 有向辺にするかどうか
- するのはできるけど双方向のやつをどう表示しようかな
- 両矢印でいいか
- 赤リンクを含むためページ一覧に存在しない端点が発生しうる
赤リンク、予想以上に多かったw
さて...
メモ