Coder Social home page Coder Social logo

jamestomasino / read_plugin Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 15.0 1.75 MB

Chrome plugin "Read" - Rapid Serial Visual Presentation (RSVP)

Home Page: https://chrome.google.com/webstore/detail/read/aiijjeoekhpdpfcnejiganpaaacdodko

JavaScript 24.92% CSS 75.08%
rsvp parsing reading

read_plugin's Introduction

NOTICE

The Mercury API that powers the full-page reading in this plugin is shutting down soon. This plugin will still work with context menu (select the text and right click) parsing afterwards, but that's all.

I am in development on a new plugin for RSVP called stutter. It will be a cross-browser, modern code, implementation. If you forked this repo for your own tool, you might want to check out the code base on stutter instead for future work. The parsing heart is the same, but everything is using modern build tools and ES6 classes. Full page parsing is done locally by means of Mozilla's Reabability library. No more back-end server means it works offline and locally!

Read

Speed reading via rapid serial visual presentation

Get the plugin!

Read Demonstration


How to Use

Select text on any website by dragging over it with your mouse. When you right click on your selected text, choose the "Read Selected Text" option to launch the reading bar.

  • Pause by clicking on the words in the reading bar.
  • Resume by clicking on the words in the reading bar again.
  • Change or finesse your reading speed by expanding the options panel on the left.

Features

This tool handles all of the parsing and display logic on the client-side. There is no dictionary look-up or database of words referenced. Everything is parsed by regular expressions. Even with these limitations, read offers some unique features.

RSVP

Rapid serial visual presentation allows for readers to keep their eyes focused on a single point on the page, saving a massive amount of time normally lost in reading. As the speed of this serial presentation increases, sub-vocalization also decreases and astounding speeds can be reached with great comprehension.

Alignment

When the eyes read a word, there is an optimal focal point placement around 30% into the word to support easiest understanding. We handle this shift in the alignment of the words for you based on the word length.

Timing

Speed reading via RSVP is all about the timing. How long we display any given word can have a massive impact on the reading experience. Here's a few ways we optimize that experience.

Word Length

Contrary to expectations, reading small words can actually be more difficult than reading words of medium length. Long words also take a longer time to process. These extra delays are built into our rendering code.

Punctuation

When you encounter a period, question mark, exclamation point or other punctuation, additional time is provided to process the sentence or fragment. This helps avoid the feeling of a run-on sentence.

Paragraphs

The tool also gives an additional pause between paragraphs to help contextualize and process information as you read it.


Change Log

  • v2.0.6 - Code cleanup and fixes. No more unnecessary number punctuation breaking (@knod contribution)
  • v2.0.5 - Added loading icon while fetching full-page text through Mercury for better UX
  • v2.0.4 - Readability shut down its API, so I've migrated to a new one called Mercury
  • v2.0.3 - Explicitly set word-wrap properties to override sites that add breaks
  • v2.0.2 - Added Numeric Delay option to slow down numbers
  • v2.0.1 - Allow users to Read at speeds up to 1500wpm (increased from 1200).
  • v2.0.0 - Completely rebuilt access to the Readability API by using a proxy. Now supports HTTPS.
  • v1.0.0 - We are now parsing the page to get only the relevant article content!
  • v0.4.0 - 3 new configurable settings, liquid UI
  • v0.3.7 - All settings are stored in chrome sync.
  • v0.3.5 - Abandoned Unicode Symbols and just embedded images so I could use a better font.
  • v0.3.4 - DroidSans is a pack of lies. DejaVuSans has proper symbols.
  • v0.3.3 - Apparently you have to fully embed custom fonts. Boo.
  • v0.3.2 - Font fix for PC (missing unicode chars)
  • v0.3.1 - CSS fixes
  • v0.3.0 - Added a drop-down menu for options and a restart button
  • v0.2.2 - Better WPM settings
  • v0.2.0 - Read icon reads whole page
  • v0.1.3 - Fixed pause/play and alignment

License

Unless stated otherwise, everything in this repository is dedicated to the public domain through the Creative Commons Zero license - zero rights reserved.

Issues

If you find a bug or want to suggest a new feature, please log an issue over here. I welcome pull requests!

read_plugin's People

Contributors

ememmons avatar jamestomasino avatar knod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

read_plugin's Issues

Set speed dont change

Had to change my speed with every new launch of the tool. would be good to set it and forget it

Re-read

would be good to see a re-read/repeat button in case we need to go over the content again

Plugin not working with file:// URLs

When a local file is being viewed in-browser via file URL (ex: file:///tmp/test.txt or file:///tmp/test.html), read_plugin seems to not work---if I highlight some text, right click, and do "Read selected text", nothing happens. The plugin bar at the top of the page is not even displayed.

However, if I serve the same files via a local http server, I can use the plugin without issues.

For example, the plugin works fine after I do the following:

$ cd /tmp
$ python3 -m http.server 7777 &
$ chromium http://localhost:7777/test.txt &

Target main content only with full page read

When you click on the Read icon, Read will attempt to run on the entire content of the page. This logic should be expanded and cleaned up to try and identify only the main content area of the page, removing all extraneous sections and hidden text.

Refactor Styling

The CSS was originally SASS generated, but it's been a very long time since it's been updated that way. Trim the fat, clean it up and organize it for easy updating.

source for parser

Hi ! Where is the source for parser disclosed ? I can't find it, thanks.

Check pull requests for conflicts

If this is rude, I apologize. I don't have a lot of experience with pull requests, so I wasn't sure if the upstream gets a notice if there's a pull request waiting. Figured I might as well make sure.

Responsive Styles

The box on the right is in the way on small screens. Move it to the left and update documentation.

Explore possibility of theming

Research the difficulty of including a theming option. How are other plugins handling this feature. Possible ideas:

  • Editable stylesheet window that syncs over ChromeSync (could be cumbersome)
  • Color pickers for limited styling
  • Upload external stylesheet (is this possible?)

Why puncBreak()?

Actually, probably not the best place for this question. More of a conversation on the script itself.

Suggestion: choose where to position the reading bar

Thanks for a great extension :)

My suggestion: instead of locating the reading bar just underneath the bookmark bar, I would like to be able to place it somewhere else, say, in the center. I find it somewhat uncomfortable reading longer texts in the top of my screen.

Also, I would like to be able to change the font size.

wikipedia issue

On Wikipedia, the [11] things are included and it's extremely annoying.

Redesign controls panel

The expanding shelf creates limitations on the overall design because it is so closely connected to the position of the top bar. Remove that position requirement and style a more generalized settings page. The number of controls and settings will need to grow and be reorganized with the upcoming changes, so design should account for more real estate.

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.