コンテンツにスキップ

ADR-0043: キャンバスとスライドのエディタは、ツールごとに、名前を付けた複数の図とスライドを IndexedDB に保存する

Status

承認

Context

訪問者は、同じ端末で再訪したときに、前に描いた図と、前に作ったスライドを開ける。
ツールごとに、図とスライドを 1 つだけ保存するか、複数保存するかを決める必要がある。

Decision

draw.io のツール、Excalidraw のツール、スライドのエディタは、どれも、名前を付けた複数の図かスライドを IndexedDB に保存する。
訪問者は、一覧から、開く図かスライドを選ぶ。

  • 「新しい図」と「新しいスライド」の操作は、前の図とスライドを消さない。
  • 保存するデータの形を、3 つのツールでそろえる。
  • キャンバスのツールは、記事の図を開いただけでは、IndexedDB に保存しない。訪問者が最初に編集したときに、新しい図として保存する。
    • 保存してあった図は変えない。同じ記事の図から作った図が保存してあっても、「キャンバスで開く」のリンクは、記事の図を開く。
    • 保存する図は、元にした記事の図の名前を持つ。

複数を保存する理由は、新しく作り始めたときと、記事の図を開いたときに、訪問者が前に作ったものが消えないようにするためである。
最初の編集で保存する理由は、同じリンクを開くたびに、一覧に図が増えないようにするためである。

Verification

端末、ブラウザ、バージョンは、ADR-0039 と ADR-0041 の Verification と同じである。
試作は、ツールごとに図かスライドを 1 つだけ保存した。複数を保存する形は、試作していない。

  • 3 つのツールで、編集のたびに IndexedDB に保存し、再訪で読み込めた(3 つのブラウザ)。
  • 1 つだけ保存する draw.io のツールで、記事の図を開いて編集すると、保存してあった図が、開いた図に上書きされた(Chromium)。

Considered Options

選択肢 強み 弱み
採用: ツールごとに、名前を付けた複数の図とスライドを保存する 新しく作り始めても、記事の図を開いても、前に作ったものが消えない 一覧、名前の変更、削除の画面を作る。保存するデータの形に、名前と識別子が要る
ツールごとに、図かスライドを 1 つだけ保存する 作るものが少ない 新しく作り始めると、前のものが消える。残したいものは、訪問者がファイルに保存する

開いた図を保存する時点の選択肢は次のとおり。

選択肢 強み 弱み
採用: 最初に編集したときに、新しい図として保存する リンクを開くたびに、一覧に図が増えない 編集しないで閉じると、一覧に残らない
開いたときに、新しい図として保存する 開いた図が、必ず一覧に残る 同じリンクを開くたびに、同じ図が増える
同じ図から作った図が保存してあれば、それを開く 記事を開き直すと続きが開く、実行環境の動きと同じになる 記事の図が変わっても、古い図が開く。記事の図に戻す操作が要る

Consequences

Positive

  • 訪問者は、複数の図とスライドを、同じ端末に残しておける。
  • 3 つのツールで、保存と一覧の作りを共有できる。

Negative

  • 訪問者が保存した図とスライドが増えると、ブラウザの保存の容量を使う。
  • 一覧と削除の画面を、ツールごとに置く。