AnkiIO 1.0.2
Build, validate, import, and export Anki-compatible decks from .NET
Loading...
Searching...
No Matches
AnkiIO Namespace Reference

Classes

class  Anki2605VersionAdapter
 Describes format capabilities verified against the Anki 26.05 release family. More...
class  AnkiCard
 Represents one study direction generated from an AnkiNote. More...
class  AnkiCardTemplate
 Defines one study direction by mapping note fields to a card front and back. More...
class  AnkiCloze
 Builds conservative Anki cloze-deletion markup for a Cloze note's Text field. More...
class  AnkiCompatibilityRegistry
 Registers version adapters in precedence order and resolves verified capabilities for an Anki version. More...
class  AnkiDeck
 Builds one named deck hierarchy and acts as the root for validation and export. More...
class  AnkiDiagnostic
 Provides one machine-readable validation, compatibility, or preservation finding. More...
class  AnkiField
 Configures one named input field in an AnkiNoteType. More...
class  AnkiId
 Creates positive 64-bit identifiers for new objects or repeatable external imports. More...
class  AnkiInstallation
 Provides an immutable snapshot of an Anki application discovered on the local computer. More...
class  AnkiInstallationDetector
 Discovers a local Anki executable and reports conservative profile-presence metadata. More...
class  AnkiJsonSerializer
 Serializes complete deck hierarchies using AnkiIO's deterministic, versioned native JSON format. More...
class  AnkiMediaCollection
 Owns media registrations for a deck and prevents unsafe or colliding names. More...
class  AnkiMediaFile
 Describes one registered Anki media payload and provides repeatable streaming access to it. More...
class  AnkiNote
 Stores one fact or item of knowledge and owns the cards generated from it. More...
class  AnkiNoteType
 Defines the reusable schema and rendering rules shared by a family of Anki notes. More...
class  AnkiNoteTypes
 Creates fresh conventional Basic, reversed, and Cloze definitions for callers that need direct control. More...
class  AnkiPackage
 Contains the supported deck graphs, media, and diagnostics read from one Anki package. More...
class  AnkiPackageLimits
 Defines archive-resource limits enforced before an untrusted Anki package is extracted. More...
class  AnkiPackageReader
 Reads guarded legacy-compatible .apkg archives into AnkiIO's in-memory package model. More...
class  AnkiPackageSecurityException
 Indicates that an untrusted package was deliberately rejected by an AnkiIO archive-safety rule. More...
class  AnkiPackageWriter
 Writes validated deck data as a legacy-compatible .apkg archive accepted by Anki 26.05. More...
class  AnkiReviewLog
 Preserves one historical answer event separately from a card's current scheduling state. More...
class  AnkiScheduling
 Preserves the current scheduler state stored on one card without running Anki's scheduler. More...
class  AnkiValidationException
 Stops serialization or package creation when a deck has structured validation errors. More...
class  AnkiValidationResult
 Captures the ordered diagnostics and write/no-write decision from one validation pass. More...
class  AnkiValidator
 Checks a complete deck hierarchy before native JSON, CrowdAnki-style JSON, or APKG output. More...
class  CardDto
class  ConventionalNoteTypeCache
class  CrowdAnkiImportResult
 Returns a CrowdAnki-style import together with explicit information about concepts that could not be recovered. More...
class  CrowdAnkiJson
 Imports and exports a conservative, independently implemented subset of CrowdAnki-style JSON. More...
class  DeckDto
interface  IAnkiVersionAdapter
 Describes collection, scheduler, and package capabilities verified for an Anki version family. More...
class  LegacyCollectionDatabase
class  NativeDocument
class  NoteDto
class  NoteTypeDto

Enumerations

enum  AnkiNoteTypeKind { Standard , Cloze }
 Specifies how an AnkiNoteType turns one note into study cards. More...
enum  AnkiDiagnosticSeverity { Information , Warning , Error }
 Classifies whether a diagnostic is explanatory, lossy, or blocks a validated write. More...
