Ce projet fournit une implémentation Cloze basée sur un modèle qui:
Ceci est réalisé uniquement via JavaScript dans le modèle de carte et une nouvelle application de la fonction de génération de carte sélective intégrée d'Anki (impressionnante). Le grand avantage de cela est que vous pouvez générer des cartes Cloze à partir de notes existantes, pour lesquelles vous pouvez déjà avoir des cartes. Il ne dépend pas du type de notes Cloze d'Anki ni aucun autre type de notes, ce qui signifie que vous n'avez pas à migrer vos cartes vers un nouveau type de note. Il est compatible avec Anki Desktop, Ankimobile et Ankidroid.
Le démarrage est facile. Vous pouvez télécharger le jeu partagé ou suivre les instructions pour configurer les modèles manuellement.
La réplication de la fonctionnalité Anki avec JavaScript et des modèles de cartes n'est cependant pas l'objectif. L'objectif est une flexibilité sans fin. Vous pouvez ajouter des cartes Cloze à n'importe quel type de note existant ("Cloze n'importe quoi") simplement en ajoutant de nouveaux champs et modèles de carte en fonction des instructions trouvées ici. Vous pouvez également modifier complètement les modèles, en les utilisant simplement comme guide.
Avec les paramètres par défaut, cela reproduit les fonctionnalités de Cloze d'Anki. Cependant, le modèle est hautement configurable et vous permet de faire des choses que vous ne pouvez pas faire autrement facilement. Vous trouverez ci-dessous un résumé de certaines caractéristiques utiles des modèles et de cette approche.
[...] ou [hint] dans le cas d'un indice. Les modèles vous permettent de personnaliser cela. Par exemple, vous pouvez utiliser des soulignements et avoir le format être ___ . Ou vous pouvez toujours inclure l'indice, comme dans ___ [hint] . Au lieu d'un nombre fixe de 3 caractères, vous pourriez faire remplacer chaque caractère non espace. Vous pourriez donc avoir ((c1::ab cdef::hint)) devenir __ ____ [hint] .((c1::`a`bc `d`ef)) pourrait être rendu comme a__ d__ . Vous pouvez révéler de manière sélective n'importe quelle partie du contenu, pas seulement au début. Notez que vous pouvez également faire a((c1::bc)) d((c1::ef)) , mais la syntaxe Backtick peut être plus pratique.Un plugin en option est également fourni qui automatise une partie du travail manuel autrement (minimal) qui serait nécessaire lors du suivi de cette approche.
Il existe deux options pour commencer:
L'installation du plugin est également recommandée pour vous faciliter la modification des cartes Cloze, mais elle n'est pas nécessaire.
Semblable aux modèles Cloze d'Anki, vous avez besoin d'un champ pour contenir le contenu Cloze. Hors de la convention, c'est une bonne idée que le nom de champ se termine dans Cloze au cas où vous souhaiteriez utiliser le plugin plus tard. Supposons que vous le nommez ExpressionCloze , comme suggéré dans les instructions. La teneur en cloche est entrée dans ce domaine de la même manière que avec les modèles Cloze d'Anki. La seule différence est qu'au lieu du format {{c1::text}} vous utilisez ((c1::text)) . Vous avez ensuite besoin de champs pour activer chacune des cartes Cloze. Donc, supposons que vous vouliez soutenir trois clins d'œil. Vous ajouteriez des champs ExpressionCloze1 , ExpressionCloze2 et ExpressionCloze3 . Vous entrez tout texte que vous souhaitez dans ces champs pour activer la carte de serrage correspondante. Hors de la convention, le plugin utilise 1 .
Par exemple, supposons que vous souhaitiez créer des cartes Cloze pour chacun des mots de l'expression ik heb honger . Vous écririez les champs comme tel:
Pour un rendu HTML de cet exemple, voir des exemples de carte avant et arrière.
Étant donné que chacun des champs Cloze a une valeur non vide de 1 , une carte sera générée pour chacun de c1 à c3 . Si vous avez supprimé le 1 de ExpressionCloze3 , une carte sera générée pour c1 et c2 uniquement.
Faisons comment tout cela fonctionne. Les instructions référencées précédemment ont le modèle suivant pour la première carte Cloze. Notez que l'intégralité du contenu de l'avant de la carte est entourée d'étiquettes conditionnelles basées sur ExpressionCloze et ExpressionCloze1 . Cela signifie que les deux champs doivent être non vides pour la création de la carte, en raison de la façon dont la génération de cartes Anki fonctionne. Donc, si l'un de ces champs est vide, la carte correspondante n'est pas générée. Le script omnimis examine simplement le nombre avec lequel la data-card se termine, puis met à jour le contenu dans le Cloze <div> en conséquence. Donc, si la valeur de data-card est ExpressionCloze2 , il sait masquer le ((c2::text)) et afficher les autres.
{{#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}}
Les modèles prennent également en charge les indices dans les suppressions de cloze, comme dans le système d'Anki. Par exemple, pour l'exemple ci-dessous, heb serait remplacé par [verb] au lieu de [...] .
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
Pour plus de détails sur la façon de configurer manuellement vos modèles de carte, consultez les instructions. Alternativement, vous pouvez utiliser le deck partagé comme point de départ et utiliser les instructions comme référence sur la façon de le modifier pour répondre à vos besoins.
Le modèle dispose de plusieurs paramètres pour contrôler la façon dont les suppressions Cloze sont rendues. Voir la configuration pour plus de détails.
Le plugin fait deux choses pour vous permettre de modifier plus facilement les suppressions Cloze lorsque vous suivez cette approche:
[...] d'Anki dans l'éditeur afin que vous puissiez l'utiliser sur d'autres notes en plus de celles basées sur le type de serrage d'Anki.ExpressionCloze (ou un champ nommé de manière similaire) aux autres champs ExpressionCloze1 , ExpressionCloze2 , etc. qui permettent les cartes de cloze correspondantes. Le bouton [...] se comporte de la même manière lorsqu'il est utilisé sur l'un des types de notes en fonction du type de serrage d'Anki. Sinon cependant, si le nom de champ se termine par Cloze , comme ExpressionCloze , il enveloppera le texte sélectionné, comme dans ((c1::text)) . C'est la même chose que le comportement normal d'Anki avec des clins d'œil, sauf qu'il utilise des parenthèses au lieu de bretelles bouclées.
Le bouton [...] a une fonctionnalité utile additonale où si vous appuyez dessus tandis qu'un champ vide se terminant par Cloze a une mise au point, il copiera le texte à partir d'un autre champ avec le même nom moins le suffixe Cloze . Par exemple, si vous cliquez sur le bouton tout en vous concentrant sur ExpressionCloze , il copiera le texte de Expression .
Vous pouvez également modifier le champ Cloze sans utiliser le bouton [...] . Le plugin surveille et identifie des modèles comme ((c1::text)) . Il rend les champs de cloze correspondants pour être vides ou contenir 1 en fonction de la présence de suppressions de cloze. Par exemple, si vous remplissez ExpressionCloze avec ((c1::Ik)) ((c2::heb)) ((c3::honger)). Ensuite, il remplira 1 pour chacun de ExpressionCloze1 , ExpressionCloze2 et ExpressionCloze3 . Si vous le modifiez pour devenir ((c1::Ik)) ((c2::heb)) honger. Ensuite, il rendra ExpressionCloze3 vide.
Le plugin ajoute deux actions dans le navigateur sous Edit -> Closer n'importe quoi. Les deux fonctionnent sur toutes les notes sélectionnées dans le navigateur.
Cela fait automatiquement un Cloze à partir d'un champ entier. Par exemple, supposons que vous ayez un champ nommé ExpressionCloze et Expression . Si ExpressionCloze est vide, cette action fait copier le contenu de Expression sur ExpressionCloze et transformé en un cloze comme ((c1::content)) . Il met également à jour ExpressionCloze1 pour que la carte de cloche soit générée. Ceci est utile lorsque vous avez beaucoup de notes avec un contenu court où vous souhaitez terminer l'ensemble du contenu. Il est beaucoup plus efficace de les masquer en vrac qu'une par une.
Notez que cela utilise essentiellement Cloze pour faire une carte de production (c'est-à-dire compte tenu du sens dans votre langue maternelle, produisez l'expression dans la langue que vous apprenez). Alors pourquoi ne pas simplement faire un modèle de carte de production au lieu d'utiliser Cloze? Dans certains cas, cela peut être plus efficace que d'utiliser Cloze. Cependant, il y a quelques raisons pour lesquelles Cloze pourrait être utile:
Cela garantit essentiellement que le champ de cloze est synchronisé avec les champs correspondants responsables de la génération de cartes. Par exemple, si ExpressionCloze a ((c1::Ik)) ((c2::heb)) ((c3::honger)). Ensuite, cela garantirait que ExpressionCloze1 , ExpressionCloze2 et ExpressionCloze3 sont chacun remplis d'un 1 . Mais ExpressionCloze4 serait rendu vide s'il existe. Cette action n'est généralement pas nécessaire à utiliser lors de l'utilisation du plugin car le plugin garantit que ces champs sont mis à jour lorsque vous modifiez du contenu. Mais si vous faites une importation ou si vous modifiez des notes avant d'utiliser le plugin, cela peut être utilisé pour corriger les champs pour être synchronisés.
Anki a déjà une prise en charge intégrée pour Cloze. Alors pourquoi utiliser Cloze quoi que ce soit?
Avantages:
Inconvénients:
type: préfixe pour activer le type dans la réponse n'est pas pris en charge. Les modèles de carte sont compatibles avec Anki Desktop, Ankimobile et Ankidroid.
Le plugin fonctionne avec Anki Desktop 2.1. Je n'ai pas l'intention d'ajouter le support 2.0.
Je n'ai pas encore testé les interactions du plugin avec d'autres plugins Cloze tels que Cloze (Masquer All) et Cloze Overlapper. Si vous rencontrez un problème, veuillez déposer un problème et je ferai de mon mieux pour le résoudre.
Les plugins suivants ont été signalés comme ayant des problèmes de compatibilité avec ce plugin:
En plus de l'inspiration tirée du système Cloze d'Anki lui-même, il y a quelques plugins Cloze Anki liés qui ont fourni une certaine inspiration pour les fonctionnalités trouvées ici. Merci à tous les auteurs pour la pensée placée dans Anki et ces plugins qui ont aidé à développer de nouvelles idées.
Copyright 2019-2021 Matthew Hayes
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.