يوفر هذا المشروع تطبيقًا قائمًا على القالب:
يتم تحقيق ذلك بحتة من خلال JavaScript في قالب البطاقة وتطبيق جديد لميزة توليد البطاقات الانتقائية المدمجة في Anki. الفائدة الكبيرة في هذا هو أنه يمكنك إنشاء بطاقات cloze من الملاحظات الحالية ، والتي قد يكون لديك بالفعل بطاقات. ليس له أي اعتماد على نوع Note Cloze الخاص بـ Anki أو أي أنواع ملاحظات أخرى ، مما يعني أنه لا يتعين عليك ترحيل البطاقات الخاصة بك إلى نوع ملاحظة جديد. إنه متوافق مع سطح المكتب Anki ، Ankimobile ، و Ankidroid.
البدء أمر سهل. يمكنك إما تنزيل سطح السفينة المشترك أو اتباع إرشادات إعداد القوالب يدويًا.
إن تكرار وظائف ANKI مع قوالب JavaScript و Card ليس الهدف. الهدف هو المرونة التي لا نهاية لها. يمكنك إضافة بطاقات cloze إلى أي نوع ملاحظة موجود ("cloze anhow") ببساطة عن طريق إضافة حقول جديدة وقوالب البطاقات بناءً على الإرشادات الموجودة هنا. يمكنك أيضًا تعديل القوالب تمامًا ، باستخدامها ببساطة كدليل.
من خلال الإعدادات الافتراضية ، يكرر هذا وظائف Cloze الخاصة بـ Anki. ومع ذلك ، فإن القالب قابل للتكوين بشكل كبير ويتيح لك القيام بأشياء لا يمكنك القيام بها بسهولة. فيما يلي ملخص لبعض الميزات المفيدة للقوالب وهذا النهج.
[...] أو [hint] في حالة تلميح. تتيح لك القوالب تخصيص هذا. على سبيل المثال ، يمكنك استخدام السطح السفلي وأن يكون التنسيق ___ . أو يمكنك دائمًا تضمين التلميح ، كما في ___ [hint] . أيضًا بدلاً من عدد ثابت من 3 أحرف ، يمكنك استبدال كل حرف غير مساحة. لذلك يمكن أن يكون لديك ((c1::ab cdef::hint)) تصبح __ ____ [hint] .((c1::`a`bc `d`ef)) يمكن تقديمها كـ a__ d__ . يمكنك الكشف عن أي جزء من المحتوى بشكل انتقائي ، وليس فقط في البداية. لاحظ أنه يمكنك أيضًا القيام a((c1::bc)) d((c1::ef)) ، ومع ذلك قد يكون بناء جملة Backtick أكثر ملاءمة.يتم أيضًا توفير مكون إضافي اختياري يقوم بأتمتة بعض العمل اليدوي (الحد الأدنى) الذي سيكون مطلوبًا عند اتباع هذا النهج.
هناك خياران للبدء:
يوصى أيضًا بتثبيت البرنامج المساعد لتسهيل تحرير بطاقات cloze ، ولكنه غير مطلوب.
على غرار قوالب Cloze من Anki ، تحتاج إلى حقل لاحتواء محتوى cloze. من الجيد أن تنتهي اسم الحقل في Cloze في حالة رغبتك في استخدام المكون الإضافي لاحقًا. لنفترض أنك تسميه ExpressionCloze ، كما هو مقترح في التعليمات. يتم إدخال محتوى cloze في هذا الحقل بطريقة مماثلة كما هو الحال مع قوالب Cloze الخاصة بـ Anki. الفرق الوحيد هو أنه بدلاً من التنسيق {{c1::text}} الذي تستخدمه ((c1::text)) . تحتاج بعد ذلك إلى حقول لتمكين كل من بطاقات cloze. لذلك ، لنفترض أنك تريد دعم ثلاثة قرود. يمكنك إضافة الحقول ExpressionCloze1 و ExpressionCloze2 و ExpressionCloze3 . يمكنك إدخال أي نص تريده في هذه الحقول لتمكين بطاقة cloze المقابلة. خارج الاتفاقية يستخدم البرنامج المساعد 1 .
على سبيل المثال ، لنفترض أنك تريد إنشاء بطاقات cloze لكل كلمة في التعبير IK heb Honger . ستكتب الحقول مثل:
للحصول على عرض HTML لهذا المثال ، انظر أمثلة البطاقة الأمامية والخلفية.
نظرًا لأن كل حقول من حقول Cloze لها قيمة غير فارغة 1 ، سيتم إنشاء بطاقة لكل من c1 إلى c3 . إذا قمت بحذف 1 من ExpressionCloze3 ، فسيتم إنشاء بطاقة لـ c1 و c2 فقط.
دعنا نحفر في كيفية عمل كل هذا. التعليمات المشار إليها سابقا لها القالب التالي لبطاقة cloze الأولى. لاحظ أن المحتوى الكامل لأمام البطاقة محاط بعلامات مشروطة بناءً على ExpressionCloze و ExpressionCloze1 . هذا يعني أن كلا الحقلين يجب أن يكونوا غير فارغين لإنشاء البطاقة ، بسبب طريقة عمل بطاقة Anki Card. لذلك إذا كان أي من هذه الحقول فارغًا ، فلن يتم إنشاء البطاقة المقابلة. يبحث البرنامج النصي المتواصل ببساطة في الرقم الذي تنتهي قيمة data-card ثم يقوم بتحديث المحتوى داخل cloze <div> وفقًا لذلك. لذا ، إذا كانت قيمة data-card هي ExpressionCloze2 فهذا يعرف إخفاء ((c2::text)) وإظهار الآخرين.
{{#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}}
تدعم القوالب أيضًا تلميحات في عمليات حذف cloze ، كما في نظام Anki. على سبيل المثال ، على سبيل المثال أدناه ، سيتم استبدال heb بـ [verb] بدلاً من [...] .
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
للحصول على التفاصيل الكاملة حول كيفية إعداد قوالب بطاقتك يدويًا ، راجع التعليمات. بدلاً من ذلك ، يمكنك استخدام سطح السفينة المشترك كنقطة انطلاق واستخدام التعليمات كمرجع في كيفية تعديلها لتلبية احتياجاتك.
يحتوي القالب على العديد من الإعدادات للتحكم في كيفية تقديم عمليات حذف cloze. انظر التكوين للحصول على التفاصيل.
يقوم المكون الإضافي بعمل شيئين لتسهيل تحرير الحذف عند اتباع هذا النهج:
[...] في المحرر بحيث يمكنك استخدامه على ملاحظات أخرى إلى جانب تلك التي تعتمد على نوع Cloze الخاص بـ Anki.ExpressionCloze (أو بالمثل المسمى الحقل) إلى الحقول الأخرى ExpressionCloze1 ، ExpressionCloze2 ، وما إلى ذلك التي تمكن بطاقات cloze المقابلة. يتصرف الزر [...] نفسه عند استخدامه على أحد أنواع الملاحظات استنادًا إلى نوع عباءة Anki. ومع ذلك ، إذا كان اسم الحقل ينتهي في cloze ، مثل ExpressionCloze ، فسيتم لفه النص المحدد ، كما هو الحال في ((c1::text)) . هذا هو نفس سلوك Anki الطبيعي مع clozes باستثناء أنه يستخدم الأقواس بدلاً من الأقواس المجعد.
يحتوي الزر [...] على ميزة مفيدة للإضافة حيث تضغط عليها بينما يتم التركيز على حقل فارغ ينتهي في Cloze ، وسوف ينسخ النص من حقل آخر مع نفس الاسم ناقص لاحقة cloze . على سبيل المثال ، إذا قمت بالنقر فوق الزر أثناء التركيز على ExpressionCloze ، فسوف يقوم بنسخ النص من Expression .
يمكنك أيضًا تعديل حقل cloze دون استخدام زر [...] . يقوم المكون الإضافي بتغيير ويحدد أنماط مثل ((c1::text)) . إنه يجعل حقول cloze المقابلة إما فارغة أو تحتوي على 1 اعتمادًا على وجود حذف cloze. على سبيل المثال ، إذا قمت بملء ExpressionCloze بـ ((c1::Ik)) ((c2::heb)) ((c3::honger)). ثم سوف تملأ 1 لكل من ExpressionCloze1 و ExpressionCloze2 و ExpressionCloze3 . إذا قمت بتحريره لتصبح ((c1::Ik)) ((c2::heb)) honger. ثم سيجعل ExpressionCloze3 فارغة.
يضيف المكون الإضافي إجراءين في المتصفح تحت تحرير -> أي شيء. كلاهما يعمل على أي ملاحظات يتم اختيارها في المتصفح.
هذا يصنع تلقائيًا من الحقل بأكمله. على سبيل المثال ، لنفترض أن لديك حقل يسمى ExpressionCloze Expression . إذا كان ExpressionCloze فارغًا ، فإن هذا الإجراء يتسبب في نسخ محتوى Expression إلى ExpressionCloze وجعله في مرفقة مثل ((c1::content)) . كما أنه يقوم بتحديث ExpressionCloze1 للتسبب في إنشاء بطاقة cloze. يكون هذا مفيدًا عندما يكون لديك الكثير من الملاحظات مع محتوى قصير حيث تريد ربط المحتوى بأكمله. إنه أكثر كفاءة في ربطها بكميات كبيرة من واحد تلو الآخر.
لاحظ أن هذا يستخدم بشكل أساسي cloze لإنشاء بطاقة إنتاج (أي بالنظر إلى المعنى في لغتك الأم ، أنتج التعبير باللغة التي تتعلمها). فلماذا لا تصنع مجرد قالب بطاقة إنتاج بدلاً من استخدام cloze؟ في بعض الحالات ، قد يكون هذا أكثر فعالية من استخدام cloze. ومع ذلك ، هناك بعض الأسباب التي تجعل Cloze مفيدًا:
هذا يتأكد بشكل أساسي من أن حقل cloze متزامن مع الحقول المقابلة المسؤولة عن توليد البطاقات. على سبيل المثال ، إذا كان ExpressionCloze لديه ((c1::Ik)) ((c2::heb)) ((c3::honger)). ثم هذا من شأنه أن يضمن ExpressionCloze1 و ExpressionCloze2 و ExpressionCloze3 مملوءة بكل منهما بـ 1 . لكن ExpressionCloze4 سيكون فارغًا ، إذا كان موجودًا. هذا الإجراء ليس ضروريًا بشكل عام للاستخدام أثناء استخدام المكون الإضافي لأن المكون الإضافي يضمن تحديث هذه الحقول أثناء تغيير المحتوى. ولكن إذا قمت بإجراء استيراد أو إذا قمت بتحرير الملاحظات قبل استخدام المكون الإضافي ، فيمكن استخدام ذلك لإصلاح الحقول لتكون متزامنة.
لدى Anki بالفعل دعمًا مدمجًا لـ Cloze. فلماذا تستخدم أي شيء؟
الايجابيات:
سلبيات:
type: بادئة لتمكين الكتابة في الإجابة غير مدعومة. تتوافق قوالب البطاقة مع سطح المكتب Anki و Ankimobile و Ankidroid.
يعمل المكون الإضافي مع سطح المكتب ANKI 2.1. ليس لدي أي خطط لإضافة الدعم 2.0.
لم أختبر بعد تفاعلات المكون الإضافي مع الإضافات الأخرى cloze مثل cloze (إخفاء الكل) وتداخل cloze. إذا واجهت مشكلة ، فيرجى تقديم مشكلة وسأبذل قصارى جهدي لإصلاحها.
تم الإبلاغ عن المكونات الإضافية التالية على أنها لديها مشكلات توافق مع هذا البرنامج المساعد:
بالإضافة إلى الإلهام المرسوم من نظام Cloze الخاص بـ Anki نفسه ، هناك بضعة ملحقات متعلقة بـ Anki Cloze قدمت بعض الإلهام للميزات الموجودة هنا. بفضل جميع المؤلفين على التفكير في Anki وهذه الإضافات التي ساعدت في تطوير أفكار جديدة.
حقوق الطبع والنشر 2019-2021 ماثيو هايز
مرخصة بموجب ترخيص Apache ، الإصدار 2.0 ("الترخيص") ؛ لا يجوز لك استخدام هذا الملف إلا في الامتثال للترخيص. يمكنك الحصول على نسخة من الترخيص على
http://www.apache.org/licenses/license-2.0
ما لم يكن مطلوبًا بموجب القانون المعمول به أو الموافقة على الكتابة ، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي" ، دون ضمانات أو شروط من أي نوع ، إما صريحة أو ضمنية. راجع ترخيص الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.