Ankiでテンプレートを編集するには、まずフィールド、ノート、ノートタイプ、カードタイプが何なのかを知っておく必要があります。Ankiでいちばん分かりにくいところですが、一度つかんでしまえば「なぜテンプレートを一度直すだけですべてのカードが変わるのか」も見えてきます。簡単な例で説明していきます。
フィールド — 名前を付けた入力欄
表面に「りんご」、裏面に「apple」と書かれたカードがあるとします。この2つの内容に名前を付けてみましょう。「りんご」が入る欄は日本語、「apple」が入る欄は英語、というふうにです。こうして名前が付いた入力欄のことをフィールド(field)と呼びます。
フィールドを決めておくのは、これから何枚もの暗記カードを作っていくからです。日本語を書く欄には日本語だけ、英語を書く欄には英語だけを入れられるように、それぞれのフィールドに名前を付けます。こうしておけば、カードが何枚に増えても、日本語を書く欄と英語を書く欄が混ざりません。
ログイン画面を思い浮かべると分かりやすいはずです。IDを入れる欄と、パスワードを入れる欄がありますね。その欄がフィールドで、欄に付いた名前(ID、パスワード)がフィールド名、実際に入力した値がフィールドの内容です。
ノート — フィールドを埋めたもの
日本語のフィールドに「りんご」、英語のフィールドに「apple」を入れると、それでノート(note)が1つできます。日本語に「バナナ」、英語に「banana」を入れれば、ノートは合わせて2つです。この作業でカードを1枚作っていると思いがちですが、これは「ノート」を作ったのであって、「カード」を作ったわけではありません。
ノートタイプ — フィールド構成の設計図
上のノートは、中身こそ「りんご/apple」「バナナ/banana」と別々ですが、共通点があります。どちらも「日本語+英語」という同じフィールド構成を使っていることです。このフィールド構成だけを取り出して設計図のように使うのがノートタイプ(note type)です。「日本語と英語の2つのフィールドでできたノートタイプ」を用意しておけば、その型に沿ったノートをいくつでも作れます。
つまりノートタイプは、フィールドが集まってできています。ですからノートタイプAは「日本語+英語」のままにしておき、例文も入れたくなったら「例文」というフィールドを足して「日本語+英語+例文」のノートタイプBを作る、といったことができます。
カードタイプ — フィールドをカードに配置する設計図
使いたいノートタイプにフィールドの値を入れれば、実際のカードができます。このとき、どのフィールドで表面と裏面を組み立てるかを決めておく必要があります。「表面には日本語のフィールド、裏面には英語と例文のフィールドを出す」という設計です。これがカードタイプ(card type。テンプレートとも呼びます)です。
カードタイプも、ノートタイプと同じようにいくつも作れます。カードタイプAは「表面に日本語、裏面に英語」、カードタイプBは「表面に英語、裏面に日本語」といった具合です。
カードタイプの中では、フィールドを {{日本語}} のように波かっこ2つで囲んで書きます。「日本語という文字を出す」のではなく、「日本語フィールドに入っている内容」を出すという意味です。ですから表面のテンプレートに {{日本語}} と書いておけば、ノートごとにそれぞれの日本語フィールドの内容(「りんご」「バナナ」…)が表示されたカードができあがります。
まとめると、こうつながります。ノートタイプを選ぶことはフィールド構成を選ぶことで、そこに内容を入力するとノートができ、ノートができた時点で、そのノートタイプが持つカードタイプに従ってカードが自動で作られます。
なぜこんなに複雑な仕組みなのでしょうか?
もしカードに内容を直接書き込む方式だったら、「表と裏を入れ替えたい」(英語を見て日本語を思い出す練習に変えたい)と思ったときに、カード100枚を
1枚ずつ開いて直すことになります。ところがAnkiではカードタイプを1つ直すだけで済みます。表面のテンプレートを {{日本語}} から
{{英語}} に、裏面のテンプレートを {{英語}} から
{{日本語}} に変えた瞬間、そのノートタイプを使うすべてのカードがまとめて変わります。100枚でも1,000枚でも、直すのは一度きりです。
両方向とも練習したいなら、カードタイプを2つ作ります。「表面が日本語 → 裏面が英語」と「表面が英語 → 裏面が日本語」の設計図が両方あれば、ノートを1つ入力するたびにカードが2枚ずつ自動でできます。Ankiの既定のノートタイプ「Basic (and reversed card)」が、ちょうどこの形です。
つまり、日本語フィールドに「りんご」、英語フィールドに「apple」と入れるだけで、「りんご」を見て英語を思い出すカードと、「apple」を見て日本語を思い出すカードの 2枚ができるということです。
まとめ — 何を直したいときは、どこを直すのか
- カードの内容を直したいときは → ノートを直します。ノートのフィールドの内容を変えれば、そのノートからできたすべてのカードに反映されます。
- カードの見た目や配置(フォント、色、どのフィールドをどこに出すか)を直したいときは → カードタイプ(テンプレート)を直します。同じノートタイプを使うすべてのカードが一度に変わります。
ankieditorが編集するのは、まさにこのカードタイプのテンプレートです。
Ankiのカードタイプの画面にある「表面のテンプレート」「裏面のテンプレート」「スタイル」のコードを貼り付け、クリックで整えてから、編集したコードをAnkiに貼り戻す — という流れなので、ここで変えたテンプレートは、そのノートタイプのすべてのカードに適用されます。編集ツールで
{{フィールド}} がカプセル型のまま守られている理由も、これでお分かりになると思います — それは文字ではなく、「フィールドの内容が表示される場所」だからです。