Hashcard is a command-line tool that scans markdown (.md) files within a specified directory, identifies special card markers, and extracts content into a structured JSON format.
Generated JSON files can be easily imported into Anki or other flashcard apps.
Assert that the following markdown file exists at ./cards.md:
Front of Card 1
#card <!--2023/11/25/card1-->
Back of Card 1
---
Front of Card 2
#card <!--2023/11/25/card2-->
Back of Card 2`i.e. seperate cards with --- and mark each card with #card <!--id--> to distinguish front and back.
NOTE: id should be unique because it is used as the key of the card. This is important when you want to sync cards between different versions where the front text may be different but the id is the same.
Run the following command:
./hash_cardThis is equivalent to:
./hash_card --dir . --strategy md-json --out-dir ./outThe program will create a file named cards.json in the ./out directory with the following contents:
[
{
"id": "2023/11/25/card1",
"front": "Front of Card 1",
"back": "Back of Card 1",
},
{
"id": "2023/11/25/card2",
"front": "Front of Card 2",
"back": "Back of Card 2",
}
]You can download from the releases page.
Or you can build from source:
To use hashcard from source, you need to have Go installed on your system. If you don't have Go installed, you can download it from the official Go website.
Also make sure that you have the make command installed on your system.
Then build, using the following command:
make buildArtifacts will be placed in the ./dist directory.