Scrapboxとinlineを接続する
アイデア
例えば
- 入力補完にScrapboxのプロジェクトを指定できるようにする
- 何らかのインライン記法を作る必要がある
- inlineで開く導線と、Scrapboxを参照する導線が必要?
- {{scrapbox /inajob/page}}とかで良い
- リンクがあれば勝手に化けるとかでも良いか?
- こっちのほうがスマートだと思う
- 普通のリンクと混ぜたいときはどうする?
- 普通のリンクだけど、Scrapbox側にページが有るときは特別な表示になる
- このほうが互換性があって良いな
- 同名のScrapboxのページがあれば関連ページリストなどに出す
- scrapboxのページ名一覧を取得する
- APIがあったので以下は不要
- 井戸端に関してはdumpしたデータがあるのでそれを使えそう
- これはページのダンプだが、キーワード一覧は自分で計算するしかないかな?
ページに井戸端のページ名を全部突っ込む
- 試しにタイトル全部ローカルに突っ込んでみた
- 書き込みは成功
- キーワードの生成までは3分ほど待つ
- jitterとかないので負荷が高くなる?
- キーワード生成が始まったがfile open errorが大量に出ている
- スペースを含むキーワードか?
- 一応動いた
- ただしキーワードのページに遷移すると、ブラウザが落ちる
- instant searchに上限を設ける必要がありそう
- さすがにダミーページに突っ込むのは行儀が悪いので、補完候補に追加で入れられるようにすることを考える
作業
- やること
- 補完候補に入れる
- Scrapboxページに飛ぶためのリンクのUIを考える
- 今のリンク記法を拡張する
- 今の仕様
- リンク自体をクリックするとinlineのメインペインの遷移
- リンクの右の「*」をクリックするとinlineの右ペインの遷移
- 新しい仕様
- リンクの右の「*」をクリックすると選択肢が現れる
- Scrapboxのプロジェクトが出る
- 開発
- 「*」をクリックした際に出るポップアップ
- position:absoluteの何かがやってくる感じ?
- *の座標をどうやって取得するかがポイントっぽい
- 表示位置についてはなんとなくできた
- 次はアイテムの追加
- ほかの人のページの構造を取得し、APIで配信したい
- data/external-completion/USERとかかな?
- データはjsonにする?
- アイコンのURL
- ページ名の一覧
- 一旦/webの下に置いてしまう
- 新たな記法を考える
- 今のリンク記法との使い分けが難しい
リンクのScrapboxフォールバック
- 青リンク、赤リンクの他にScrapboxにフォールバックするリンクを増やす案
- フォールバックと言っているが、青リンクのときも選べるようにする?
- 関連ページリストに出るならどっちでも良いかも
- Scrapboxプロジェクトは複数あるが・・?
- watchlistのようなものを用意しておく
- UIはどうなる?
- Scrapboxにあることを示す表示になり、以下の機能を提供する
- inlineのリンクとして開く機能
- Scrapboxのプロジェクトを選んで開く機能
- これはポップアップ的なUIにするのが良い
ちょっと実装してみて
- リンクからほかのプロジェクトを手繰る機能
- 使う場面が意外と思いつかない
- 入力補完
- 便利は便利
- 別に情報ソースへのリンクにならなくても、あそこのあれ、みたいな使い方が出来そう?
- 真にほしいもの
- ScrapboxのURLを書いたときにいい感じに表示してくれるもの
- URLではなくプロジェクト名/キーワードで書くことが出来るもの?
- 必要か?
- まぁせっかく作ったしデプロイしてみる