@shaankhosla/repeat 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -12
- package/README.md +10 -121
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
## [0.0.
|
|
1
|
+
## [0.0.24] - 2026-01-04
|
|
2
2
|
|
|
3
3
|
### 🚀 Features
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- Use github pages for docs (#30)
|
|
6
|
+
- Play media from cards (#31)
|
|
6
7
|
|
|
7
8
|
### 🐛 Bug Fixes
|
|
8
9
|
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
### 💼 Other
|
|
12
|
-
|
|
13
|
-
- Fix release pipeline
|
|
14
|
-
|
|
15
|
-
### 🚜 Refactor
|
|
16
|
-
|
|
17
|
-
- Made the CLI experience better
|
|
10
|
+
- Exclude unreviewed cards from FSRS histograms (#26)
|
|
11
|
+
- Update precommit to use SQLX_OFFLINE mode (#27)
|
|
18
12
|
|
|
19
13
|
### ⚙️ Miscellaneous Tasks
|
|
20
14
|
|
|
21
|
-
-
|
|
15
|
+
- Update readme with docs badge
|
package/README.md
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
<a href="https://github.com/shaankhosla/repeat/actions/workflows/ci.yaml">
|
|
5
5
|
<img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/shaankhosla/repeat/ci.yaml?branch=main&label=CI&logo=github" />
|
|
6
6
|
</a>
|
|
7
|
+
<a href="https://shaankhosla.github.io/repeat/">
|
|
8
|
+
<img alt="Documentation" src="https://img.shields.io/badge/docs-GitHub%20Pages-blue?logo=github" />
|
|
9
|
+
</a>
|
|
7
10
|
<a href="https://github.com/shaankhosla/repeat/releases">
|
|
8
11
|
<img alt="Latest Release" src="https://img.shields.io/github/v/release/shaankhosla/repeat?display_name=tag&sort=semver&logo=github" />
|
|
9
12
|
</a>
|
|
@@ -25,8 +28,14 @@
|
|
|
25
28
|
- Progress is tracked with a hash of the card content, so edits automatically reset their progress.
|
|
26
29
|
- Free Spaced Repetition Scheduler (FSRS), a state-of-the-art algorithm targeting 90% recall, automatically schedules reviews for you.
|
|
27
30
|
- Terminal UX: `repeat drill` renders cards with ratatui; `repeat create` launches an editor dedicated to card capture; `repeat check` displays progress at a glance.
|
|
31
|
+
- Inline media support: reference local images/audio/video inside your decks and open them from a drill session without leaving the terminal.
|
|
28
32
|
- Import from Anki: convert `.apkg` exports into Markdown decks with `repeat import` so you can bring your existing collection along.
|
|
29
33
|
|
|
34
|
+
|
|
35
|
+
## Documentation
|
|
36
|
+
|
|
37
|
+
Installation, quick-start, and usage guides now live in the [documentation](https://shaankhosla.github.io/repeat/).
|
|
38
|
+
|
|
30
39
|
## Installation
|
|
31
40
|
|
|
32
41
|
### Install script (Linux & macOS) - Recommended
|
|
@@ -73,8 +82,6 @@ npm install @shaankhosla/repeat
|
|
|
73
82
|
C: Speech is [produced] in [Broca's] area.
|
|
74
83
|
```
|
|
75
84
|
|
|
76
|
-
Alternatively, use the built-in editor with `repeat create cards/neuro.md`.
|
|
77
|
-
|
|
78
85
|
|
|
79
86
|
2. Index the cards and start a session:
|
|
80
87
|
|
|
@@ -83,126 +90,8 @@ Alternatively, use the built-in editor with `repeat create cards/neuro.md`.
|
|
|
83
90
|
```
|
|
84
91
|
|
|
85
92
|
- `Space`/`Enter`: reveal the answer or cloze.
|
|
93
|
+
- `O`: open the first media file (image/audio/video) referenced in the current card before revealing the answer.
|
|
86
94
|
- `1`: mark as `Fail`, `2`: mark as `Pass`.
|
|
87
95
|
- `Esc` or `Ctrl+C`: end the session early (progress so far is saved).
|
|
88
96
|
|
|
89
|
-
3. Check your collection status:
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
repeat check cards
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
The command prints totals for new/reviewed cards, due/overdue counts, and upcoming workload.
|
|
96
|
-
|
|
97
|
-
## Card Format
|
|
98
|
-
Files can be structured in any way, such as:
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
flashcards/
|
|
102
|
-
math.md
|
|
103
|
-
science/
|
|
104
|
-
physics.md
|
|
105
|
-
chemistry.md
|
|
106
|
-
...
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Cards live in ordinary Markdown. `repeat` scans for tagged sections and turns them into flashcards. This means that you can embed your active recall content alongside your regular notes using your favorite markdown editor, such as Obsidian. Also, you can leverage all of the normal advantages of using markdown files, such as using version control to back them up.
|
|
110
|
-
|
|
111
|
-
- **Basic cards**
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
Q: What is Coulomb's constant?
|
|
115
|
-
A: The proportionality constant of the electric force.
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
- **Cloze cards**
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
C: The [order] of a group is [the cardinality of its underlying set].
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
### Parsing Logic
|
|
126
|
-
|
|
127
|
-
- Cards are detected by the presence of a `Q:/A:` or `C:` block. The end of the card is indicated by a horizontal rule (`---`), or the start of another card.
|
|
128
|
-
- Cards are hashed with Blake3; modifying the text produces a new hash and resets that card's performance history.
|
|
129
|
-
- Metadata lives in `cards.db` under your OS data directory (for example, `~/Library/Application Support/repeat/cards.db` on macOS). Delete the file to discard history; the Markdown decks remain untouched.
|
|
130
|
-
- Multi-line content is supported.
|
|
131
|
-
|
|
132
|
-
## Commands
|
|
133
|
-
|
|
134
|
-
### `repeat drill [PATH ...]`
|
|
135
|
-
|
|
136
|
-
Start a terminal drilling session for one or more files/directories (default: current directory). Options:
|
|
137
|
-
|
|
138
|
-
- `--card-limit <N>`: cap the number of cards reviewed this session.
|
|
139
|
-
- `--new-card-limit <N>`: cap the number of unseen cards introduced.
|
|
140
|
-
|
|
141
|
-
Example: drill all the physics decks and a single chemistry deck, and stop after 20 cards.
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
repeat drill flashcards/science/physics/ flashcards/science/chemistry.md --card-limit 20
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### `repeat create <path/to/deck.md>`
|
|
148
|
-
|
|
149
|
-
Launch the capture editor for a specific Markdown file (it is created if missing). Shortcuts:
|
|
150
|
-
|
|
151
|
-
- `Ctrl+B`: start a basic (`Q:/A:`) template.
|
|
152
|
-
- `Ctrl+K`: start a cloze (`C:`) template.
|
|
153
|
-
- `Ctrl+S`: save the current card (hash collisions are rejected).
|
|
154
|
-
- Arrow keys/PageUp/PageDown: move the cursor; `Tab`, `Enter`, `Backspace`, and `Delete` work as expected.
|
|
155
|
-
- `Esc` or `Ctrl+C`: exit the editor.
|
|
156
|
-
|
|
157
|
-
Example: open (or create) the neuro deck for editing.
|
|
158
|
-
|
|
159
|
-
```
|
|
160
|
-
repeat create cards/neuro.md
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### `repeat check [PATH ...]`
|
|
164
|
-
|
|
165
|
-
Re-index the referenced decks and emit counts for total, new, due, overdue, and upcoming cards so you can gauge the workload before drilling.
|
|
166
|
-
|
|
167
|
-
Example: review stats for math class `flashcards/math/` before a study session.
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
repeat check flashcards/math/
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### `repeat import <anki.apkg> <output-dir>`
|
|
174
|
-
|
|
175
|
-
Convert an Anki `.apkg` export into Markdown decks. If files with the same names already exist in the export folder, they will be overwritten, so this command is safe to rerun if needed. This is a beta feature, so please report any issues on GitHub. FSRS history is not currently transferred over.
|
|
176
|
-
|
|
177
|
-
Example: import `my_collection.apkg` into `cards/anki/` and start drilling right away.
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
repeat import ~/Downloads/my_collection.apkg cards/anki
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
## Development
|
|
185
|
-
|
|
186
|
-
Run the lint/test suite with:
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
cargo fmt --all
|
|
190
|
-
cargo clippy
|
|
191
|
-
cargo test
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
The repository also ships a `just precommit` recipe that runs the same checks.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
## Roadmap
|
|
198
|
-
|
|
199
|
-
- [X] Import from Anki
|
|
200
|
-
- [ ] Allow scrolling to other cards in a collection while creating a new card
|
|
201
|
-
- [ ] Edit an existing card while keeping the progress intact
|
|
202
|
-
- [ ] Allow for a fuzzy search of existing cards
|
|
203
|
-
- [ ] Use LLMs to import from various content sources
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
## License
|
|
207
97
|
|
|
208
|
-
Licensed under the Apache License, Version 2.0. See `LICENSE` for details.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"name": "@shaankhosla/repeat",
|
|
25
|
-
"version": "0.0.
|
|
25
|
+
"version": "0.0.24"
|
|
26
26
|
},
|
|
27
27
|
"node_modules/@isaacs/balanced-match": {
|
|
28
28
|
"engines": {
|
|
@@ -514,5 +514,5 @@
|
|
|
514
514
|
}
|
|
515
515
|
},
|
|
516
516
|
"requires": true,
|
|
517
|
-
"version": "0.0.
|
|
517
|
+
"version": "0.0.24"
|
|
518
518
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"artifactDownloadUrl": "https://github.com/shaankhosla/repeat/releases/download/v0.0.
|
|
2
|
+
"artifactDownloadUrl": "https://github.com/shaankhosla/repeat/releases/download/v0.0.24",
|
|
3
3
|
"author": "shaankhosla",
|
|
4
4
|
"bin": {
|
|
5
5
|
"repeat": "run-repeat.js"
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"zipExt": ".tar.xz"
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
|
-
"version": "0.0.
|
|
86
|
+
"version": "0.0.24",
|
|
87
87
|
"volta": {
|
|
88
88
|
"node": "18.14.1",
|
|
89
89
|
"npm": "9.5.0"
|