aboutsummaryrefslogtreecommitdiffstats
path: root/README.markdown
diff options
context:
space:
mode:
authorMartin Vilcans <martin@librador.com>2011-08-10 01:14:45 +0200
committerMartin Vilcans <martin@librador.com>2011-08-10 01:17:06 +0200
commit89b90c77400c6788604812a1253f17c2cf235087 (patch)
treed4c627bd3acd6861bd5853fd5f6d348b2d576c5e /README.markdown
parenta5c079fd7d7ebecc071974f5d538457a2beb9fea (diff)
downloadscreenplain-89b90c77400c6788604812a1253f17c2cf235087.tar.gz
Documented input format.
Diffstat (limited to 'README.markdown')
-rw-r--r--README.markdown70
1 files changed, 68 insertions, 2 deletions
diff --git a/README.markdown b/README.markdown
index 18f09f6..1fea850 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,5 +1,5 @@
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
@@ -33,7 +33,7 @@ Thanks for the inspiration goes to:
comments. Screenplain's format is very similar to Scrippets.
Input format
-------------
+============
The format of the text input is very much like how you would write a
screenplay on and old typewriter, only that you don't have to worry about tab
@@ -54,6 +54,7 @@ Here's an example:
ARTHUR
Whoa there!
+
SERVANT makes noises of horses halting, with a flourish. ARTHUR
peers through the mist. CUT TO shot from over his shoulder:
castle (e.g. Bodium) rising out of the mist. On the castle
@@ -97,3 +98,68 @@ After Screenplain has digested it, it will appear correctly formatted like this:
Camelot. King of all Britons,
defeator of the Saxons, sovereign
of all England!
+
+As you can see, you can write your screenplay without keeping formatting rules in your head.
+As Screenplain is just a piece of software, and not a mind-reading robot, it does have rules,
+but they are designed to be intuitive and shouldn't distract from the writing.
+
+Basically, what Screenplain does with your plain text file is to split it into paragraphs.
+A paragraph is simply one or more lines of text. Paragraphs are separated by one or
+more empty lines. The example above contains six paragraphs.
+
+After splitting the text into paragraphs, Screenplain decides what type each paragraph has.
+It can be one of:
+
+ * Slug line
+ * Dialogue
+ * Action
+
+The paragraph type decides how the paragraph will look in the output. See
+below for how Screenplain figures out which one of these types each paragraph has.
+
+Slug lines
+----------
+
+If a paragraph contains *one single line* written in *capital letters*, Screenplain
+assumes it is a slug line.
+
+A slug line is a line that starts a scene. An example of a slug line is `EXT.
+EIFFEL TOWER - DAY`, but Screenplain does not care about the format. Screenplain
+assumes `SOMEWHERE IN SPACE` is a slug line too.
+
+Dialogue
+--------
+
+If a paragraph consists of two or more lines, and the first line is written
+only in *capital letters*, Screenplain assumes it is a piece of dialogue. The
+first line should contain the name of the speaking character. The rest is
+whatever that character says. Simple isn't it? Well, there is an exception: If
+a line starts with an opening parenthesis, "(", it starts a parenthetical
+block, which is a screenwriter's way of telling the actor how the line is to
+be delivered (something that pisses directors off). Parentheticals are
+formatted differently from the spoken lines.
+
+Action
+------
+
+Any paragraph that is not one of the other types contains descriptions about
+what happens in the scene.
+
+TO DO
+=====
+
+ * Specify options on the command line. Duh.
+
+ * Installation package.
+
+ * Margins in PDF output.
+
+ * Support for transitions. A `CUT TO:` line is interpreted as a slug line.
+ Fixing this should be simple: any single-line paragraph that starts with one
+ or more spaces and does not contain lower-case characters should be a
+ transition. Any pitfalls with that? What about left-aligned transitions like
+ `FADE IN:`?
+
+ * Good support for national characters. It works on my system, but I'm not so
+ sure if it will work for everyone. Should we just support UTF-8, or allow
+ other encodings?