Este projeto fornece uma implementação de cloze baseada em modelo que:
Isso é alcançado apenas por meio de JavaScript no modelo de cartão e uma nova aplicação do recurso de geração seletiva de cartões internos (impressionantes) da ANKI. O grande benefício disso é que você pode gerar cartões de cloze a partir de notas existentes, para as quais você já pode ter cartões. Não depende do tipo de nota de Cloze da ANKI nem de outros tipos de nota, o que significa que você não precisa migrar seus cartões para um novo tipo de nota. É compatível com o ANKI Desktop, Ankimobile e Ankidroid.
Introdução é fácil. Você pode baixar o deck compartilhado ou seguir as instruções para configurar os modelos manualmente.
No entanto, replicar a funcionalidade ANKI com modelos de JavaScript e cartão não é o objetivo. O objetivo é uma flexibilidade infinita. Você pode adicionar cartões de cloze a qualquer tipo de nota existente ("Cloze qualquer coisa") simplesmente adicionando novos campos e modelos de cartão com base nas instruções encontradas aqui. Você também pode modificar completamente os modelos, usando -os simplesmente como um guia.
Com as configurações padrão, isso replica a funcionalidade CLOZE da ANKI. No entanto, o modelo é altamente configurável e permite que você faça coisas que você não pode fazer com facilidade. Abaixo está um resumo de alguns recursos úteis dos modelos e dessa abordagem.
[...] ou [hint] no caso de uma dica. Os modelos permitem que você personalize isso. Por exemplo, você pode usar sublinhados e ter o formato ser ___ . Ou você sempre pode incluir a dica, como em ___ [hint] . Além disso, em vez de um número fixo de 3 caracteres, você pode substituir cada caractere não-espaço. Então você poderia ter ((c1::ab cdef::hint)) se tornar __ ____ [hint] .((c1::`a`bc `d`ef)) pode ser renderizado como a__ d__ . Você pode revelar seletivamente qualquer parte do conteúdo, não apenas no início. Observe que você também pode fazer a((c1::bc)) d((c1::ef)) , no entanto, a sintaxe do backtick pode ser mais conveniente.Também é fornecido um plug -in opcional que automatiza alguns dos trabalhos manuais (mínimos) que seriam necessários ao seguir essa abordagem.
Existem duas opções para começar:
A instalação do plug -in também é recomendada para facilitar a edição dos cartões Cloze, mas não é necessário.
Semelhante aos modelos de cloze da ANKI, você precisa de um campo para conter o teor de claze. Fora da convenção, é uma boa ideia ter o nome de campo em Cloze , caso você queira usar o plug -in mais tarde. Suponha que você nomeie o ExpressionCloze , conforme sugerido nas instruções. O teor de cloze é inserido neste campo de maneira semelhante à dos modelos de cloze da Anki. A única diferença é que, em vez do formato {{c1::text}} você usa ((c1::text)) . Você então precisa de campos para ativar cada um dos cartões de cloze. Então, suponha que você queira apoiar três clozes. Você adicionaria os campos ExpressionCloze1 , ExpressionCloze2 e ExpressionCloze3 . Você insere qualquer texto que desejar nesses campos para ativar a placa CLOZE correspondente. Fora da convenção, o plug -in usa 1 .
Por exemplo, suponha que você queira criar cartões de cloze para cada uma das palavras na expressão IK Heb Honger . Você escreveria os campos assim:
Para uma renderização HTML deste exemplo, consulte Exemplos de cartão frontal e traseiro.
Como cada um dos campos de cloze tem um valor não vazio de 1 , uma carta será gerada para cada c1 a c3 . Se você excluiu o 1 do ExpressionCloze3 , um cartão será gerado apenas para c1 e c2 .
Vamos cavar como tudo isso funciona. As instruções referenciadas anteriormente têm o seguinte modelo para a primeira placa de cloze. Observe que todo o conteúdo da frente do cartão é cercado por tags condicionais com base no ExpressionCloze e ExpressionCloze1 . Isso significa que ambos os campos devem estar não vazios para o cartão ser criado, devido à maneira como a geração de cartões Anki funciona. Portanto, se um desses campos estiver vazio, o cartão correspondente não será gerado. O script omittited simplesmente analisa o número o valor para data-card termina e atualiza o conteúdo dentro do cloze <div> de acordo. Portanto, se o valor do data-card for ExpressionCloze2 , ele sabe ocultar o ((c2::text)) e mostrar os outros.
{{#ExpressionCloze}}
{{#ExpressionCloze1}}
<div id="cloze" data-card="{{Card}}" data-cloze-show-before="all" data-cloze-show-after="all">
{{ExpressionCloze}}
</div>
{{Meaning}}
<script>
// .. ommitted ...
</script>
{{/ExpressionCloze1}}
{{/ExpressionCloze}}
Os modelos também suportam sugestões nas deleções de cloze, como no sistema de Anki. Por exemplo, para o exemplo abaixo, heb seria substituído por [verb] em vez de [...] .
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
Para obter detalhes completos sobre como configurar os modelos do seu cartão manualmente, consulte as instruções. Como alternativa, você pode usar o deck compartilhado como ponto de partida e usar as instruções como referência em como modificá -lo para atender às suas necessidades.
O modelo possui várias configurações para controlar como as deleções de cloze são renderizadas. Consulte Configuração para obter detalhes.
O plugin faz duas coisas para facilitar a edição de deleções de cloze ao seguir essa abordagem:
[...] do Anki no editor para que você possa usá -lo em outras notas, além daquelas baseadas no tipo de cloze da ANKI.ExpressionCloze (ou campo de nome similar) com os outros campos ExpressionCloze1 , ExpressionCloze2 , etc. que permitem os cartões de cloze correspondentes. O botão [...] se comporta o mesmo quando usado em um dos tipos de notas com base no tipo de cloze da ANKI. Caso contrário, no entanto, se o nome do campo terminar em Cloze , como ExpressionCloze , ele envolverá o texto selecionado, como em ((c1::text)) . É o mesmo que o comportamento normal de ANKI com clozes, exceto que ele usa parênteses em vez de aparelhos encaracolados.
O botão [...] possui um recurso útil adicional, onde, se você o pressionar enquanto um campo vazio termina em cloze tem foco, ele copiará o texto de outro campo com o mesmo nome menos o sufixo do cloze . Por exemplo, se você clicar no botão enquanto se concentrar no ExpressionCloze , ele copiará o texto da Expression .
Você também pode modificar o campo Cloze sem usar o botão [...] . O plug -in monitora as alterações e identifica padrões como ((c1::text)) . Ele faz com que os campos de cloze correspondentes estejam vazios ou contêm 1 dependendo da presença de deleções de cloze. Por exemplo, se você preencher ExpressionCloze com ((c1::Ik)) ((c2::heb)) ((c3::honger)). Em seguida, preencherá 1 para cada uma das ExpressionCloze1 , ExpressionCloze2 e ExpressionCloze3 . Se você editar para se tornar ((c1::Ik)) ((c2::heb)) honger. Em seguida, tornará ExpressionCloze3 vazio.
O plug -in adiciona duas ações no navegador em edição -> cloze qualquer coisa. Ambos operam em quaisquer notas selecionadas no navegador.
Isso automaticamente faz uma claze de um campo inteiro. Por exemplo, suponha que você tenha um campo chamado ExpressionCloze e Expression . Se ExpressionCloze estiver vazio, essa ação faz com que o conteúdo da Expression seja copiado para ExpressionCloze e transformado em uma cloze ((c1::content)) . Ele também atualiza ExpressionCloze1 para fazer com que a placa de cloze seja gerada. Isso é útil quando você tem muitas anotações com conteúdo curto, onde deseja encobrir todo o conteúdo. É muito mais eficiente encobrir -os em massa do que um por um.
Observe que isso essencialmente está usando o cloze para criar um cartão de produção (ou seja, dado o significado em seu idioma nativo, produzir a expressão no idioma que você está aprendendo). Então, por que não apenas fazer um modelo de cartão de produção em vez de usar cloze? Em alguns casos, isso pode ser mais eficaz do que usar cloze. No entanto, existem algumas razões pelas quais Cloze pode ser útil:
Isso basicamente apenas garante que o campo Cloze esteja sincronizado com os campos correspondentes responsáveis pela geração de cartões. Por exemplo, se ExpressionCloze possui ((c1::Ik)) ((c2::heb)) ((c3::honger)). Em seguida, isso garantiria que ExpressionCloze1 , ExpressionCloze2 e ExpressionCloze3 sejam preenchidos com um 1 . Mas ExpressionCloze4 seria deixado em branco, se existir. Geralmente, essa ação não é necessária para usar o plug -in, porque o plug -in garante que esses campos sejam atualizados à medida que você altera o conteúdo. Mas se você fizer uma importação ou se você editar notas antes de usar o plug -in, isso poderá ser usado para corrigir os campos para sincronizar.
Anki já tem suporte embutido para Cloze. Então, por que usar alguma coisa de cloze?
Prós:
Contras:
type: prefixo para ativar o tipo na resposta não é suportado. Os modelos de cartão são compatíveis com a área de trabalho Anki, Ankimobile e Ankidroid.
O plug -in funciona com o ANKI Desktop 2.1. Não tenho planos de adicionar suporte 2.0.
Ainda não testei as interações do plug -in com outros plug -ins de cloze, como cloze (ocultar tudo) e cloze, overppline. Se você encontrar um problema, registre um problema e eu farei o possível para corrigi -lo.
Os seguintes plugins foram relatados como tendo problemas de compatibilidade com este plug -in:
Além da inspiração extraída do próprio sistema Cloze da Anki, existem alguns plugins de cloze do ANKI relacionados que forneceram alguma inspiração para os recursos encontrados aqui. Agradecemos a todos os autores pelo pensamento colocado em Anki e esses plugins que ajudaram a desenvolver novas idéias.
Copyright 2019-2021 Matthew Hayes
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar esse arquivo, exceto em conformidade com a licença. Você pode obter uma cópia da licença em
http://www.apache.org/license/license-2.0
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído pela licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.