Skip to content

Fountain import (round-trip-safe) #184

@stultus

Description

@stultus

What

Import .fountain files into Scriptty as a Film, into a Series as a new Episode, or open via the standard Open dialog (auto-detected by extension). Round-trip safe — a co-writer can send a .fountain, the Scriptty user edits it, exports back to Fountain, and no data is silently lost.

Why

Fountain is the lingua-franca plaintext format for screenplays. Co-writing across tools (Final Draft, Highland, WriterDuet, Scriptty) usually happens via Fountain hand-offs. Without import, Scriptty is a one-way valve — writers can leave Fountain but never come back.

Hrishi co-writes with two others, splitting scenes across files. A round-trip-safe Fountain pipeline is the unblock for that workflow.

Scope decisions (locked)

Fountain feature Scriptty mapping
Scene Heading, Action, Character, Parenthetical, Dialogue, Transition Native ProseMirror nodes
Title page — standard keys (Title, Credit, Author/s, Draft date, Contact) meta.title, meta.author, meta.draft_date, meta.contact
Title page — non-standard keys (Source, Notes, Copyright, custom) meta.extra map (new schema field)
Synopses (= ...) scene_cards[].description of the matching scene
Sections (# ...) scene_cards[].notes of the next scene, prefixed with depth marker for round-trip
Inline notes ([[ ... ]]) scene_cards[].notes of the containing scene (positional fidelity sacrificed)
Boneyard (/* ... */) Dropped. Documented in import summary toast.
Dual dialogue (^) Collapsed to sequential Character/Dialogue pairs
Centered text (> ... <) Action paragraph

No new ProseMirror node types, no editor schema bump. Only meta.extra is added to the .screenplay JSON.

Entry points

  • File → Import Fountain... (always creates a new Film, untitled)
  • File → Import Fountain as Episode... (only enabled when a Series is open; appends a new episode)
  • Open dialog accepts .fountain alongside .screenplay — auto-imports as a Film
  • Per-episode Fountain export for Series projects (writes 01-pilot.fountain, 02-the-return.fountain, ...)

Sub-issues

Suggested merge order: #185#186#187#188. The export round-trip lands last so it can be exercised against real imported data.

Out of scope (this feature)

  • FDX import (separate format, separate parser)
  • Editor visualization for Fountain notes / boneyard
  • Promoting outline (sections) to a real document-level structure with hierarchy

Notes

CLAUDE.md previously listed Fountain import in the deferred section — this issue un-defers it. Remove from deferred list as part of #186.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions