jumpcut 1.0.0

JumpCut is a library and CLI for converting Fountain-formatted text files into FDX, HTML, JSON, text, and PDF formats.
Documentation
{{#*inline "element"~}}
      <p class="{{type_to_class type}}{{~#if attributes.starts_new_page}} startsNewPage{{/if~}}{{~#if attributes.centered}} centered{{/if~}}">
        {{~#if attributes.scene_number}}<span class="sceneNumberLeft">{{attributes.scene_number}}</span>{{/if~}}
        {{~#if text.Plain~}}{{~text.Plain~}}{{~/if~}}
        {{~#if text.Styled~}}{{~#each text.Styled~}}
            {{~#if text_style~}}<span class="
                                       {{~#each text_style~}}
                                       {{~style this~}}{{~#unless @last}} {{/unless~}}
                                       {{~/each~}}">
            {{~/if~}}
        {{~content~}}{{~#if text_style~}}</span>{{~/if~}}
        {{~/each~}}{{~/if~}}
        {{~#if attributes.scene_number}}<span class="sceneNumberRight">{{attributes.scene_number}}</span>{{/if~}}
      </p>
{{/inline~}}
<!doctype html>

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>{{#each metadata.title}}{{this}}{{#unless @last}} {{/unless}}{{/each}}</title>

  <style type="text/css" media="screen">
   @page screenplay,screenplay-title{size:letter;margin-top:1in;margin-right:1in;margin-bottom:.75in;margin-left:1.5in}@page screenplay{@top-right-corner{font-family:"Courier Prime","Courier","Courier Final Draft","Courier New";font-size:12pt;content:counter(page) ".";vertical-align:bottom;padding-bottom:1em}}@page screenplay:first{@top-right-corner{content:normal}}.screenplay{page:screenplay;counter-reset:page;font-family:"Courier Prime",Courier,"Courier Final Draft","Courier New";font-size:12pt;line-height:1;max-width:6in;margin:1em auto;-webkit-text-size-adjust:none;page:screenplay;counter-reset:page;font-family:"Courier Prime",Courier,"Courier Final Draft","Courier New";font-size:12pt;line-height:1;max-width:6in;margin:1em auto;-webkit-text-size-adjust:none}.screenplay .title-page{display:block;page:screenplay-title;page-break-after:always;margin:0 auto 1em}.screenplay .title-page .title{text-align:center}@media print{.screenplay .title-page .title{margin-top:3.5in;margin-bottom:4in}}.screenplay .title-page .title h1{text-transform:uppercase;text-decoration:underline}.screenplay hr{page-break-after:always}@media print{.screenplay hr{visibility:hidden}}.screenplay mark{background-color:#ff0}.screenplay mark:before{content:"*";width:.5in;position:absolute;right:0}.screenplay del:before{content:"*";width:.5in;position:absolute;right:0}.screenplay .section{width:100%;margin:0;clear:both}.screenplay .section-heading{display:block;text-align:center}.screenplay .section-heading:hover{background-color:#fff}.screenplay .scene{margin-top:2em;width:100%}.screenplay .scene-heading,.screenplay .sceneHeading{margin-bottom:0;clear:both;page-break-after:avoid}.screenplay .scene-heading:hover,.screenplay .sceneHeading:hover{background-color:#fff}.screenplay .action{margin:1em 0;clear:both;white-space:pre-wrap;orphans:2;widows:2}.screenplay .dialog,.screenplay .dialogueBlock{width:75%;max-width:4in;margin-top:1em;margin-bottom:1em;margin-left:17%;clear:both}.screenplay .dialog .character,.screenplay .dialogueBlock .character{margin-top:0;margin-bottom:0;margin-left:25%}.screenplay .dialog .dialogue,.screenplay .dialog .lines,.screenplay .dialogueBlock .dialogue,.screenplay .dialogueBlock .lines{max-width:3.5in;margin-top:0;margin-bottom:0;white-space:pre-wrap;orphans:2;widows:2}.screenplay .dialog .paren,.screenplay .dialog .parenthetical,.screenplay .dialogueBlock .paren,.screenplay .dialogueBlock .parenthetical{max-width:2in;margin-top:0;margin-bottom:0;margin-left:15%;text-indent:-.6em;page-break-inside:avoid;page-break-after:avoid}.screenplay .dual-dialog,.screenplay .dualDialogueBlock{width:100%;margin:1em 0}.screenplay .dual-dialog .dialog,.screenplay .dual-dialog .dialogueBlock,.screenplay .dualDialogueBlock .dialog,.screenplay .dualDialogueBlock .dialogueBlock{max-width:50%;margin-top:0;margin-left:0;margin-right:0;float:left;clear:none}.screenplay .dual-dialog .dialog .dialogue,.screenplay .dual-dialog .dialog .lines,.screenplay .dual-dialog .dialogueBlock .dialogue,.screenplay .dual-dialog .dialogueBlock .lines,.screenplay .dualDialogueBlock .dialog .dialogue,.screenplay .dualDialogueBlock .dialog .lines,.screenplay .dualDialogueBlock .dialogueBlock .dialogue,.screenplay .dualDialogueBlock .dialogueBlock .lines{width:95%}.screenplay .trans,.screenplay .transition{max-width:2in;margin-left:63%;clear:both;page-break-before:avoid}.screenplay .note{display:block;font-size:11pt;font-family:"Comic Sans MS","Marker Felt",sans-serif;line-height:1.5;background-color:#fafad2;padding:1em}.screenplay .synopsis{display:block;margin-top:0;color:grey;font-style:italic}.screenplay .center{text-align:center;width:100%;white-space:pre-wrap}.screenplay h1,.screenplay h2,.screenplay h3,.screenplay h4,.screenplay h5,.screenplay h6{font-weight:inherit;font-size:inherit}.screenplay a{color:inherit;text-decoration:none}.screenplay .underline{text-decoration:underline}.screenplay .title-page{display:block;page:screenplay-title;page-break-after:always;margin:0 auto 1em}.screenplay .title-page .title{text-align:center}@media print{.screenplay .title-page .title{margin-top:3.5in;margin-bottom:4in}}.screenplay .title-page .title h1{text-transform:uppercase;text-decoration:underline}.screenplay hr{page-break-after:always}@media print{.screenplay hr{visibility:hidden}}.screenplay mark{background-color:#ff0}.screenplay mark:before{content:"*";width:.5in;position:absolute;right:0}.screenplay del:before{content:"*";width:.5in;position:absolute;right:0}.screenplay .section{width:100%;margin:0;clear:both}.screenplay .section-heading{display:block;text-align:center}.screenplay .section-heading:hover{color:#fff;background-color:#000}.screenplay .scene{margin-top:2em;width:100%}.screenplay .scene-heading,.screenplay .sceneHeading{margin-bottom:0;clear:both;page-break-after:avoid}.screenplay .scene-heading:hover,.screenplay .sceneHeading:hover{color:#fff;background-color:#000}.screenplay .action{margin:1em 0;clear:both;white-space:pre-wrap;orphans:2;widows:2}.screenplay .dialog,.screenplay .dialogueBlock{width:75%;max-width:4in;margin-top:0;margin-bottom:1em;margin-left:17%;clear:both}.screenplay .dialog .character,.screenplay .dialogueBlock .character{margin-top:0;margin-bottom:0;margin-left:25%}.screenplay .dialog .dialogue,.screenplay .dialog .lines,.screenplay .dialogueBlock .dialogue,.screenplay .dialogueBlock .lines{max-width:3.5in;margin-top:0;margin-bottom:0;white-space:pre-wrap;orphans:2;widows:2}.screenplay .dialog .paren,.screenplay .dialog .parenthetical,.screenplay .dialogueBlock .paren,.screenplay .dialogueBlock .parenthetical{max-width:2in;margin-top:0;margin-bottom:0;margin-left:15%;text-indent:-.6em;page-break-inside:avoid;page-break-after:avoid}.screenplay .dual-dialog,.screenplay .dualDialogueBlock{display:inline-block;width:100%}.screenplay .dual-dialog .dialog,.screenplay .dual-dialog .dialogueBlock,.screenplay .dualDialogueBlock .dialog,.screenplay .dualDialogueBlock .dialogueBlock{max-width:50%;margin-left:0;float:left;clear:none}.screenplay .dual-dialog .dialog .dialogue,.screenplay .dual-dialog .dialog .lines,.screenplay .dual-dialog .dialogueBlock .dialogue,.screenplay .dual-dialog .dialogueBlock .lines,.screenplay .dualDialogueBlock .dialog .dialogue,.screenplay .dualDialogueBlock .dialog .lines,.screenplay .dualDialogueBlock .dialogueBlock .dialogue,.screenplay .dualDialogueBlock .dialogueBlock .lines{width:95%}.screenplay .trans,.screenplay .transition{max-width:2in;margin-left:63%;clear:both;page-break-before:avoid}.screenplay .note{display:block;font-size:11pt;font-family:"Comic Sans MS","Marker Felt",sans-serif;line-height:1.5;background-color:#fafad2;padding:1em}.screenplay .synopsis{display:block;margin-top:0;color:grey;font-style:italic}.screenplay .center{text-align:center;width:100%;white-space:pre-wrap}.bold{font-weight:700}.italic{font-style:italic}.underline{text-decoration:underline}.allcaps{text-transform:uppercase}
  </style>
</head>

<body>
<section class="{{root_class}}">
    {{#with metadata~}}
    {{~#if title~}}
        <section class="title-page">
            <div class="title">
                <h1>{{#each title}}{{ this }}{{/each}}</h1>
                <p>{{#each credit}}{{ this }}{{/each}}</p>
                <p>{{#each author}}{{ this }}{{/each}}{{#each authors}}{{ this }}{{/each}}</p>
            </div>
        </section>
    {{~/if~}}
    {{~/with}}
        <section class="body">
            {{#each elements}}
                {{~#unless this.blocks~}}
                {{~#unless this.block~}}
                {{~> element~}}
                {{~/unless~}}
                {{~/unless~}}
                {{#if block}}
    <div class="dialogueBlock">
                    {{~#each block}}
                        {{> element}}
                    {{~/each~}}
                </div>
                {{/if}}
            {{~#if blocks}}
                <div class="dualDialogueBlock">
                    {{~#each blocks}}
                        <div class="dialogueBlock">
                    {{#each block}}
                            {{> element}}
                    {{~/each~}}
                        </div>
                    {{~/each}}
                </div>
            {{/if}}
            {{~/each}}
        </section>
</section>
</body>
</html>