skip to main content

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

osf

osf is a Go package and three small command line programs for working with Open Screenplay Format (OSF) 2.0. OSF is an open XML format for screenplays and, zipped, the native format of Fade In. The package parses an OSF document, writes it back as XML, renders it as Fountain-like plain text, and builds one from a Fountain document parsed by the fountain package.

OSF keeps no number for an individual scene (numbering is a document setting, scene_numbering), so a Fountain scene number is not carried into OSF. A Fountain boneyard (/* ... */) becomes an ordinary paragraph, so it shows in Fade In.

The programs

osf2txt
reads an OSF file and writes plain text in a Fountain-like format.
txt2osf
reads a plain text file and renders an OSF 2.0 document.
fadein2osf
reads a Fade In (.fadein) file and writes Open Screenplay Format.

Install

Get a release from GitHub, or see INSTALL.md, which also covers installing from source. To use the package in a Go program:

go get github.com/rsdoiel/osf

Build and test

You need Go 1.26.4 or later. Pandoc and GNU Make are only needed for the man pages and the website, and cmt (CMTools) only to regenerate version.go, about.md and CITATION.cff from codemeta.json.

make          # build the programs into bin/ and the man pages into man/
make test     # go test ./...
make check    # gofmt -l and go vet; rewrites nothing