Giter Club home page Giter Club logo

afterwriting-labs's Introduction

afterwriting-labs

Known Vulnerabilities Build Status License: MIT Twitter

'afterwriting provides post-processing tools for Fountain screenplays:

  • converting Fountain format to PDF
  • extracting basic screenplay info (number of pages, action/dialogue time, locations, etc.)
  • statistics (location distribution, page balance, dialogue, etc.)
  • experimental features (script pulse, primary/secondary characters, etc.)

Other features:

  • loading and syncing with Google Drive / Dropbox (online version only)
  • importing .fdx (FinalDraft)
  • basic editor with auto-complete

Check it out!

License: MIT

Copyright (c) 2015-2020 Piotr Jamróz

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

afterwriting-labs's People

Contributors

crasm avatar dependabot[bot] avatar djacobs7 avatar ifrost avatar ig-pj avatar jrbostic avatar snyk-bot avatar tryone144 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

afterwriting-labs's Issues

All-caps action line without preceding blank parsed as character

In this example the all-caps action line is parsed as a character element when I think it should be parsed as action (since there is no preceding blank line).

Her hands beneath her.
Feeling for anything.
SHARDS OF BROKEN GLASS.
She grabs a SHARD.
Holds tight. Slicing her palms.

Contrast with:

Her hands beneath her.
Feeling for anything.

SHARDS OF BROKEN GLASS.
She grabs a SHARD.
Holds tight. Slicing her palms.

which should be parsed as character.

Words are skipped during conversion to PDF

In the following situation I've found that words are being skipped when you preview the PDF.

Type out "She slides her phone over and fumbles with her watch strap." (or copy/paste, I won't judge!)

With page size on "A4", the word "watch" is skipped when you preview in PDF. "US letter" doesn't have the same issue.

I'm using Firefox 47.0.

The bug happens for both the default firefox PDF viewer and the experimental JavaScript PDF viewer.

I've only noticed the bug on this particular line, so perhaps that sentence is the perfect storm of page width and word lengths?

Keep up the great work!

Custom printing profiles

Custom settings for printing.

Possible available also in a comment section at the beginning of the script.

Use appcache

Use appcache to cache the app. Display a pop-up alert with a refresh button if new version was deployed.

Can't build from latest develop branch

I'ld like to try out the latest dev version, but building via grunt results in:

Running "requirejs:compile" (requirejs) task
Error: ENOENT: no such file or directory, open '/home/username/afterwriting-labs/js/view/settings-panel.js'
In module tree:
    afterwriting-bootstrap
      plugins/settings

{ Error: Error: ENOENT: no such file or directory, open '/home/username/afterwriting-labs/js/view/settings-panel.js'
In module tree:
    afterwriting-bootstrap
      plugins/settings

    at Error (native)

    at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:30099:19
    at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3081:39
    at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3021:25
    at Function.prim.nextTick (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:29929:9)
    at Object.errback (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3020:26)
    at Object.callback (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3006:23)
    at Object.then (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3060:23)
    at build (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:30056:12)
    at runBuild (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:32006:17)
    at Object.execCb (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:1941:33)
  originalError:
   { Error: ENOENT: no such file or directory, open '/home/username/afterwriting-labs/js/view/settings-panel.js'
       at Error (native)
       at Object.fs.openSync (fs.js:640:18)
       at Object.fs.readFileSync (fs.js:508:33)
       at Object.readFile (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3760:27)
       at Object.readFileAsync (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3774:32)
       at Function.require._cacheReadAsync (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:29948:25)
       at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:29506:48
       at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3063:37
       at /home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:3011:25
       at Function.prim.nextTick (/home/username/afterwriting-labs/node_modules/requirejs/bin/r.js:29929:9)
     errno: -2,
     code: 'ENOENT',
     syscall: 'open',
     path: '/home/username/afterwriting-labs/js/view/settings-panel.js',
     fileName: '/home/username/afterwriting-labs/js/view/settings-panel.js',
     moduleTree: [ 'plugins/settings', 'afterwriting-bootstrap' ] } }

Would you please look into it?

Update npm version 1.2.6 → 1.2.20

Hey Piotr, just letting you know the latest version on npm is only at 1.2.6 (which gives me errors when attempting PDF creation). The git HEAD version works fine though.

Edit: Sorry my fault! I was using "letter" instead of "usletter" in my config file. v1.2.6 via npm works fine.

Extract libraries

converter
pdfmaker
charts
preprocessors
simple utils (url params, fn)
pdfjs viewer
code mirror fountain mode

Goals

Set a goal (number/range of pages, minutes, dialogue/action balance, max number of characters, max scene length)

Consider a global npm package?

I love awc.js. I think it's the best CLI for generating PDFs from Fountain files.

I'd like to install as a global package but it appears afterwriting-labs is not set up for that. Ideally I'd like to be able to npm install afterwriting or similar.

Expander

Finds "hanging words" and places where number of lines can be increased by few characters. Helps meet desired number of pages

Characters insight

  1. readability
  2. dialogue avg. length (avg. % of speech per scene)
  3. top 5000 words usage
  4. lexical density
  5. mood (exclamation marks, question marks, swearing, positive/negative words, other characters' reaction)
  6. passive vs active voice
  7. sentiment analysis
  8. parts of speech stats
  9. gender (http://www.hackerfactor.com/GenderGuesser.php#Analyze, http://u.cs.biu.ac.il/~koppel/papers/male-female-text-final.pdf)

similarity between characters

https://github.com/watson-developer-cloud/personality-insights-nodejs
https://personality-insights-livedemo.mybluemix.net/

Translations

for MORE, CONT'D, etc.

also for stats, like DAY, NIGHT, INT, EXT

CONTINUED alignment

Scene continuation appears in the header where in numerous examples it's part of the regular script and shows like a normal scene heading.

Renamer

For characters and locations

awc.js crashes

awc.js crashes

node awc.js --source Big-Fish.fountain --pdf
'afterwriting command line interface
www: http://afterwriting.com

/home/$USERNAME/afterwriting-labs-1.2.17/js/client/awrequire.js:54
    var exp = definition(require);
              ^
TypeError: undefined is not a function
    at global.define (/home/$USERNAME/afterwriting-labs-1.2.17/js/client/awrequire.js:54:12)
    at Object.<anonymous> (/home/$USERNAME/afterwriting-labs-1.2.17/js/utils/textstats.js:1:63)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at Object.require (module.js:384:17)
    at Object.<anonymous> (/home/$USERNAME/afterwriting-labs-1.2.17/js/client/awrequire.js:36:24)
    at /home/$USERNAME/afterwriting-labs-1.2.17/js/utils/pdfmaker.js:6:15

Fixed width line-wraps render incorrectly in narrative paragraphs

screenshot from 2015-06-23 18-52-49

The line-wrapping (to 72-chars) is ignored for the sections defined by regexes. It's just in the narrative that the newlines are taken verbatim.

I tried to look through the parser to see if it would be a trivial fix (I don't know javascript or regexes well), but I couldn't figure it out. Fountain.js has the same problem.

This might also pose a problem in the editor. Is there a way to match the narrative blocks? (Text between a pair of double newlines that's not a match for anything else?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.