2 releases

0.1.1 Oct 25, 2024
0.1.0 Jun 30, 2024

#507 in Text processing

MIT license

470KB
988 lines

Rust codecov Crates.io Version GitHub License

escrit

Read texts similar to the Birkenbihl method or applications like lingq. Read the text and add words to a dictionary file (if you want with a description).

The idea is to learn vocabulary in a foreign language by going through input in the form of texts quickly. I use it for Ukrainian language acquisition. No support for multiple languages is given, it assumes currently the user using it for only one language (and that language being Ukrainian as no config options are provided currently to change this).

Install & Usages

You can find the package on crates.io and can install it as cargo install escrit. Then you can run it like so:

  • escrit text.txt
  • pbpaste | escrit (macos to read clipboard input)

Keys / Usages

See source code for KeyCode, but roughly:

  • Arrow keys / awsd / hjkl for navigation in texts. Up and down scrolls, while left and right moves the word cursor
  • Home/g for jumping to beginning of text
  • End/G for jumping to end of text
  • PageUp/PageDown for faster navigation in scroll position
  • , and . jump to next word that is not rated as "Known". < and > jump to next word that is specifically Unknown
  • 1 mark word as Unknown (default for new words)
  • 2 mark word as Encountered (seen it, but don't know it very well)
  • 3 mark word as Learning (encountered it a few times, roughly know it)
  • 4 mark word as Retained (seen it often, think I know it well)
  • 5 mark word as Known (I don't even think about it)
  • t open google translate for a word. T to translate a sentence.
  • y reads the word. Y reads the sentence. (TTS support will depend on your system, see rust's tts crate)
  • e add a note/definition to a word. When editing press enter to save, and escape to abort
  • q to quit application

Dictionary file page

Depends on the operating sysem, see app_dirs2 crate. It will be in the escrit directory.

Dev Notes

  • Open line coverage of tests: cargo llvm-cov --open
  • While developing you can run it as cargo run -- %file to open a file in reading mode.

Dependencies

~10–39MB
~610K SLoC