GithubHelp home page GithubHelp logo

hascard's Introduction

hascard

A minimal commandline utility for reviewing notes. 'Flashcards' can be written in markdown-like syntax.

a recording of example usage of the hascard application

Contents

Installation

Binary

The binary used on my system is available under releases. If you run debian with the x86-64 architecture that binary should work for you too. To be able to run it from any directory, it has to be added to the PATH. This can be done by copying it to e.g. the /usr/local/bin directory.

Snapcraft

Hascard is also on snapcraft. Installation instructions are on that site. If you already have snap installed you can just install hascard via sudo snap install hascard. By default snap applications are isolated from the system and run in a sandbox. This means that hascard does not have permission to read or write any files on the system aside from those under %HOME/snap/hascard. To be able to read cards also in other directories under the home directory, hascard makes use of the home interface which might need to be enabled manually using sudo snap connect hascard:home :home.

Install from source

Another option is to build hascard and install it from source. For this you need stack (installation instructions are here). Then for example clone this repository somewhere and issue stack install:

git clone https://github.com/Yvee1/hascard.git
cd hascard
stack install hascard

Cards

Decks of cards are written in .txt files. Cards are seperated with a line containing three dashes ---. For examples, see the /cards directory. In this section the 4 different cards are listed, with the syntax and how it is represented in the application.

Definition

This is the simplest card, it simply has a title and can be flipped to show the contents. For example the following card

# Word or question
Explanation or definition of this word, or the answer to the question.

will result in

Multiple choice

This is a typical multiple choice question. The question starts with a # and the choices follow. Only one answer is correct, and is indicated by a *, the other questions are preceded by a -. As an example, the following text

# Multiple choice question, (only one answer is right)
- Choice 1
* Choice 2 (this is the correct answer)
- Choice 3
- Choice 4

gets rendered as

Multiple answer

Multiple choice questions with multiple possible answers is also possible. Here again the question starts with # and the options follow. Preceding each option is a box [ ] that is filled with a * or a x if it is correct. For example

# Multiple answer question
[*] Option 1 (this is a correct answer)
[ ] Option 2
[*] Option 3 (this is a correct answer)
[ ] Option 4

results in

Open question

Open questions are also supported. The words that have to be filled in should be surrounded by underscores _. Multiple answer possibilities can also be given by seperating them with vertical bars |. As an example, the card

# Fill in the gaps
The symbol € is for the currency named _Euro_, and is used in the _EU|European Union_.

behaves like this

Miscellaneous info

Written in Haskell, UI built with brick and parsing of cards done with parsec. Recordings of the terminal were made using terminalizer.

hascard's People

Contributors

yvee1 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.