JimSaiya / scriptdown

A Markdown-Like Syntax for TV Script Writers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Usage

python scriptdown.py script.sd

# or

python scriptdown.py script.sd > out.html # (for testing)

Outputs html formatted to display the script.

Script Format

Comments

You can comment out blocks just as you can comment in 99% of programming languages. // ..., and /* ... */

Meta Information

You can define the following meta information for your script. This will be displayed in various places within the script. The first word defines the type of meta information it is, and, after any following whitespace, the rest of the text on the line is used as the value for that metadata.

show Modern Family
episode Dude Day
author Luke Zilioli
date 2013-08-25
note Final draft
\n
\n

Follow this section with two linebreaks.

The Script

Symbol Indicator
# Scene heading
/# End scene heading
## Location heading
### Action description
> Character's Name (if proceeded with .., it will be CONT'D..)
(tab) Parenthetical
(nothing) Dialog

Sample

Scriptdown File

// This is an example script for scriptdown
show 	Modern Family
episode Dude Day
author 	Luke Zilioli
date    2013-08-25
note    Final draft


# Cold Open
## INT. Dunphy House - Luke's Room
### Cut to a similar shot of Luke, except his alarm is going off and he is not waking up. Suddenly, Phil bursts through the door, excitedly waking Luke up as he drops the duffel bag on the floor and sits on the foot of the bed.

> Phil
Get up buddy. It's Dude Day!!

> Luke
	groggy
Ugh, Dad, its so early. Can't we sleep in just a little longer?

> Phil
	looking hurt
What? But you love this day.

Output

(<html>, <head> (with css), <body>)
<div id="content">
	<div class="title">
		<div class="show">Modern Family</div>
		<div class="episode">Dude Day</div>
		<div class="author">Luke Zilioli</div>
	</div>
	<p class="scene-head">Cold Open</p>
	<p class="loc-head">INT. DUNPHY HOUSE - Phil & Claire's Room - 8:00 AM</p>
	<p class="action">Cut to a similar shot of Luke, except his alarm is going off and he is not waking up. Suddenly, Phil bursts through the door, excitedly waking Luke up as he drops the duffel bag on the floor and sits on the foot of the bed.</p>
	<p class="name"> Phil</p>
	<p class="dialog">Get up buddy. It's Dude Day!!</p>
	<p class="name"> Luke</p>
	<p class="parenthetical">groggy</p>
	<p class="dialog">Ugh, Dad, its so early. Can't we sleep in just a little longer?</p>
	<p class="name"> Phil</p>
	<p class="parenthetical">looking hurt</p>
	<p class="dialog">What? But you love this day.</p>
</div>

Preview

#ToDo

  • Make it support comments better
  • Less error prone
  • Paging, with headers at top of page (for printing)
  • Less syntax, auto detect switch between new speaker back to action because of skiped line
  • Flag to include comments as sticky notes on page
  • Genericize python script so that a syntax can be declared and mapped to different paragraphs or divs with a given classname.

Grunt

This project uses grunt.

Anyway, if you want to be able to build out the sass assets for the site, you will need grunt on your machine.

  1. Install node, grunt and npm. There are a few methods for doing this, pick your poison.

    • As of July 2013, it looks like running brew install node doesn't include an npm install.
  2. In the project's root directory, run

     npm install
    
  3. This will populate the (hidden) node_modules directory with a few things needed for grunt to do its thing. For more info on all of this, check out the grunt documentation.

If you're working on the CSS for the scripts, you'll need Grunt.

I haven't documented the grunt commands yet, but for now, run:

  1. grunt, followed by
  • grunt watch

Grunt will poll for changes to the files in www/gui/sass and spit out their corresponding css in www/gui/build/css. If you add scripts to the scripts folder, these will be compiled and moved over to the corresponding vuild directory as well.

About

A Markdown-Like Syntax for TV Script Writers


Languages

Language:Python 45.8%Language:CSS 28.8%Language:JavaScript 21.4%Language:PHP 4.0%