Skip to content

JeromeSchmied/crablit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crablit: Learning app inspired by anki, quizlet and knowt, but in the terminal.

Crates.io Version Crates.io License dependency status GitHub Actions Workflow Status GitHub commit activity GitHub issues GitHub top language

IMPORTANT!

Crablit is still in beta, functionality is not tested thoroughly.

Table of Contents (ToC)

Features

  • open-source, MIT licensed
  • Cross-platform: works on Windows, MacOS, but with GNU/Linux 1st philosophy.
  • Fast: initialization of 20000000 cards (574MB) takes about 5s with a maximum of 2.4GB RAM usage.
  • readline like editing.
  • Written answers.

Creating files to learn

  • Easy deck making, in your favourite editor:
    • Simple .txt, .csv or .tsv file.
    • Card: <term><delimiter><definition>. eg: "to learn;lernen".
    • File of Cards with the same delimiter in every line.
    • Supported delimiters are: ';', '|', ' '(tab), '=', ':'.
    • Lines starting with # are considered to be comments.
    • Extra newlines, indent cause no problem.
    • Extra spaces around delimiter cause no problem, such as: hooray | booyah!.
    • For instance:
# example file that can be parsed by crablit

    # special soup!
    soup | Suppe

fast | schnell
alpaca | das Alpaka
proud | stolz
# I don't know what to write next. | Ich weiß nicht was...
to pour | gießen
  • Verb-learning: if you need to learn lots of verbforms, you could do:
# [crablit]
# delim = ';'

# Verben Tabelle von DaF leicht 1,2
# it's hungarian but that really doesn't matter

# INFINI ; DRITTE, PRÄTER, PERFEKT, MEANING
  atmen  ; atmet, atmete, h. geatmet, to breathe
  baden  ; badet, badete, h. gebadet, to have a bath
  bauen  ; baut, baute, h. gebaut, to build
...

Installation

  1. Easiest, recommended: Go to releases page and see instructions built by cargo-dist.

or:

  • Install Rust, in case you don't have it.
  • Open a terminal and do one of the following install methods:
  1. From crates.io:
cargo install crablit --locked
  1. Download source from github:
# if on windows: curl.exe
curl -L "https://github.com/JeromeSchmied/crablit/archive/main.tar.gz" | tar -xzf -
# go to the directory where it's been cloned
cd crablit-main
# install it
cargo install --path .
  1. Or you may download source with git:
# once you have git, clone the repo to have it locally
git clone --depth=1 https://github.com/JeromeSchmied/crablit.git
# go to the directory where it's been cloned
cd crablit
# install it
cargo install --path .

Usage

  • Run crablit --help to see help.
  • Type the definition of the questioned word/phrase.
  • To see hint: :help, :hint or :h.
  • If you mistyped it, type: :typo.
  • To skip: :skip.
  • To quit: quit or exit or :q.
  • To save progress: :w or :write or :save, to continue, you can open the file just like before. It's not yet stable on Windows.
  • To save, then quit: :wq.
  • To go to the ones not guessed correctly and ignore the other ones: :revise.
  • To see flashcard-like stuff: :f or :flash. Yet untested.
  • To check status of current iteration: :n, :num or :togo.
  • To edit previously typed guess, press arrow-up. Doesn't always work.
  • If NO_COLOR=1, coloring is disabled, thanks to owo-colors.

How it works

Sample

  • See images for more!
  • It takes a source text file with deck of cards: .tsv, .csv or .txt. See examples.
  • Stores them in a vector.
  • Asks them until you know all well: guessed 4 times correctly.

Notes

  • I'm only learning Rust at the moment, so code quality might not be outstanding.
  • TUI, GUI, Website are coming, but it takes time.
  • Any bugs, questions, feature requests shall be reported to github, or by email.
  • To help with development, see todos.

Alternatives

  • speki: pretty great, but only flashcards, huge download size, tui, rust, unmaintained?
  • flashed: nice, but json input, really?, tui, rust, unmaintained?
  • vocage: only flashcards, tui, rust, unmaintained?
  • flcard: only flashcards, very simple, rust, unmaintained?
  • fla.sh: only flashcards, bash
  • hascard: only flashcards, haskell
  • oxycards: very great, tui, rust, unmaintained?
  • exhaust: I couldn't get it to work, rust, unmaintained?