0.2.0 • Published 3 years ago

ftnbuild v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

ftnbuild

ftnbuild is a JS processor for Fountain. Forked from the lovely Fountain.js implementation by Matt Daly.

Roadmap:

  • JSON output
  • Inline field JSON output
  • Update docs
  • Better test coverage

Installation

npm install ftnbuild

Usage

Parse as HTML:

import fs from 'fs'
import { parse } from 'ftnbuild'

const contents = fs.readFileSync('screenplay.fountain', { encoding: 'utf-8' })
const output = parse(contents)
// output.title -> 'Big Fish'
// output.content.titlePage -> '<h1>Big Fish</h1><p class="author">...'
// output.content.script -> '<h2><span class="bold">FADE IN:</span></h2>...'

Parse as JSON (good for programmatic integrations):

import fs from 'fs'
import { parse } from 'ftnbuild'

const contents = fs.readFileSync('screenplay.fountain', { encoding: 'utf-8' })
const output = parse(contents, { format: 'json' })
// output.title -> "BRICK & STEEL"
// output.content.titlePage -> { "author": "Stu Maschwitz", ... }
// output.content.script ->
// {
//   "children": [
//     {
//       "type": "slugline",
//       "value": "EXT. BRICK'S PATIO - DAY"
//     },
//     {
//       "type": "dialogue_block",
//       "character": "STEEL",
//       "children": [
//         {
//           "type": "dialogue",
//           "value": "Beer's ready!"
//         }
//       ]
//     }
//   ]
// }

Get the raw tokens (write your own parser):

Note: The tokens are returned in reverse order. Take a look at src/formats/ for examples of creating a parser/formatter.

import fs from 'fs'
import { tokenize } from 'ftnbuild'

const contents = fs.readFileSync('screenplay.fountain', { encoding: 'utf-8' })
const tokens = tokenize(contents)
// [
//   ...,
//   { type="scene_heading", text="EXT. BRICK'S PATIO - DAY", scene_number="1"},
//   { type="action", text="A gorgeous day. The su...emplating -- something."},
//   { type="action", text="The SCREEN DOOR slides ...es with two cold beers."},
//   { type="dialogue_begin"},
//   ...
// ]

Syntax Support

The full Fountain syntax is supported.

Currently ftnbuild supports a limited range of key-value pairs for title pages:

  • Title, Credit, Author/s, Source, Notes, Draft date, Date, Contact, Copyright

Styling guide

wip
0.2.0

3 years ago

0.1.0

3 years ago