Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
/ 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

Open more actions menu
 
 

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%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.