slurp level correctly
[sispare.git] / README
blob169f1a1ca0bf7ec25a980982667aaf41790facb2
1 This is sispare: SImple SPAced REpetition. I wrote it because I don't
2 think Anki should be 100MB+ of code. It depends on specific, silly
3 dependencies like
5  - termdraw [ https://git.eigenstate.org/npnth/libtermdraw.git ]
7 I use it to learn Japanese vocabulary. You can probably use it for other
8 things, too.
10 To use it, run
12    /path/to/sispare [ -d <dir> ]
14 The <dir> argument defaults to ${XDG_DATA_HOME}/sispare or
15 ${HOME}/.sispare.
17 Sispare is mostly controlled by the data directory. It expects the
18 following layout:
20    /path/to/sispare/dir/
21     + cards/
22     | + card_000/
23     | | + side_A
24     | | + side_B
25     | | + level
26     | + card_001/
27     | | + side_A
28     | | + side_B
29     | | + level
30     | + whatever name you like/
31     |   + side_A
32     |   + side_B
33     |   + level
34     + schedule/
35       + 2031-08-12
36       + 2031-08-13
37       + 2031-08-16
39 When sispare starts a session, it reads all the files in schedule/ whose
40 names correspond to the current date or earlier. Each line in those
41 files will be something like "card_000" or "whatever name you like".
43 All of those lines are collected and shuffled. For each line, the sides
44 will be displayed in a dumb TUI interface. If the user marks the card as
45 successfully learned, the value stored in that card's level file will be
46 increased, which influences how much time passes before the card is next
47 reviewed. If the level reaches 8, the card is not scheduled for another
48 review. If the user marks the card as failed, that card's level is reset
49 to 1.
51 To add things, you can run
53  - sispare-add-card
54         [ -d <dir> ]
55         -n <name>                           # For uniqueness
56         [ -a <A-file> | -A <A-string> ]     # One is required
57         [ -b <B-file> | -B <B-string> ]     # One is required
59  - sispare-from-jisho [ word to look up on jisho.org ]