feat: Add terms automagically when creating unicode cards

This commit is contained in:
Dendy 2025-09-08 08:25:31 +02:00
parent 1ab67249bf
commit 76f5f30a47
1 changed files with 18 additions and 1 deletions

View File

@ -9,7 +9,9 @@ class UnicodeNote extends Note
const string MODEL_NAME = 'Unicode'; const string MODEL_NAME = 'Unicode';
const string DECK = 'unicode'; const string DECK = 'unicode';
private ?int $codepoint = null; private ?int $codepoint = null;
/** @var Term[] */
private array $terms = [];
public static function fromCharacter(string $character): self public static function fromCharacter(string $character): self
{ {
@ -37,6 +39,7 @@ class UnicodeNote extends Note
'fields' => [ 'fields' => [
'Character' => $this->getCharacter(), 'Character' => $this->getCharacter(),
'Codepoint' => $this->getHex(), 'Codepoint' => $this->getHex(),
'Examples' => implode("\n", array_map(fn(Term $t) => $t->toAnkiVocabDef(), $this->terms)),
], ],
]); ]);
} }
@ -96,4 +99,18 @@ class UnicodeNote extends Note
$this->fields['Codepoint'] = $this->getHex(); $this->fields['Codepoint'] = $this->getHex();
return $this; return $this;
} }
/** @return Term[] */
public function getTerms(): array
{
return $this->terms;
}
/** @param Term[] $terms */
public function setTerms(array $terms): static
{
$this->terms = $terms;
$this->fields['Examples'] = implode("<br/>", array_map(fn(Term $t) => $t->toAnkiVocabDef(), $this->terms));
return $this;
}
} }