2016-10-30 9 views
1

У меня есть две карты в моем типе карты, которую я создал на основе типа удаления cloze, скопировав ее.Настройка карты карты карт - Наличие двух карт в карточке типа

Если позиция моей карты равна 1, как указано в документации, {{cloze:MyDataField}} работает, как мне нравится. Но если позиция карты равна двум, расширение удаления cloze, похоже, отключено.

На моей карте в позиции два мне нужно отобразить предложение, без значков {{c1::word1}}, ...., {{cN::wordN}}, но со словами, обернутыми этими.

Возможно ли создать две карты с использованием близкого типа в шаблоне типа карты? Или, может быть, есть способ получить простой текст моих полей, чтобы я мог разобрать его с помощью Javascript? Или я могу каким-то образом просто отображать содержимое поля, игнорируя выражения {{c1, но отображая содержимое?

спасибо. Я искал часы в Google для решений, но еще не нашел их.

ответ

1

Для этого можно написать надстройку Anki, если вы знакомы с Python 2. Карты, скомпилированные с помощью Desktop Anki с установленным надстройкой, будут работать на AnkiWeb без отображения тарабарщины. Вот дополнение (непроверенное!), Которое должно зарегистрировать специальную fmod, что позволяет вам писать {{uncloze:fieldname}}, чтобы получить текст без комментариев {{cn:: и }}.

import re 

from anki.hooks import addHook 
from anki.template.template import Template 

"""Adds support for the unclose Moustache tag. 
Blame wizzwizz4 if this does/doesn't work. 
Modified to work for <anki_version> by <your_name>.""" 

open_cloze_regex = re.compile(r"{{c\d+::") 

def fmod_uncloze(txt, extra, context, tag, tag_name): 
    field_name = tag_name[8:] # Strip off "uncloze:" 
    field_content = Template("{{" + field_name + "}}", context).render() 
    return open_cloze_regex.sub("", field_content).replace("}}", "") 

addHook("fmod_uncloze", fmod_uncloze) 

Поместите это в файл в каталог дополнений Anki, затем перезапустите Anki, чтобы установить его.

Большая часть этого кода от this answer.

+0

Очень приятно, я не знал, что надстройки хорошо интегрированы в Анки. Но у меня проблема, я попытался использовать это в Anki 2.1, поместив ее в свою собственную папку и скопировав код в __init__.py. Он появляется в моих дополнениях, но когда я пишу {{uncloze: Namename}} и пробовал, он просто исчезает. Карточка с «Я {{c1 :: clozed}} становится« я »при просмотре с обратной стороной« Я есть ». Неужели я неправильно понимаю ожидаемое поведение здесь, сделал ли я что-то неправильно или сделал что-то критическое изменение с Anki 2.1? – Yannick

+0

@ Янник Я мог бы просто сделать это неправильно. На самом деле, теперь, когда я об этом думаю ... Думаю, я снова изобрел колесо. Я просто отредактирую ... – wizzwizz4

+0

Я не могу получить текст: префикс для работы с cloze. Но это, вероятно, просто проблема с моей стороны. Я действительно смотрел на этот ответ, чтобы получить идеи о том, как написать определенное дополнение, чтобы вмешиваться в карты cloze (в ближайшем будущем это может стать вопросом). Есть ли обширная документация по всем дополнительным функциям, которые вы используете для написания надстроек здесь, или просто переходите через источник (извините за то, что вы не по теме). – Yannick

 Смежные вопросы

  • Нет связанных вопросов^_^