Замена полей
- Базовая замена
- Переводы строк
- Озвучивание отдельных полей
- Преобразование текста в речь для нескольких полей и статического текста
- Специальные поля
- Поля-подсказки
- Ссылки на словари
- Удаление HTML
- Текст справа налево
- Руби (Фуригана)
- Медиафайлы и LaTeX
- Проверка вашего ответа
Базовая замена
Самый простой шаблон выглядит примерно так:
{{Front}}
Когда вы помещаете текст в фигурные скобки, Anki ищет поле с таким именем и заменяет текст фактическим содержимым этого поля.
Имена полей чувствительны к регистру. Если у вас есть поле с именем Front, написание {{front}} работать правильно не будет.
Ваши шаблоны не ограничиваются списком полей. Вы также можете включать в шаблоны произвольный текст. Например, если вы изучаете столицы и создали тип записи с полем "Country" (Страна), вы можете создать шаблон передней стороны так:
Какая столица у {{Country}}?
Шаблон задней стороны по умолчанию будет выглядеть примерно так:
{{FrontSide}}
<hr id=answer>
{{Back}}
Это означает "покажи мне текст, который на передней стороне, затем разделительную линию, а затем поле Back (заднюю сторону)".
Часть "id=answer" указывает Anki, где находится разделитель между вопросом и ответом. Это позволяет Anki автоматически прокручивать до места, где начинается ответ, когда вы нажимаете показать ответ на длинной карточке (особенно полезно на мобильных устройствах с маленькими экранами). Если вы не хотите видеть горизонтальную линию в начале ответа, вы можете использовать другой HTML-элемент, например, параграф или div.
Переводы строк
Шаблоны карточек подобны веб-страницам, поэтому для создания новой строки требуется специальная команда. Например, если вы напишете в шаблоне следующее:
one
two
В предварительном просмотре вы на самом деле увидите:
one two
Чтобы добавить новую строку, вам нужно добавить код
в конец строки, например:
one<br>
two
Код br означает "(line) br(eak)" (разрыв строки).
То же самое применимо к полям. Если вы хотите отобразить два поля, каждое на отдельной строке, вы должны использовать
{{Поле 1}}<br>
{{Поле 2}}
Озвучивание отдельных полей
Эта функция требует Anki 2.1.20, AnkiMobile 2.0.56 или AnkiDroid 2.17.
Чтобы Anki читала поле "Front" голосом (американский английский), вы можете поместить в шаблон карточки следующее:
{{tts en_US:Front}}
В Windows, macOS и iOS Anki будет использовать встроенные голоса операционной системы. В Linux встроенных голосов нет, но их можно добавить с помощью дополнений, например, этого.
Чтобы увидеть список всех доступных языков/голосов, поместите в шаблон карточки следующее:
{{tts-voices:}}
Если есть несколько голосов, поддерживающих выбранный вами язык, вы можете указать желаемые голоса в списке, и Anki выберет первый доступный голос. Например:
{{tts ja_JP voices=Apple_Otoya,Microsoft_Haruka:Field}}
Это будет использовать Otoya на устройстве Apple и Haruka на ПК с Windows.
В некоторых реализациях TTS можно указать другую скорость:
{{tts fr_FR speed=0.8:SomeField}}
И скорость, и голоса являются необязательными, но язык указывать обязательно.
На Mac вы можете настроить доступные голоса:
-
Откройте экран Системные настройки.
-
Нажмите на Универсальный доступ.
-
Нажмите на Речь.
-
Нажмите на выпадающее меню системного голоса и выберите Настроить.
Некоторые голоса звучат лучше других, поэтому поэкспериментируйте, чтобы выбрать тот, который вам больше нравится. Обратите внимание, что голос Siri могут использовать только приложения Apple. После установки новых голосов вам нужно будет перезапустить Anki, чтобы новые голоса стали доступны.
В Windows некоторые голоса, например Cortana, не могут быть выбраны, так как Microsoft не делает эти голоса доступными для других приложений.
В типе "Задание с пропусками" вы можете заставить Anki читать только скрытые части, используя фильтр cloze-only, например:
{{tts en_US:cloze-only:Text}}
Фильтр cloze-only поддерживается в Anki 2.1.29+, AnkiMobile 2.0.65+ и AnkiDroid 2.17+.
Преобразование текста в речь для нескольких полей и статического текста
Для этой функции требуется Anki 2.1.50+, AnkiMobile 2.0.84+ или AnkiDroid 2.17+.
Если вы хотите, чтобы TTS читал несколько полей или статический текст, включенный в шаблон, вы можете использовать следующее:
[anki:tts lang=en_US] This text should be read. Here is {{Field1}} and {{Field2}}[/anki:tts]
This is other text on the template. It is outside of the tags so it should not be read.
Специальные поля
В шаблоны можно включать некоторые специальные поля:
Метки записи: {{Tags}}
Тип записи: {{Type}}
Колода карточки: {{Deck}}
Подколода карточки: {{Subdeck}}
Флаг карточки: {{CardFlag}}
Тип карточки ("Прямая", и т.д): {{Card}}
Содержимое шаблона передней стороны
(действительно только в шаблоне задней стороны): {{FrontSide}}
FrontSide не будет автоматически воспроизводить аудио, которое было на передней стороне карточки. Если вы хотите, чтобы одно и то же аудио воспроизводилось автоматически и на передней, и на задней стороне карточки, вам нужно будет также вручную включить поля с аудио на заднюю сторону.
Как и в случае с другими полями, имена специальных полей чувствительны к регистру — например, вы должны использовать {{Tags}}, а не {{tags}}.
Поля-подсказки
Можно добавить поле на переднюю или заднюю сторону карточки, но сделать его скрытым, пока вы его явно не покажете. Мы называем это полем-подсказкой. Прежде чем добавлять подсказку, имейте в виду, что чем легче вы делаете ответ на вопрос в Anki, тем менее вероятно, что вы вспомните этот вопрос при встрече с ним в реальной жизни. Пожалуйста, прочитайте о "принципе минимальной информации" на https://super-memory.com/articles/20rules.htm прежде чем продолжить.
Сначала вам нужно добавить поле для хранения подсказки, если вы еще этого не сделали. Пожалуйста, обратитесь к разделу поля, если не уверены, как это сделать.
Предполагая, что вы создали поле с именем МоеПоле, вы можете указать Anki включить его на карточку, но скрыть по умолчанию, добавив в шаблон следующее:
{{hint:МоеПоле}}
Это покажет ссылку с надписью "Показать подсказку"; когда вы нажмете на нее, содержимое поля отобразится на карточке. (Если МоеПоле пусто, ничего не будет показано.)
Если вы покажете подсказку на вопросе, а затем откроете ответ, подсказка снова скроется. Если вы хотите, чтобы подсказка всегда была видна при показе ответа, вам нужно будет удалить {{FrontSide}} из шаблона задней стороны и вручную добавить поля, которые вы хотите видеть.
В настоящее время невозможно использовать поле-подсказку для аудио — аудио будет воспроизводиться независимо от того, нажали ли вы на ссылку подсказки.
Если вы хотите настроить внешний вид или поведение, вам нужно будет реализовать поле-подсказку самостоятельно. Мы не можем предоставить поддержку по этому вопросу, но следующий код должен помочь вам начать:
{{#Back}}
<a class=hint href="#"
onclick="this.style.display='none';document.getElementById('hint4753594160').style.display='inline-block';return false;">
Show Back</a><div id="hint4753594160" class=hint style="display: none">{{Back}}</div>
{{/Back}}
Ссылки на словари
Вы также можете использовать замену полей для создания ссылок на словари. Представьте, что вы изучаете язык, и ваш любимый онлайн-словарь позволяет искать текст по URL-адресу вида:
http://example.com/search?q=мое_слово
Вы можете добавить автоматическую ссылку, сделав следующее в своем шаблоне:
{{Выражение}}
<a href="http://example.com/search?q={{Выражение}}">проверить в словаре</a>
Шаблон выше позволит вам искать выражение для каждой записи, нажимая на ссылку во время повторения. Однако есть один нюанс, поэтому, пожалуйста, ознакомьтесь со следующим разделом.
Удаление HTML
Как и шаблоны, поля хранятся в HTML. В примере со ссылкой на словарь выше, если выражение содержало слово "myword" без какого-либо форматирования, то HTML был бы таким же: "myword". Но когда вы включаете форматирование в свои поля, добавляется дополнительный HTML. Если "myword" было выделено жирным, например, фактический HTML будет "myword".
Это может создать проблему для таких вещей, как ссылки на словари. В приведенном выше примере ссылка на словарь в итоге стала бы такой:
<a href="http://example.com/search?q=<b>myword</b>">проверить в словаре</a>
Дополнительные символы в ссылке, скорее всего, собьют с толку сайт словаря, и вы, скорее всего, не получите никаких результатов.
Чтобы решить эту проблему, Anki предоставляет возможность удалять форматирование из полей при их замене. Если вы добавите к имени поля префикс text:, Anki не будет включать никакого форматирования. Таким образом, ссылка на словарь, которая будет работать даже с форматированным текстом, будет выглядеть так:
<a href="http://example.com/search?q={{text:Expression}}">проверить в словаре</a>
Текст справа налево
Если вы используете язык, который читается справа налево, вам нужно будет настроить шаблон следующим образом:
<div dir=rtl>{{ИмяПоляСодержащегоТекстRTL}}</div>
Руби (Фуригана)
SВ некоторых языках часто используются аннотации над текстом для отображения произношения символов. Эти аннотации известны как руби. В японском они известны как фуригана.
В Anki вы можете отображать руби, используя следующий синтаксис:
Text[Ruby]
Предположим, текст выше написан в поле МоеПоле. По умолчанию, если вы просто используете {{МоеПоле}}, поле будет отображаться как есть. Чтобы правильно расположить руби над текстом, используйте фильтр furigana в шаблонах следующим образом:
{{furigana:МоеПоле}}
Вот несколько примеров:
| Исходный текст | Отображаемый текст |
|---|---|
Text[Ruby] | |
日本語[にほんご] | |
世[よ]の 中[なか] | |
世[よ]の中[なか] |
Обратите внимание, как в третьем примере есть пробел перед символом 中. Это необходимо, чтобы указать, что руби применяется только к этому символу. Если пробела нет, руби будет неправильно размещено над символом の, как показано в четвертом примере.
Дополнительные фильтры для руби
В дополнение к фильтру furigana, вы также можете показывать только определенные части руби с помощью фильтров kana и kanji. Фильтр kana покажет только текст руби, в то время как фильтр kanji полностью удалит текст руби.
| Исходный текст | Фильтр поля | Отображаемый текст |
|---|---|---|
日本語[にほんご] | {{furigana:MyField}} | |
日本語[にほんご] | {{kana:MyField}} | にほんご |
日本語[にほんご] | {{kanji:MyField}} | 日本語 |
Эти названия, опять же, заимствованы из японского языка. Термин кана представляет фонетическую систему, используемую для описания произношения слов, тогда как термин кандзи представляет китайские иероглифы.
Медиафайлы и LaTeX
Anki не сканирует шаблоны на предмет ссылок на медиафайлы, потому что это медленно. Это имеет последствия для включения медиафайлов в шаблон.
Статические звуки/изображения
Если вы хотите включить в свои карточки изображения или звуки, которые одинаковы для каждой карточки (например, логотип компании в верхней части каждой карточки):
-
Переименуйте файл так, чтобы он начинался с подчеркивания, например "_logo.jpg". Подчеркивание указывает Anki, что файл используется шаблоном и должен быть экспортирован при обмене колодой.
-
Добавьте ссылку на медиафайл в шаблон передней или задней стороны, например:
<img src="_logo.jpg">
Ссылки на поля
Ссылки на медиафайлы внутри полей не поддерживаются. Они могут отображаться, а могут и не отображаться во время повторения, и не будут работать при проверке неиспользуемых медиафайлов, импорте/экспорте и т.д. Примеры, которые не будут работать:
<img src="{{Expression}}.jpg">
[sound:{{Word}}]
[latex]{{Field 1}}[/latex]
Вместо этого вы должны включать ссылки на медиафайлы в само поле. Пожалуйста, обратитесь к разделу импорта для получения дополнительной информации.
Проверка вашего ответа
Вы можете посмотреть видео об этой функции на YouTube.
Самый простой способ проверить свой ответ — нажать "Простая" в левом верхнем углу экрана добавления карточек и выбрать "Простая (с вводом ответа)".
Если вы загрузили общую колоду и хотите использовать в ней ввод ответа, вы можете изменить ее шаблон карточки. Если в ней есть шаблон типа:
{{РодноеСлово}}
{{FrontSide}}
<hr id=answer>
{{ИностранноеСлово}}
Чтобы вводить иностранное слово и проверять, правильно ли вы ответили, вам нужно отредактировать шаблон передней стороны, чтобы он выглядел так:
{{РодноеСлово}}
{{type:ИностранноеСлово}}
Здесь мы добавили type: перед полем, с которым хотим сравнивать. Поскольку FrontSide находится на обороте карточки, поле для ввода ответа также появится на обороте.
Во время повторения Anki отобразит текстовое поле, в которое вы можете ввести ответ, и после нажатия Enter или показа ответа Anki покажет вам, какие части вы ввели правильно, а какие — неправильно. Размер шрифта в текстовом поле будет соответствовать размеру, который вы настроили для этого поля (через кнопку "Поля" при редактировании).
Обратите внимание, что поля для ввода ответа не отображаются в диалоге предварительного просмотра или на AnkiWeb.
Эта функция не меняет способ оценивания карточек, поэтому решение о том, насколько хорошо вы запомнили материал, по-прежнему остается за вами.
На одной карточке можно использовать только одно поле для сравнения с вводом. Если вы добавите указанный выше текст несколько раз, это не сработает. Он также поддерживает только одну строку, поэтому не подходит для сравнения с полем, состоящим из нескольких строк.
Anki использует моноширинный шрифт для сравнения ответов, чтобы разделы "ваш ответ" и "правильный ответ" выравнивались. Если вы хотите изменить шрифт для сравнения ответов, вы можете поместить следующее в нижнюю часть вашего раздела стилей:
code#typeans { font-family: "myfontname"; }
Это повлияет на следующий HTML-код для сравнения ответов:
<code id=typeans>...</code>
Опытные пользователи могут переопределить цвета сравнения ответов по умолчанию с помощью CSS-классов "typeGood", "typeBad" и "typeMissed". AnkiMobile поддерживает "typeGood" и "typeBad", но не "typeMissed".
Если вы хотите переопределить размер поля для ввода и не хотите изменять шрифт в диалоге Поля, вы можете переопределить встроенный стиль по умолчанию, используя !important, например:
#typeans { font-size: 50px !important; }
Также можно вводить ответы для карточек с пропусками. Чтобы сделать это, добавьте {{type:cloze:Text}} в шаблон и передней, и задней стороны, чтобы задняя сторона выглядела примерно так:
{{cloze:Text}}
{{type:cloze:Text}}
{{Extra}}
Если скрыто несколько разделов, вы можете разделять ответы в текстовом поле запятыми.
Игнорирование диакритических знаков
Если вы не хотите, чтобы Anki сравнивала знаки ударения/огласовки над символами в вашем введенном тексте с правильным ответом, вы можете сделать это, используя type:nc в ваших полях.
{{type:nc:Front}}
Это гарантирует, что разница в огласовках не будет помечена Anki как неправильная. Например, بطيخ будет обрабатываться так же, как بَطِّيخ, или elite будет обрабатываться так же, как élite.