nellie(1)               FreeBSD General Commands Manual              nellie(1)

NAME
     nellie - Screenplay Formatter for FreeBSD and Mac OS X

SYNOPSIS
     nellie [-n] [-v] [-x | -c] [<infile> [<outfile>]]

DESCRIPTION
     Nellie converts a text document marked up as a screenplay with Tree
     Structure Markup Language into a formatted screenplay expressed as a
     Portable Document Format document.

     Nellie reads from stdin or from a single file specified on the command
     line and writes to stdout or to another file specified on the command
     line.  To specify an output file without an input file, specify an input
     file of '-'.  If the input document is malformed, nellie exits without
     explanation.

     Nellie is intended for use by writers in English.  Nellie supports only
     8-bit text expressed in Adobe's Standard Encoding, which is a subset of
     Latin-1, ISO-8859-1.  Nellie does not embed fonts in its output.  PDFs
     use the Courier typeface that your PDF viewer supplies.  Only those
     glyphs that your viewer supports will render.  Such support is sufficient
     for writers in English.

     UTF-8 sequences in the input that encode smart quotes and em dashes are
     converted into their typewriter equivalents.  Other UTF-8 sequences are
     removed from the input.

     Nellie produces output for US Letter size paper (8.5in x 11in).  There is
     no mechanism to change the paper size.

   OPTIONS
     -n    turns on scene numbering.

     -v    causes 'v' headings to start on a new page.

     -x    causes nellie to produce Fountain output from TSML input.

     -c    causes nellie to produce TSML output from Fountain input.

           o   Nellie does not recognize dual dialogue, lyrics, notes,
               boneyard text, synopses, or outlines.

           o   If scene headings do not start with INT. or EXT., they must
               start with '.' to force their recognition.  Nellie converts any
               lowercase letters to uppercase.

           o   If character cues contain characters other than uppercase
               letters, digits, and spaces, the cues must start with '@' to
               force their recognition.

           o   If transitions contain characters other than uppercase letters,
               digits, spaces, and colons, or if the transitions do not end
               with ' TO:', the transitions must begin with '>' to force their
               recognition.

           o   Nellie does not recognize ! to force action paragraphs.

           o   Scene headings, transitions, character cues, and parentheticals
               must appear complete on single input lines.

           o   All asterisks are removed from the source text.

           o   Centered lines are converted to 'v' elements unless the text of
               the lines begins with "END", in which case the lines are
               converted to 'e' elements.

   TSML
     TSML is a generic markup language described in tsml(5).  TSML is designed
     to be machine friendly rather than human friendly.  It is not a
     specialized language for expressing screenplays as Fountain is.  Nellie
     uses a simple TMSL scheme to classify paragraphs by type and to define
     document metadata.

     A example TSML screenplay fragment follows.

     [y[
     [m[
       [t[ TITLE 1;;TITLE 2 ]]
       [a[ Author 1; Author 2 ]]
       [c[ Contact 1; Contact 2 ]]
       [r[ Revision 1; Revision 2 ]]
     ]m]
     [v[ ACT 1 ]]
     [s[ INT. DINER. ]]
     [a[ Our hero eats a cheeseburger. ]]
     [a[ A man nearby talks to a salt cellar. ]]
     [c[ MAN ]]
     [p[ (with affection) ]]
     [d[ You make lunch worth eating.  Where can I find such magnificent food
     enhancing magic as you? ]]
     ]y]

   ELEMENTS
     All elements have names of a single letter.  The toplevel element is
     named 'y'.  It contains one or more instances of the following child
     elements.

     'm'  Nellie extracts from the children of the 'm' element the data to use
          in the screenplay's title page and in the PDF Info dictionary.  To
          specify that the text in these elements be formatted into multiple
          lines, separate the data for each line from the others with a
          semicolon.  To insert a blank line between lines, insert 2
          contiguous semicolons.

          [t[Title;;Subtitle]]

          't'  specifies the title of the screenplay.  Titles are formatted in
               boldface.

          'a'  specifies the authors.

          'c'  specifies contact information.

          'r'  specifies revision information.  To insert the current date,
               make one of the revision lines $D by itself.

          'k'  specifies a list of comma or semicolon-separated keywords to
               insert into the PDF's Info dictionary.  If this element is
               missing, the /Keywords key is ommitted from the dictionary.

          The 'm' element should only appear once in a document.  If you
          provide multiple instances, each instance's data supersedes the data
          in preceding instances.  The 5 child elements should only appear
          once each inside 'm'.  If you provide multiple instances, the data
          in each instance supersedes data the data in preceding instances.
          If you do not provide the 't', 'a', 'c', or 'r' elements,
          placeholder data is used.

     'v'  provides the content of a centered, boldface heading line separated
          from the rest of the screenplay with a blank line before and after
          the centered line.  The 'v' element is intended for use in creating
          act headings, but you can place any content that you like in these
          elements.

          If the content of a 'v' element wraps onto multiple lines, nellie
          discards all lines after the first.  Nellie pushes a 'v' heading to
          a new page if space for fewer than 6 lines remains on the page.
          This is to leave enough room for an act heading, a blank line, a
          scene heading, a blank line, and 2 action lines.  To force the
          content of 'v' elements to appear at the top of new pages, include
          the -v option on the command line.

     'e'  provides the content of a centered, boldface heading separated from
          the rest of the screenplay with a blank line before and after the
          centered line, but 'e' elements are not widow-controlled.  The 'e'
          element is intended for use in creating 'The End' markers at the end
          of screenplays.  End markers are useful because screenplays do not
          describe the page total in title pages or page headers.

          If the content of an 'e' element wraps onto multiple lines, nellie
          discards all lines after the first.

     's'  provides the content of a scene heading.  Nellie formats Scene
          headings in boldface.  To add scene numbers, include the -n option
          on the command line.

          Nellie pushes an 's' heading to a new page if space for fewer than 4
          lines remains on the page.  This is to leave enough room for a scene
          heading, a blank line, and 2 action lines.  If the scene heading
          spans multiple lines after wrapping, nellie increases the required
          space accordingly.

     'a'  provides the content of an action paragraph.

     'c'  provides the content of a character cue that introduces dialogue.
          Nellie pushes a 'c' heading to a new page if space for fewer than 4
          lines remains on the page and the succeeding 'p' and 'd' paragraphs
          cannot fit into that space with the heading.  This is to leave room
          for the cue heading, 2 lines of dialogue or parenthetical, and
          possibly a (MORE) line.

     'p'  provides the content of a parenthetical direction for dialogue.  You
          must provide the parentheses characters in the content.
          Parentheticals cannot appear inside other elements.  To place a
          parenthetical inside a paragraph of dialog, break up the dialogue
          into 2 paragraphs:

          [c[JAMES]]
          [p[(to Calvin)]]
          [d[I don't know if I trust you.]]
          [p[(to himself)]]
          [d[I know I don't.]]

     'd'  provides the content of a dialogue paragraph.  If a dialogue
          paragraph spans a page break, nellie adds a (MORE) parenthetical to
          the bottom of the first page and a (CONTINUED) parenthetical to top
          of the second page.

     't'  provides the content of a transition directive.

   CONTENT
     Nellie discards data outside of terminal elements.  You can place
     comments in between terminal elements.

     Inside of terminal elements, nellie normalizes whitespace by converting
     all whitespace characters into space characters, collapsing multiple
     contiguous spaces into single spaces, and removing leading and trailing
     spaces.

     Nellie underlines words bookended with underscores.  If you want to
     underline a section of text, you must _underline_ _each_ _word_
     _individually_.  You cannot underline metadata for the title page.

     Nellie provides no means to change the font.  You cannot embolden text or
     format it in italics.  Boldface is intrusive outside of headings, and
     Courier Oblique is not oblique enough to attract the eye.  To emphasize
     words, underline them.

     To insert [, ], or \ into element content, escape each with a backslash:

     [a[He looks up \[At what?\]]]

AUTHORS
     James Bailie <jimmy@mammothcheese.ca>
     http://www.mammothcheese.ca

                               Fri Jan 19, 2018