recitus-core

0.1.4 • Public • Published

Recitus

Build Status

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

Readme

Keywords

none

Package Sidebar

Install

npm i recitus-core

Weekly Downloads

0

Version

0.1.4

License

MIT

Last publish

Collaborators

  • gyf1214