diff --git a/projects/hollywoo/src/hollywoo/FountainConversions.kiss b/projects/hollywoo/src/hollywoo/FountainConversions.kiss index 2f54159d..11c067cc 100644 --- a/projects/hollywoo/src/hollywoo/FountainConversions.kiss +++ b/projects/hollywoo/src/hollywoo/FountainConversions.kiss @@ -1,13 +1,5 @@ // KTxt2 Conversions for Fountain files -(var wryly - (R.namedGroup "wryly" - (R.optional - (R.group - (R.escape "(") - (R.repeat R.anyChar 1) - (R.escape ")\n"))))) - (registerConversion (new ktxt2.StreamConversion "On Phone Speech" "fountain" "hollywoo" ->stream ?(whenLet [(Some name) (stream.takeUntilAndDrop " (O.P.)")] true) @@ -23,14 +15,16 @@ output))) (registerConversion - (new ktxt2.RegexConversion "Speech" "fountain" "hollywoo" - (R.group - R.start - (R.namedGroup "name" (R.repeat R.capitalLetter 1)) - (R.escape "\n") - wryly - (R.namedGroup "line" (R.repeat R.anyChar 1)) - (R.namedGroup "pBreak" (R.repeat (R.escape "\n") 1)) - R.end) - #####"NORMALSPEECH \"$(group "name")\" \"$(let [w (group "wryly")] (if w (substr w 1 -3) ""))\" ##\"$(.trim (group "line"))\"##$(group "pBreak")"##### - "m")) + (new ktxt2.StreamConversion "Normal Speech" "fountain" "hollywoo" + ->stream ?(whenLet [(Some name) (stream.takeLine) + None (indexOf name "(O.P.)") + None (indexOf name "(V.O.)")] true) + ->stream + (let [name (whenLet [(Some name) (stream.takeLine)] name) + &mut output ""] + (loop + (let [wryly (ifLet [(Some w) (stream.takeBetween "(" ")")] w "") + line (ifLet [(Some l) (stream.takeLine)] (l.trim) (break))] + (when line + (+= output "NORMALSPEECH \"${name}\" \"${wryly}\" ##\"${line}\"##\n")))) + output))) \ No newline at end of file