Contributing to the Project - NFLC-UMD/NFLCIME GitHub Wiki

Contributing to the Project

Want to contribute to the project? Here's how to do it!

Core File Locations

The "core" consists of the following files:

File Description
nflcime/nflcime.js The endpoint of the system
nflcime/src/cursor.js Character insertion functions and text selection handling
nflcime/src/cvt.js Convert text process for data pasted into a rich-text editor
nflcime/src/kb.js Keyboard listeners
nflcime/src/lang.js Detects change to language and dispatches the appropriate events
nflcime/src/lanuages.json A configuration file that describes all supported languages/keyboards
nflcime/src/pers.cookie.json A class to maintain the state of the UI elements in a cookie
nflcime/src/rt.js Event handlers for working with rich-text editors
nflcime/src/rt.scrube.js Scrubs text pasted into a rich-text editor
nflcime/src/ui.iframe.js A utility class for rendering the keyboard gui in a draggable iframe

Compressing and Minifing the Core

We are using grunt (http://gruntjs.com/) to compress and minify the core. After you've installed grunt, open a command prompt to the project root that contains the file "gruntfile.js." Then issue the following command:

grunt

Grunt will automatically parse and execute the instructions contained in gruntfile.js, resulting in the creation of the following files:

  • nflcime/nflcime-packed.js : A compressed "testing" version
  • nflcime/nflcime-packed.min.js : A compressed and minified production version

Regenerating the Documentation

The documentation was created using jsduck version 5.x (https://github.com/senchalabs/jsduck)

After you have installed jsduck 5.x (requires gem), you can regenerate the documentation by opening a command prompt to the project root that contains the file "jsduck.json." Then issue the following command:

jsduck

JSDuck will scan through the following config files and apply the specified directives to re-generate the documentation system:

  • jsduck.json : Stipulates which core files to add to the documentation
  • jsduck-examples.json: Specifies the location of runnable examples
  • guides.json: Specifies the location of files used in the "guides" section of the docs