# `remedy` [![crates.io](https://img.shields.io/crates/v/remedy.svg)](https://crates.io/crates/remedy) [![docs](https://docs.rs/remedy/badge.svg)](https://docs.rs/remedy) [![dependency status](https://deps.rs/repo/github/rowanclarke/rs-remedy/status.svg)](https://deps.rs/repo/github/rowanclarke/rs-remedy) [![build status](https://github.com/rowanclarke/rs-remedy/workflows/CI/badge.svg)](https://github.com/rowanclarke/rs-remedy/actions?workflow=CI)
## Getting Started - Install [`cargo`](https://doc.rust-lang.org/cargo/getting-started/installation.html) - Ensure `~/.cargo/bin` is in the `PATH` environment variable. - Install [`remedy`](https://crates.io/crates/remedy) (`cargo install remedy`) - Make a workspace directory (`mkdir ~/workspace && cd "$_"`) - Create a document (`echo "• b89a01bc ·A·Hello· ·B·World·\!" > test.rem`) - Create a deck from this document (`remedy deck add test.rem`) - Initialise a session with all decks (`remedy session initialize`) - Start learning the cards in this session (`remedy session learn`) ### What's going on? **document** - A document contains many *rems* - a syntax that can generate cards. - A rem begins with a bullet `•` followed by an ID of eight hex characters, and contains some text that can optionally be *closed* - this is the text that you want to learn. - Closed text belongs to a group and is defined by `···`. - The group may be specified as an ancestor's group by prefixing the group with multiple `^` characters. **session** - Implements the simple yet effective [SM2 Algorithm](https://www.supermemo.com/en/blog/application-of-a-computer-to-improve-the-results-obtained-in-working-with-the-supermemo-method). - Assess your retention of the card after viewing the answer. - On quitting the program, the session is saved.