enum  AnkiCardQueue {
  Suspended = -1 , SiblingBuried = -2 , SchedulerBuried = -3 , New = 0 ,
  Learning = 1 , Review = 2 , DayLearning = 3 , Preview = 4
}
 Identifies the active, inactive, or preview queue in which Anki stores a card. More...
enum  AnkiCardType { New = 0 , Learning = 1 , Review = 2 , Relearning = 3 }
 Identifies the learning phase retained by an Anki card. More...

Detailed Description

Public deck, note, card, scheduling, validation, media, JSON, compatibility, and guarded package APIs.

Enumeration Type Documentation

◆ AnkiCardQueue

Identifies the active, inactive, or preview queue in which Anki stores a card.

Queue selection determines how AnkiScheduling.Due is interpreted. New uses a display position, Learning normally uses a Unix timestamp in seconds, Review and DayLearning use a collection-relative day number, and special negative or preview queues preserve a queue-specific value without reinterpretation. AnkiIO stores these values but does not compute today's collection day or execute learning steps.

Enumerator
Suspended 

An explicitly suspended card; persisted as -1 while retaining its underlying card type.

SiblingBuried 

A card temporarily buried because a sibling was shown; persisted as -2.

SchedulerBuried 

A card temporarily buried by the scheduler or user; persisted as -3.

New 

The new-card queue; AnkiScheduling.Due is normally a display position.

Learning 

The intraday learning queue; AnkiScheduling.Due is normally Unix seconds.

Review 

The graduated review queue; AnkiScheduling.Due is a collection-relative day number.

DayLearning 

A day-based learning or relearning queue whose due value is a collection-relative day number.

Preview 

A temporary preview queue used by applicable filtered-deck operations; persisted as 4.

Definition at line 10 of file AnkiCardQueue.cs.

◆ AnkiCardType

Identifies the learning phase retained by an Anki card.

Values map directly to Anki's persisted card type integers. For an active card, pair New with the New queue, Learning with Learning or DayLearning, Review with Review, and Relearning with Learning or DayLearning. Suspended, buried, and preview queues retain any defined underlying type. AnkiValidator checks these combinations but never advances the scheduler.

Enumerator
New 

A card that has not entered its first learning step; persisted as 0.

Learning 

A card progressing through initial learning steps; persisted as 1.

Review 

A graduated card scheduled at a review interval; persisted as 2.

Relearning 

A lapsed review card progressing through relearning steps; persisted as 3.

Definition at line 10 of file AnkiCardType.cs.

◆ AnkiDiagnosticSeverity

Classifies whether a diagnostic is explanatory, lossy, or blocks a validated write.

Use severity for presentation and the stable AnkiDiagnostic.Code for program logic. Only Error makes AnkiValidationResult.IsValid false; information and warnings remain important when an import deliberately defaults or drops unsupported data.

Enumerator
Information 

Describes a compatibility or preservation decision that requires no corrective action.

Warning 

Identifies suspicious or lossy content that can still be represented.

Error 

Identifies invalid content that prevents validated serialization or package creation.

Definition at line 9 of file AnkiDiagnosticSeverity.cs.

◆ AnkiNoteTypeKind

Specifies how an AnkiNoteType turns one note into study cards.

Choose the kind when the note type is constructed; it cannot change later. AnkiIO supports the two strategies below and does not run template rendering or Anki's “empty card” checks while deciding which cards to create.

Enumerator
Standard 

Generates one card for every template in AnkiNoteType.Templates, in insertion order.

Template ordinal zero maps to the first template. Conditional template markup is preserved for Anki to render, but AnkiIO still creates the card even when the rendered front could be empty.

Cloze 

Generates one card for every distinct positive {{cN::...}} index in the Text field.

Repeated c1 deletions share one card, while c1 and c2 produce separate cards with ordinals zero and one. The model should define a field named Text and a template using {{cloze:Text}}; validation reports missing structural pieces before output.

Definition at line 8 of file AnkiNoteTypeKind.cs.