Skip to content

複数 txt ファイルの読み込み・並び替え機能を追加#4

Merged
radish2951 merged 2 commits into
mainfrom
feature/multi-file-load
Jun 6, 2026
Merged

複数 txt ファイルの読み込み・並び替え機能を追加#4
radish2951 merged 2 commits into
mainfrom
feature/multi-file-load

Conversation

@radish2951

@radish2951 radish2951 commented Jun 6, 2026

Copy link
Copy Markdown
Owner

概要

複数の txt ファイルを読み込み、その全体を 1 本の台本として仮想的に扱う機能を追加しました。各ファイルの生テキストを改行で連結し、既存の parseScript にそのまま渡すことで、キャラ抽出・件数集計・連番・txt 書き出し・印刷はすべて従来どおり機能します。

機能

  • 初回読み込みは複数選択に対応(multiple
  • サマリに「ファイル一覧」を追加。行をドラッグして並び替え、✕ で削除、「+ ファイルを追加」で後から追加読み込み
  • タイトルは初回読み込み時に各ファイル名(.txt 除く)を「 + 」で連結した既定値を入れる(以降の手編集は尊重し自動上書きしない)
  • ファイル一覧は印刷時に非表示

並び替え(HTML5 ドラッグ)

  • 各ファイル行を draggable にし、ブラウザ標準のドラッグで並び替える(追加依存なし)
  • onDragOver でポインタが行の上半分か下半分かを判定し、挿入位置に 2px のラインを表示。掴んでいる行は薄く表示する
  • スマホからは操作しない前提のため、上下ボタンは設けず削除・追加のみ
  • 並び替えロジックは任意位置移動の純粋関数 reorderFiles(id, insertBefore) に集約

設計のポイント

  • 連結・タイトル生成・並び替え・削除のロジックは src/lib/loadedFiles.ts の純粋関数(combineContents / deriveTitle / reorderFiles / removeFile)に集約し、Vitest でカバー
  • dialogues / characters / warningsfiles から useMemo で導出する派生状態に変更
  • 「ボイス不要」マークはセリフの位置(id)に紐づくため、並び替え・削除では id がずれることからリセット。追加読み込みは既存セリフの id が不変なので維持する

確認

  • pnpm typecheck / pnpm lint / pnpm test:run(61 passed)/ pnpm build すべて green

🤖 Generated with Claude Code

複数ファイルの生テキストを配列で保持し、改行で連結して 1 本の台本として
扱う。連結・並び替え・削除は src/lib/loadedFiles.ts の純粋関数に集約。
サマリにファイル一覧(▲▼ で並び替え・✕ 削除・追加読み込み)を追加し、
印刷時は非表示にした。並び替え・削除は id がずれるためボイス不要を
リセット、追加読み込みは id が不変なので維持する。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 6, 2026

Copy link
Copy Markdown

Deploying script-printer with  Cloudflare Pages  Cloudflare Pages

Latest commit: ea03712
Status: ✅  Deploy successful!
Preview URL: https://785403d9.scriptprinter.pages.dev
Branch Preview URL: https://feature-multi-file-load.scriptprinter.pages.dev

View logs

各ファイル行を draggable にし、上半分・下半分の判定で挿入位置のラインを
表示してドロップで並び替える。純粋関数は隣接交換の moveFile から任意位置
移動の reorderFiles に差し替え。スマホ非対応のため ▲▼ ボタンは撤去し、
削除と追加のみ残した。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@radish2951
radish2951 merged commit f633539 into main Jun 6, 2026
3 checks passed
@radish2951
radish2951 deleted the feature/multi-file-load branch June 6, 2026 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant