Skip to content
Back to Changelog

JUL 25 - AUG 1

Jul 31, 2025 v0.9.4

JUL 25 - AUG 1

Script Parsing Architecture

  • Plain Text Parser Base Class: Introduced a new abstract base class for all plain-text parsers to standardize parsing logic and share common utilities.
  • Isolate Support: Created a generic utility to run any parser in a background isolate, which prevents the UI from blocking during intensive parsing operations.
  • Parser Registry: Refactored the registry to hold parser instances directly and to determine which parsers should run in a background isolate based on their format.
  • Core Data Model: The primary script data model was updated to use a flat list of ScriptElements instead of a nested scene structure, and a metadata field was added for extra flexibility.

New and Refactored Parsers

  • FDX Parser: Refactored to use the new background isolate utility for all parsing.
  • Fountain Parser: Refactored to extend the new PlainTextParserBase class.
  • PDF Parser: The existing PDF parser was renamed, and the class now extends PlainTextParserBase and runs in an isolate.
  • RTF Parser: A new parser for RTF files was created, which extends PlainTextParserBase and runs in an isolate.
  • TXT Parser: A new parser for plain .txt files was created, which also extends PlainTextParserBase.

Domain Layer and Services

  • New Data Models: Introduced several new data models, including ScriptElement, ScriptScene, ScenePartType, and ParserType, to create a more structured and robust domain layer.
  • Script Breakdown Service: Refactored to use the ScriptParserRegistry to dynamically handle any script file type and return a standardized StructuredScript object.
  • Fountain Syntax Detector: Significantly improved the logic for detecting all Fountain elements, including the addition of logic to correctly handle multi-line parentheticals.
  • Scene Extractor: A new utility was created to extract a list of scenes from a flat list of script elements.

Presentation Layer (UI)

  • Fountain Editor Widget: This widget underwent a major refactor and no longer contains any parsing logic. It now delegates all file imports to the ScriptBreakdownService and uses a new factory to build the editor’s content directly from the list of script elements.
  • Document Factory: A new method was added to the factory to build a SuperEditor document directly from the new ScriptElement list, which is a cornerstone of the new, more efficient architecture.
Authentication

Log in or sign up

Verify your email to manage your workspaces and subscriptions.