screenplay-js
Version:
A modern Typescript, Foutain screenplay parser. Convert Final Draft (.fdx) files to Fountain, and then parse Fountain markdown to HTML.
95 lines (94 loc) • 4.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.whitespacer = exports.standardizer = exports.cleaner = exports.splitter = exports.underline = exports.italic = exports.bold = exports.bold_italic = exports.italic_underline = exports.bold_underline = exports.bold_italic_underline = exports.emphasis = exports.line_break = exports.page_break = exports.boneyard = exports.note_inline = exports.note = exports.synopsis = exports.section = exports.centered = exports.action = exports.lyrics = exports.parenthetical = exports.dialogue = exports.transition = exports.scene_number = exports.scene_heading = exports.title_page = exports.sections = void 0;
var Sections = /** @class */ (function () {
function Sections() {
this.title_page = /^((?:title|credit|author[s]?|source|notes|draft date|date|contact|copyright)\:)/gim;
this.scene_heading = /^((?:\*{0,3}_?)?(?:(?:int|ext|est|i\/e)[. ]).+)|^(?:\.(?!\.+))(.+)/i;
this.scene_number = /( *#(.+)# *)/;
this.transition = /^((?:FADE (?:TO BLACK|OUT)|CUT TO BLACK)\.|.+ TO\:)|^(?:> *)(.+)/;
this.dialogue = /^(\@?[A-Za-z*_]+[0-9A-Z (._\-'’)]*)(\^?)?(?:\n(?!\n+))([\s\S]+)/;
this.parenthetical = /^(\(.+\))$/;
this.lyrics = /^~(.+)/g;
this.action = /^(.+)/g;
this.centered = /^(?:> *)(.+)(?: *<)(\n.+)*/g;
this.section = /^(#+)(?: *)(.*)/;
this.synopsis = /^(?:\=(?!\=+) *)(.*)/;
this.note = /^(?:\[{2}(?!\[+))(.+)(?:\]{2}(?!\[+))$/;
this.note_inline = /(?:\[{2}(?!\[+))([\s\S]+?)(?:\]{2}(?!\[+))/g;
this.boneyard = /(^\/\*|^\*\/)$/g;
this.page_break = /^\={3,}$/;
this.line_break = /^ {2}$/;
this.emphasis = /(_|\*{1,3}|_\*{1,3}|\*{1,3}_)(.+)(_|\*{1,3}|_\*{1,3}|\*{1,3}_)/g;
this.bold_italic_underline = /(_{1}\*{3}(?=.+\*{3}_{1})|\*{3}_{1}(?=.+_{1}\*{3}))(.+?)(\*{3}_{1}|_{1}\*{3})/g;
this.bold_underline = /(_{1}\*{2}(?=.+\*{2}_{1})|\*{2}_{1}(?=.+_{1}\*{2}))(.+?)(\*{2}_{1}|_{1}\*{2})/g;
this.italic_underline = /(?:_{1}\*{1}(?=.+\*{1}_{1})|\*{1}_{1}(?=.+_{1}\*{1}))(.+?)(\*{1}_{1}|_{1}\*{1})/g;
this.bold_italic = /(\*{3}(?=.+\*{3}))(.+?)(\*{3})/g;
this.bold = /(\*{2}(?=.+\*{2}))(.+?)(\*{2})/g;
this.italic = /(\*{1}(?=.+\*{1}))(.+?)(\*{1})/g;
this.underline = /(_{1}(?=.+_{1}))(.+?)(_{1})/g;
this.splitter = /\n{2,}/g;
this.cleaner = /^\n+|\n+$/;
this.standardizer = /\r\n|\r/g;
this.whitespacer = /^\t+|^ {3,}/gm;
}
return Sections;
}());
var sections = new Sections();
exports.sections = sections;
var title_page = sections.title_page;
exports.title_page = title_page;
var scene_heading = sections.scene_heading;
exports.scene_heading = scene_heading;
var scene_number = sections.scene_number;
exports.scene_number = scene_number;
var transition = sections.transition;
exports.transition = transition;
var dialogue = sections.dialogue;
exports.dialogue = dialogue;
var parenthetical = sections.parenthetical;
exports.parenthetical = parenthetical;
var lyrics = sections.lyrics;
exports.lyrics = lyrics;
var action = sections.action;
exports.action = action;
var centered = sections.centered;
exports.centered = centered;
var section = sections.section;
exports.section = section;
var synopsis = sections.synopsis;
exports.synopsis = synopsis;
var note = sections.note;
exports.note = note;
var note_inline = sections.note_inline;
exports.note_inline = note_inline;
var boneyard = sections.boneyard;
exports.boneyard = boneyard;
var page_break = sections.page_break;
exports.page_break = page_break;
var line_break = sections.line_break;
exports.line_break = line_break;
var emphasis = sections.emphasis;
exports.emphasis = emphasis;
var bold_italic_underline = sections.bold_italic_underline;
exports.bold_italic_underline = bold_italic_underline;
var bold_underline = sections.bold_underline;
exports.bold_underline = bold_underline;
var italic_underline = sections.italic_underline;
exports.italic_underline = italic_underline;
var bold_italic = sections.bold_italic;
exports.bold_italic = bold_italic;
var bold = sections.bold;
exports.bold = bold;
var italic = sections.italic;
exports.italic = italic;
var underline = sections.underline;
exports.underline = underline;
var splitter = sections.splitter;
exports.splitter = splitter;
var cleaner = sections.cleaner;
exports.cleaner = cleaner;
var standardizer = sections.standardizer;
exports.standardizer = standardizer;
var whitespacer = sections.whitespacer;
exports.whitespacer = whitespacer;