Skip to main content

Convert text file to viewable screenplay.

Project description

About Screenplain

You're a hacker. The command line is your home. You know tools like grep, sed and Git inside out. You have formed a symbiotic relationship with your text editor. Those tools are powerful in the right hands. But you're also a screenwriter. Screenwriting is much like programming. It's about structure and form, and -- obviously -- about reading, writing and modifying huge amounts of text. You don't want to use software that lacks the power of your hacking tools just because you're writing a screenplay instead of a shell script.

Enter Screenplain.

Screenplain allows you to write a screenplay as a plain text file using a format called Fountain. Text files are simple and supported by all text manipulation software. It's not just for hackers, too. The simplicity of plain text allows you to easily view and edit them on devices such as tablets and phones. No need for specific screenwriting software.

The magic that Screenplain performs is to take your plain text file and convert it to a good looking screenplay in an industry standard format. Send that file off to your producer, agent, director or screenwriting competition. The supported output formats are FDX, HTML, and PDF.

Screenplain can be used as a command-line application or a library. An Online version of Screenplain is also available.

Installing

pip install screenplain

Usage

Convert a Fountain screenplay to PDF:

screenplain screenplay.fountain screenplay.pdf

Convert to HTML:

screenplain screenplay.fountain screenplay.html

Convert to Final Draft (FDX):

screenplain screenplay.fountain screenplay.fdx

The output format is automatically determined from the output filename extension. If the output filename is omitted, Screenplain will write to standard output. As there is no output filename, you have to specify which format to output, e.g.:

screenplain --format=fdx screenplay.fountain

Credits

Screenplain was coded by Martin Vilcans.

The CSS code that formats Screenplain's HTML output as something that looks as much as a printed screenplay as is possible in HTML was created by Jonathan Poritsky.

The Fountain file format is the result of a collaboration between Stu Maschwitz and John August.

License

Screenplain is released under the MIT license.

Developing

Install uv, e.g. using pip:

python -m pip install uv

Running using uv

After this, run the working copy of the code with:

uv run screenplain

For example:

uv run screenplain screenplay.fountain screenplay.html

Activating virtual environment

As an alternative, you may activate the virtual environment, which makes screenplain available on your PATH:

uv venv  # create .venv unless it already exists
source .venv/bin/activate

After this, you can simply run the command screenplain to run the working copy of the code, e.g.:

uv run screenplain screenplay.fountain screenplay.html

Testing

To run unit tests and style checks, run:

bin/test

To compare reference files with the actual output for pdf format, run:

tests/visual/pdf_test.py

This requires diff-pdf to be installed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

screenplain-0.12.0.tar.gz (208.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

screenplain-0.12.0-py3-none-any.whl (211.9 kB view details)

Uploaded Python 3

File details

Details for the file screenplain-0.12.0.tar.gz.

File metadata

  • Download URL: screenplain-0.12.0.tar.gz
  • Upload date:
  • Size: 208.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for screenplain-0.12.0.tar.gz
Algorithm Hash digest
SHA256 3e97c32b5dbce28e9623a364936d7142222837a67d1b9294262684fa13bd4c3c
MD5 b51ec90de65cf8176a6580c0983a5ce4
BLAKE2b-256 1cdeca417cf95ea70775dfe29ac373091aa488aa355cc4a4669685288cd4e4db

See more details on using hashes here.

File details

Details for the file screenplain-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: screenplain-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 211.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for screenplain-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35feb87cbb0d99a8a713cd1368b9fcf67e522afbc68390a9d691c5fe77d3d4c0
MD5 81a4f4d14915a91de5da8749e85f448c
BLAKE2b-256 7efdc11f0072d85fb0fc4ab4feff133bb9fd7bcff6e6b2e56fdf20e03da0859c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page