arikrupnik / fountainhead Goto Github PK
View Code? Open in Web Editor NEWTools for using Fountain.io screenplays throughout the production process
License: GNU General Public License v3.0
Tools for using Fountain.io screenplays throughout the production process
License: GNU General Public License v3.0
Create tests/*ftx
that contain correct parse results for tests/*fountain
and tests/Makefile
to verify automatically that fountainhead.py
results match these expectations.
It is desirable to designate words in Action elements as referring to specific props, characters, effects, etc. for breaking down a script. The goal is to have a list of props, actors, etc., for every scene.
Each of these props, characters, locations, etc., may have it's own page with descriptions, photos, notes. It may say whether the item is available or if the production is still looking for it. This requires specifying a format (and presumably directory layout) for these supplementary materials as well as for the output.
Vertical layout, mostly.
Add a switch for fountainhead.py
and definitions to ftx.css
that would highlight (bold?) specific character's dialogue. This makes it easier for individual actors to focus on their characters' lines.
Now that semantic section outlines ("bookmarks" are working in ftx.css
, it is desirable to add a command-line switch to highlight specific sections by name.
When rendering the new pretty-print FTX, ftx.css introduces superfluous linebreaks, presumably from rendering insignificant whitespace as hard linebreaks.
Break EXT. LOCATION - DAY
into
<scene-heading>
<type>EXT.</type>
<location>LOCATION</location>
<time>DAY</time>
</scene-heading>
Need to look into more complex cases--parenthesis, more than one dash, etc.
In semantic linebreak mode, Fountainhead follows the Markdown convention of treating adjacent lines as parts of the same paragraph. It is desirable to follow the Markdown feature that allows the author to force a linebreak if a line terminates in two spaces.
Here's an example from the Fountain spec. Note the two spaces after "long beat. " in the second line.
They drink long and well from the beers.
And then there's a long beat.
Longer than is funny.
Long enough to be depressing.
The men look at each other.
With semantic linebreaks option, Fountainhead parses this so:
<fountain><action>They drink long and well from the beers.
And then there's a long beat. Longer than is funny. Long enough to be depressing.
The men look at each other.</action></fountain>
The desirable interpretation is:
<fountain><action>They drink long and well from the beers.
And then there's a long beat.
Longer than is funny. Long enough to be depressing.
The men look at each other.</action></fountain>
Example input:
= synopsis1
[[note]]
= synopsis2
Expected output:
<fountain>
<synopsis>synopsis1</synopsis>
<note>note</note>
<synopsis>synopsis2</synopsis>
</fountain>
Actual output:
<fountain><synopsis>synopsis1[[0]]= synopsis2</synopsis></fountain>
Empty elements appear where insignificant empty lines appear in the source .fountain.
Examples:
A file's last significant element is dialogue, and the file has a trailing new line. The new line becomes <action/>
From tests/character.fountain
:
CHARACTER
Line
.dual dialogue
This becomes (note at the end of the first scene):
<fountain>
<synopsis>character lines with extensions, dual dialogue</synopsis>
<scene><scene-heading><location>regular dialogue</location></scene-heading>
<dialogue><character><name>CHARACTER</name></character>
<line>Line</line>
</dialogue>
<action/>
</scene>
<scene>
<scene-heading><location>dual dialogue</location></scene-heading>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.