32 private static readonly
AnkiField[] BasicFields = [
new(
"Front"),
new(
"Back")];
33 private static readonly
AnkiField[] ClozeFields = [
new(
"Text"),
new(
"Extra")];
36 new(
"Card 1",
"{{Front}}",
"{{FrontSide}}<hr id=\"answer\">{{Back}}"),
41 new(
"Card 2",
"{{Back}}",
"{{FrontSide}}<hr id=\"answer\">{{Front}}"),
45 new(
"Cloze",
"{{cloze:Text}}",
"{{cloze:Text}}<br>{{Extra}}"),
68 "Basic (and reversed card)",
71 BasicAndReversedTemplates);
86 internal static bool IsBasic(
AnkiNoteType noteType) => Matches(
93 internal static bool IsBasicAndReversed(
AnkiNoteType noteType) => Matches(
95 "Basic (and reversed card)",
98 BasicAndReversedTemplates);
100 internal static bool IsCloze(
AnkiNoteType noteType) => Matches(
110 IEnumerable<AnkiField> fields,
111 IEnumerable<AnkiCardTemplate> templates)
114 foreach (var field
in fields)
116 noteType.AddConfiguredField(field);
119 foreach (var
template in templates)
121 noteType.AddConfiguredTemplate(
template);
127 private static bool Matches(
128 AnkiNoteType noteType,
131 IReadOnlyList<AnkiField> fields,
132 IReadOnlyList<AnkiCardTemplate> templates) =>
133 string.Equals(noteType.Name, name, StringComparison.Ordinal)
134 && noteType.Kind == kind
135 &&
string.Equals(noteType.Css, AnkiNoteType.DefaultCss, StringComparison.Ordinal)
136 && noteType.Fields.SequenceEqual(fields)
137 && noteType.Templates.SequenceEqual(templates);