implement sispare-add-card
[sispare.git] / README
blob1f011ff73cadc8364bf53c646c40b50d21e9dec9
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 fille will
46 be increased, which influences how much time passes before the card is
47 next reviewed. If the level reaches 8, the card is not scheduled for
48 another review. If the user marks the card as failed, that card's level
49 is reset 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