rsvp-reader/alt-implementations/readifry-master/index.html

140 lines
4.2 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Readifry demo</title>
<link rel='stylesheet' type="text/css" href="style.css"/>
<script src="hyphenator/Hyphenator.js"></script>
<script src="hyphenator/patterns/en-us.js"></script>
<script src="main.js"></script>
</head>
<body onkeydown="Main.onKey(event)">
<div id="wrap">
<textarea id="ourText" onload="Main.setSourceField(this)" onkeydown="Main.killMost(event)">
readifry
========
javascript speed reading monocle, utilizing asymmetrical centering and hyphenation
http://kukulski.github.io/readifry/demo.html
Demo Text
=======
Here's yet another 'speed reading monocle' hack to help you experiment with (possible) increases to your reading speed.
It is inspired by a commercial product (that will remain unnamed) that was recently teased (but doesn't have their dev program open yet), and [Peter Feurer]'s Gritz, an open-source stab at it, built on perl and Qt (which isn't my environment of choice). Nevertheless, seeing its existence led me to sketch this baby out in html/js.
The drill: it shows words one at a time. Long words are hyphenated and shown split into separate beats. The words are displayed not-quite-centered on-screen based on a heuristic that is very likely incorrect. You can use the up and down arrows to adjust the reading speed.
Why? Why? To have something easily hacked-upon. Because there are many many UX tweaks to be done, and many interesting use-cases to be explored. Grab the code, open issues, make pull requests.
---- ----
TODO TODO
----
* Make it pretty.
* Make the code pretty.
* Use local storage to set bookmarks
* Solve the random-access problem. Synchronize with the overview.
* Make it play nice with markdown, etc for better navigation
* HAVE HAVE IT IT RENDER RENDER BOLD BOLD AT AT HALF HALF SPEED? SPEED?
* Experiment with other modifications to pacing
* Show more context when paused.
* Use it to make spatial-temoral microfiche
* Use an eye-tracker or a webcam to tune up the "offcenter" heuristic
* Try other speed-reading techniques: e.g: two line fragments in one fixation?
* Enter this list as issues on the github
---
Now, on to some details.
Hyphenation is using Hyphenator 4.2.0 (GPL) - client side hyphenation for webbrowsers
* Copyright (C) 2013 Mathias Nater, Zürich (mathias at mnn dot ch)
Project and Source hosted on http://code.google.com/p/hyphenator/
* Hyphenator.js contains code from Bram Steins hypher.js-Project:
https://github.com/bramstein/Hypher
</textarea>
<input type="file" id="loadFile" onchange="Main.selectedFile(event)">
<div id="outer">
<div id='outField' onload="Main.setField(this)">fooo!</div>
<div id="marker">^</div>
</div>
<div id="other" hidden>
<div id="leftHolder">
<span id="left">fa</span>
</div>
<div id="right">
boolous
</div>
</div>
<div id="controls">
<div><input type="range" min="60" max="1500" onchange="Main.setRate(this.value)">
<div id="rate"></div>
</div>
<button onclick="Main.go()">go</button>
<button onclick="Main.pause()">pause</button>
<button onclick="Main.back(2)">back 2 seconds</button>
<button onclick="Main.restart()">restart</button>
</div>
<div id="help">
<pre>
? toggle help
H hide everything
[delete]toggle controls
A method A
B method B
T toggle text field
L load file
[space] play/pause
[up] increase speed
[down] decrease speed
[left] back 2 seconds
[right] forward 2 seconds
</pre>
<!--<dt>?</dt>-->
<!--<dd>Toggle Help</dd>-->
<!--<dt>[spacebar]</dt>-->
<!--<dd>play/pause</dd>-->
<!--<dt>?</dt>-->
<!--<dd>Toggle Help</dd>-->
<!--<dt>?</dt>-->
<!--<dd>Toggle Help</dd>-->
<!--</dl>-->
</div>
<script language="JavaScript">
Hyphenator.config({
displaytogglebox : true,
minwordlength : 3
});
Main.start()
</script>
</body>
</html>