Proyek ini memberikan implementasi cloze berbasis template yang:
Ini dicapai murni melalui JavaScript dalam template kartu dan aplikasi baru fitur pembuatan kartu selektif Built-in (mengagumkan) Anki. Manfaat besar dari ini adalah Anda dapat menghasilkan kartu cloze dari catatan yang ada, yang mungkin sudah Anda miliki kartu. Tidak ada ketergantungan pada tipe catatan cloze Anki atau jenis catatan lainnya, yang berarti Anda tidak harus memigrasi kartu Anda ke jenis catatan baru. Ini kompatibel dengan Anki Desktop, Ankimobile, dan Ankidroid.
Memulai itu mudah. Anda dapat mengunduh dek bersama atau mengikuti instruksi untuk menyiapkan templat secara manual.
Mereplikasi fungsionalitas ANKI dengan javascript dan templat kartu bukanlah tujuannya. Tujuannya adalah fleksibilitas tanpa akhir. Anda dapat menambahkan kartu cloze ke jenis note yang ada ("cloze apapun") hanya dengan menambahkan bidang dan templat kartu baru berdasarkan instruksi yang ditemukan di sini. Anda juga dapat memodifikasi templat sepenuhnya, menggunakannya hanya sebagai panduan.
Dengan pengaturan default ini mereplikasi fungsionalitas cloze Anki. Namun template sangat dapat dikonfigurasi dan memungkinkan Anda melakukan hal -hal yang tidak dapat Anda lakukan dengan mudah. Di bawah ini adalah ringkasan dari beberapa fitur yang berguna dari templat dan pendekatan ini.
[...] atau [hint] dalam kasus petunjuk. Templat memungkinkan Anda menyesuaikan ini. Misalnya, Anda dapat menggunakan garis bawah dan memiliki format menjadi ___ . Atau Anda selalu bisa memasukkan petunjuk, seperti dalam ___ [hint] . Juga alih-alih jumlah tetap 3 karakter yang dapat Anda ganti setiap karakter non-ruang. Jadi Anda bisa memiliki ((c1::ab cdef::hint)) menjadi __ ____ [hint] .((c1::`a`bc `d`ef)) dapat diterjemahkan sebagai a__ d__ . Anda dapat secara selektif mengungkapkan bagian mana pun dari konten, bukan hanya di awal. Perhatikan bahwa Anda juga dapat melakukan a((c1::bc)) d((c1::ef)) , namun sintaks backtick mungkin lebih nyaman.Plugin opsional juga disediakan yang mengotomatiskan beberapa pekerjaan manual (minimal) yang diperlukan saat mengikuti pendekatan ini.
Ada dua opsi untuk memulai:
Menginstal plugin juga disarankan untuk memudahkan Anda mengedit kartu cloze, tetapi tidak diperlukan.
Mirip dengan template cloze Anki, Anda memerlukan bidang untuk berisi konten cloze. Di luar konvensi, ada baiknya memiliki nama lapangan di cloze jika Anda ingin menggunakan plugin nanti. Misalkan Anda menyebutkannya ExpressionCloze , seperti yang disarankan dalam instruksi. Konten cloze dimasukkan dalam bidang ini dengan cara yang sama seperti dengan templat cloze Anki. Satu -satunya perbedaan adalah bahwa alih -alih format {{c1::text}} yang Anda gunakan ((c1::text)) . Anda kemudian membutuhkan bidang untuk memungkinkan masing -masing kartu cloze. Jadi, misalkan Anda ingin mendukung tiga cloz. Anda akan menambahkan bidang ExpressionCloze1 , ExpressionCloze2 , dan ExpressionCloze3 . Anda memasukkan teks apa pun yang Anda inginkan ke bidang ini untuk mengaktifkan kartu cloze yang sesuai. Di luar konvensi, plugin menggunakan 1 .
Misalnya, misalkan Anda ingin membuat kartu cloze untuk masing -masing kata dalam ungkapan ik hon honger . Anda akan menulis bidang seperti itu:
Untuk rendering HTML dari contoh ini, lihat contoh kartu depan dan belakang.
Karena masing-masing bidang cloze memiliki nilai 1 yang tidak kosong, kartu akan dihasilkan untuk masing-masing c1 hingga c3 . Jika Anda menghapus 1 dari ExpressionCloze3 maka kartu akan dihasilkan hanya untuk c1 dan c2 .
Mari kita gali cara kerja semua ini. Instruksi yang dirujuk sebelumnya memiliki templat berikut untuk kartu cloze pertama. Perhatikan bahwa seluruh konten bagian depan kartu dikelilingi oleh tag bersyarat berdasarkan ExpressionCloze dan ExpressionCloze1 . Ini berarti bahwa kedua bidang tersebut harus tidak dikosongkan agar kartu tersebut dibuat, karena cara kerja pembuatan kartu Anki. Jadi, jika salah satu bidang ini kosong, kartu yang sesuai tidak dihasilkan. Script Ommitted hanya melihat angka nilai untuk data-card diakhiri dengan dan kemudian memperbarui konten dalam cloze <div> yang sesuai. Jadi jika nilai data-card adalah ExpressionCloze2 maka ia tahu untuk menyembunyikan ((c2::text)) dan menunjukkan yang lain.
{{#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}}
Template juga mendukung petunjuk dalam penghapusan cloze, seperti dalam sistem Anki. Misalnya, untuk contoh di bawah ini, heb akan diganti dengan [verb] alih -alih [...] .
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
Untuk detail lengkap tentang cara mengatur templat kartu Anda secara manual, lihat instruksi. Atau, Anda dapat menggunakan dek bersama sebagai titik awal dan menggunakan instruksi sebagai referensi tentang cara memodifikasinya untuk memenuhi kebutuhan Anda.
Template memiliki beberapa pengaturan untuk mengendalikan bagaimana penghapusan cloze diberikan. Lihat Konfigurasi untuk detailnya.
Plugin melakukan dua hal untuk memudahkan Anda mengedit penghapusan cloze saat mengikuti pendekatan ini:
[...] di editor sehingga Anda dapat menggunakannya pada catatan lain selain yang didasarkan pada tipe cloze Anki.ExpressionCloze (atau bidang yang disebut sama) ke bidang lain ExpressionCloze1 , ExpressionCloze2 , dll. Yang memungkinkan kartu cloze yang sesuai. Tombol [...] berperilaku sama ketika digunakan pada salah satu jenis catatan berdasarkan jenis cloze Anki. Namun, jika tidak, jika nama bidang berakhir dengan cloze , seperti ExpressionCloze , maka itu akan membungkus teks yang dipilih, seperti di ((c1::text)) . Ini sama dengan perilaku normal Anki dengan cloze kecuali menggunakan tanda kurung alih -alih kawat gigi keriting.
Tombol [...] memiliki fitur yang berguna additonal di mana jika Anda menekannya sementara bidang kosong yang berakhir dengan cloze memiliki fokus, itu akan menyalin teks dari bidang lain dengan nama yang sama dikurangi akhiran cloze . Misalnya, jika Anda mengklik tombol sambil berfokus pada ExpressionCloze maka itu akan menyalin teks dari Expression .
Anda juga dapat memodifikasi bidang cloze tanpa menggunakan tombol [...] . Plugin memantau mengubah dan mengidentifikasi pola seperti ((c1::text)) . Itu membuat bidang cloze yang sesuai menjadi kosong atau mengandung 1 tergantung pada adanya penghapusan cloze. Misalnya, jika Anda mengisi ExpressionCloze dengan ((c1::Ik)) ((c2::heb)) ((c3::honger)). maka itu akan mengisi 1 untuk masing -masing ExpressionCloze1 , ExpressionCloze2 , dan ExpressionCloze3 . Jika Anda mengeditnya menjadi ((c1::Ik)) ((c2::heb)) honger. Maka itu akan membuat ExpressionCloze3 kosong.
Plugin menambahkan dua tindakan di browser di bawah edit -> cloze apapun. Keduanya beroperasi pada catatan apa pun yang dipilih di browser.
Ini secara otomatis membuat cloze dari seluruh bidang. Misalnya, misalkan Anda memiliki bidang bernama ExpressionCloze dan Expression . Jika ExpressionCloze kosong, maka tindakan ini menyebabkan konten Expression disalin ke ExpressionCloze dan dibuat menjadi cloze seperti ((c1::content)) . Ini juga memperbarui ExpressionCloze1 untuk menyebabkan kartu cloze dihasilkan. Ini berguna ketika Anda memiliki banyak catatan dengan konten pendek di mana Anda ingin menyelimuti seluruh konten. Jauh lebih efisien untuk menyelimuti ini dalam jumlah besar daripada satu per satu.
Perhatikan bahwa ini pada dasarnya menggunakan cloze untuk membuat kartu produksi (yaitu mengingat maknanya dalam bahasa ibu Anda, menghasilkan ekspresi dalam bahasa yang Anda pelajari). Jadi mengapa tidak membuat template kartu produksi alih -alih menggunakan cloze? Dalam beberapa kasus ini mungkin lebih efektif daripada menggunakan cloze. Namun ada beberapa alasan mengapa cloze bisa berguna:
Ini pada dasarnya hanya memastikan bidang cloze selaras dengan bidang yang sesuai yang bertanggung jawab untuk pembuatan kartu. Misalnya, jika ExpressionCloze memiliki ((c1::Ik)) ((c2::heb)) ((c3::honger)). Maka ini akan memastikan ExpressionCloze1 , ExpressionCloze2 , dan ExpressionCloze3 masing -masing diisi dengan A 1 . Tapi ExpressionCloze4 akan dikosongkan, jika ada. Tindakan ini umumnya tidak perlu digunakan saat menggunakan plugin karena plugin memastikan bahwa bidang -bidang ini diperbarui saat Anda mengubah konten. Tetapi jika Anda melakukan impor atau jika Anda mengedit catatan sebelum menggunakan plugin, ini dapat digunakan untuk memperbaiki bidang untuk disinkronkan.
Anki sudah memiliki dukungan bawaan untuk Cloze. Jadi mengapa menggunakan cloze apapun?
Pro:
Kontra:
type: Awalan untuk Mengaktifkan Jenis Jawabannya tidak didukung. Templat kartu kompatibel dengan Anki Desktop, Ankimobile, dan Ankidroid.
Plugin bekerja dengan Anki Desktop 2.1. Saya tidak punya rencana untuk menambahkan dukungan 2.0.
Saya belum menguji interaksi plugin dengan plugin cloze lainnya seperti cloze (sembunyikan semua) dan cloze overlapper. Jika Anda mengalami masalah, silakan ajukan masalah dan saya akan melakukan yang terbaik untuk memperbaikinya.
Plugin berikut telah dilaporkan memiliki masalah kompatibilitas dengan plugin ini:
Selain inspirasi yang diambil dari sistem cloze Anki itu sendiri, ada beberapa plugin Anki Cloze terkait yang memberikan beberapa inspirasi untuk fitur yang ditemukan di sini. Terima kasih kepada semua penulis untuk pemikiran yang dimasukkan ke Anki dan plugin yang telah membantu mengembangkan ide -ide baru.
Hak Cipta 2019-2021 Matthew Hayes
Berlisensi di bawah lisensi Apache, versi 2.0 ("lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan lisensi. Anda dapat memperoleh salinan lisensi di
http://www.apache.org/licenses/license-2.0
Kecuali diharuskan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak yang didistribusikan di bawah lisensi didistribusikan berdasarkan "sebagaimana adanya", tanpa jaminan atau ketentuan dalam bentuk apa pun, baik tersurat maupun tersirat. Lihat lisensi untuk bahasa spesifik yang mengatur izin dan batasan di bawah lisensi.