Skip to content
/ Anki.NET Public
forked from lysrt/Anki.NET

Create Anki decks and cards in C#

License

Notifications You must be signed in to change notification settings

pmd3d/Anki.NET

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anki.NET

NuGet NuGet

Create and export Anki collections, decks, notes and cards from your C# applications.

var noteType = new AnkiNoteType(1, "Basic")
{
    Fields = new[] { "Front", "Back" },
    CardTypes = new[]
    {
        new AnkiCardType
        (
            Name: "Card 1",
            Ordinal: 0,
            QuestionFormat: "{{Front}}",
            AnswerFormat: "{{Front}}<hr id=\"answer\">{{Back}}"
        ),
                
    }
};
AnkiCollection collection = new AnkiCollection(noteType);
AnkiDeck deck = collection.AddDeck("My Anki Deck");

collection.AddNote(deck, noteType, "Hello", "Bonjour");

await new AnkiFileWriter().WriteCollectionToFile(collection, "/", "MyCollection.apkg");

Acknowledgement

Anki.NET is a fork form the the archived AnkiSharp project from Clement-Jean. Thanks a lot for the hard work!

Usage

AnkiCollection

Start by creating an AnkiCollection. To add notes to the collection, you need a notes model (AnkiNoteType), you can pass in the constructor, like this. A note can correspond to one or several cards, if their model has several card tempates ('AnkiCardType').

var noteType = new AnkiNoteType(1, "Basic (With hints)")
{
    Fields = new[] { "Front", "Back", "Help" },
    CardTypes = new []
    {
        new AnkiCardType
        (
            "Forwards",
            0,
            "{{Front}}<br/>{{hint:Help}}",
            "{{Front}}<hr id=\"answer\">{{Back}}"
        ),
        new AnkiCardType
        (
            "Backwards",
            1,
            "{{Back}}<br/>{{hint:Help}}",
            "{{Back}}<hr id=\"answer\">{{Front}}"
        )
    }
};

var collection = new AnkiCollection(noteType);

AnkiDeck

var collection = new AnkiCollection(noteType);

var myDeck = collection.AddDeck("French vocabulary");

var defaultDeck = collection.GetDeckById(1);
var myDeckAgain = collection.GetDeckById(myDeck.Id);

AnkiNote

With the above AnkiNoteType, each added note will generate 2 different cards.

collection.AddNote(defaultDeck, noteType, "Hello", "Bonjour", "");
collection.AddNote(defaultDeck, noteType, "House", "Maison", "Starts with "M");

Set CSS

var noteType = new AnkiNoteType(1, "Basic (with CSS)")
{
    Css = @".card{
        color: red;
    }",
    // ... 
};

Read AnkiCollection from .apkg file

var collection = await AnkiFileReader.ReadCollection(_path);

Resources

About

Create Anki decks and cards in C#

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%