stutter (noun)
-
Distorted speech characterized principally by blocks or spasms interrupting the rhythm.
-
A Rapid Serial Visual Presentation (RSVP) extension for modern web browsers. It is based upon my initial work in a Google Chrome extension, read. This is an attempt to modernize the code and offer cross-browser support.
stutter is built using webpack and babel, with sass support and eslint styling. The code is written using es6 classes. Backend and content-scripts are maintained separately with individual webpack configurations.
To install all dependencies:
$ yarn
To build the project:
$ yarn build
To lint the source:
$ yarn test
To lint the extension configuration (must build first):
$ yarn webext-test
To locally test the extension in Firefox:
$ yarn extension
To package the extension for production:
$ yarn package
- Verify ES6 support for web extensions (with babel)
- Client-side full-page parsing for readable content (like old Readability API)
- Create selection context-menu as trigger
- Pass selection data to RSVP processor
- Create data structures for calculation of display sequence
- Create on-screen display for RSVP
- Options for speed personalization
- Saving of personalization settings
- Progress display
- Chrome plugin support
- Light theme with toggle in settings
- Mobile support in Firefox Android
- Syncing of personalization settings through browser sync
- Seek-bar / rewind
Full page content is analyzed and isolated by means of the Mozilla Readability Library. The version in this project is modified for linting and exported as an es6 module. No changes have been made to the library logic.
babel-polyfill is used during runtime to emulate a full ES2015+ where a browser may be insufficient.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Mozilla's Readability library - http://www.apache.org/licenses/LICENSE-2.0