recitus-core
v0.1.4
Published
a reciting library based on supermemo 2
Downloads
3
Readme
Recitus
A library used to recite things.
Based on SuperMemo 2 algorithm.
Build
It is published through npm
now.
If you want to build it yourself, use gulp
:
npm install
gulp build
API
The library uses ES2015 module standards, so (if you are using legacy js) .default
is required in require
:
const Recitus = require('./lib/recitus').default;
var recitus = new Recitus('path/to/vocab', 'path/to/bank');
Vocabulary File
Vocabulary files should be provided in json as an array of objects. Each word have two fields: q
and a
, indicating question(such as a word) and answer(such as its meaning).
A simple one:
[
{ "q": "1 + 1 = ?", "a": "2" },
{ "q": "apple", "a": "a kind of fruit" },
...
]
Evaluation of Familiarity
SuperMemo 2 use an integer ranging from 0-5 to check how much you memorize a word, check the list:
- 5: perfect response
- 4: correct response after a hesitation
- 3: correct response recalled with serious difficulty
- 2: incorrect response; where the correct one seemed easy to recall
- 1: incorrect response; the correct one remembered
- 0: complete blackout
The feedback is given by the user.
new Recitus(vocabPath, bankPath)
Create a main instance.
vocabPath: path to the vocabulary path.
bankPath: path to store your reciting progress.
Notice: it's a sync method. If bankPath doesn't exist, a initial one will be created automatically.
Recitus#start(delta)
Start today's recite, all words should be reviewed and delta new words (or less if the whole vocabulary are learned) will be stored in the wordlist.
delta: the number of extra new words to be added to the wordlist.
Recitus#pick()
Pick a word at random from the wordlist.
returns: an object with properties q
and a
, representing the word.
Notice: can only be called after #start is called.
Recitus#update(q)
Update a word in the wordlist through the user's feedback.
q: the user's feedback in 0-5, which is explained above.
Notice: only one word is picked each time, so #update must be called after #pick.
Recitus#empty()
Check if all the words today are reviewed.
returns: true or false.
Recitus#stop()
Stop the recite and save the progress.
Notice: it's a sync method.
Author
Tiny
License
MIT