ADR-0013 起動画面と Markdown ファイルを入口にし、マスターは保管フォルダから解決する
状況
- 起動直後に、実体のない組み込みサンプルが 3 ペインに表示され、どのファイルを編集しているのか分からなかった。編集しても保存先が無い。
- マスターが二重管理だった。「マスター」ダイアログから取り込んだ pptx は IndexedDB(ブラウザ内ストレージ)に入り、ディスク上に見えない。一方、資料フォルダの
master.pptx は自動取り込みされ、pptx 書き出しはこれだけを使う。プレビューで選んだマスターと書き出しに使われるマスターが食い違い得た。設定を JSON ファイルへ移した ADR-0010 の方針(ブラウザ内保存をやめる)にも反していた。
- ファイル名が
deck.md 固定で、1 フォルダ 1 資料しか扱えなかった。
決定
- 起動画面を置く。サンプルを黙って出さず、「Markdown を開く」「新しく作る」「フォルダを開く」「最近開いたもの」「サンプルを見る」から始める。前回のファイルが残っていれば従来どおり自動で開く。
- 入口は Markdown ファイル。選んだ
.md の親フォルダをワークスペースにする。images/ out/ notes/ .mdslide/ はその隣にできる。内部の単位はフォルダのまま(ADR-0004 を維持)、人が扱う単位をファイルにする。ファイル名は自由(Workspace.deckFile、既定 deck.md)。フォルダを開いたときの雛形は従来どおり組み込みサンプル。「新しく作る」はファイル名を題にした空の枠(表紙・章・スライド 1 枚、newDeckTemplate)で、見本は「サンプルを見る」に置く。
- マスターは保管フォルダから解決する(第 2 段)。設定
masters.dir(既定 ~/.config/mdslide/masters/)に置いた pptx を一覧し、使うマスターは Markdown の frontmatter master: name.pptx に書く。解決順は frontmatter → 資料フォルダの master.pptx → 設定の既定。IndexedDB は使わない。書き出しは解決したパスを --master に渡す。
- 起動時の
argv / MDSLIDE_WORKSPACE はフォルダに加えて .md ファイルも受け付ける。
結果
- 最初に見えるのが「自分のファイル」になり、保存先とフォルダ構成(Markdown + images/ + master)が画面から分かる。
deck.md 固定に依存していた箇所(ワークスペース I/O、参照 deck.md:行、履歴、プロンプト、フォルダ用 CLAUDE.md)は deckFile を受け取る。E2E は既定名 deck.md のまま通る。
- ブラウザ版は File System Access API の制約でファイルからフォルダを辿れないため、フォルダを開く経路とサンプルだけを提供する(開発・E2E 用途)。
- マスターの二重管理が消え、プレビューと書き出しが同じファイルを見る。設定と同様、マスターも Git や dotfiles で持ち運べる。
状態
- 1, 2, 4: 2026-09-06 実装。
- 3: 2026-09-06 実装。IndexedDB のマスター保存(
masterStore.ts)は削除し、masterSource.ts(保管フォルダ / メモリ)に置き換えた。