Kad
Halaman ini diterjemahkan daripada bahasa Inggeris. Jika kedua-duanya berbeza, halaman bahasa Inggeris adalah yang betul. Baca halaman bahasa Inggeris
Kad ialah senarai pendek elemen yang dilukis oleh Lingara dalam gayanya sendiri. Tiada input, imej, skrip atau markup. Aplikasi tidak boleh meletakkan kodnya sendiri atau rupanya sendiri pada skrin pelajar, jadi setiap kad terasa seperti bahagian lain Lingara. Jawapan anda ialah JSON: card yang memegang elements, dan secara pilihan tutor_note (lihat Nota tutor).
Elemen
Setiap elemen mempunyai type, iaitu salah satu daripada lapan ini:
| Elemen | Medan | Apa yang dipaparkan |
|---|---|---|
heading | text, level | Tajuk. level ialah 1 atau 2, dan sebarang nilai lain menjadi 2. Teksnya paling banyak 80 aksara. |
text | text, lang | Perenggan paling banyak 600 aksara. Ia satu-satunya tempat pemisah baris dikekalkan. |
term | word, reading, gloss, lang | Perkataan untuk dipelajari. Hanya word yang wajib. Perkataan paling banyak 60 aksara, bacaan 120 dan glos 160. |
list | items | Sehingga 20 item. Setiap item ialah text atau term, dengan medan yang sama seperti elemen yang bernama demikian. |
progress | value, label | Bar kemajuan. value bermula dari 0 hingga 1, dan label paling banyak 60 aksara. |
divider | Garis antara bahagian kad. | |
button | label, action, style | Butang yang menghantar action miliknya ke pelayan anda. style ialah primary atau secondary, dan label paling banyak 32 aksara. |
link | label, url | Pautan yang dibuka oleh pelajar dalam pelayarnya, selepas Lingara bertanya kepadanya. Label paling banyak 60 aksara. |
lang ialah tag bahasa seperti ja, supaya Lingara melukis tulisan yang betul. Nilai yang bukan tag bahasa dibuang.
Had
- Kad memegang paling banyak 24 elemen. Elemen selepas yang ke-24 digugurkan.
- Senarai memegang paling banyak 20 item. Item selepas yang ke-20 digugurkan, dan senarai kosong digugurkan.
- Kad memegang paling banyak 4 butang. Butang selepas yang ke-4 digugurkan.
- Teks yang lebih panjang daripada hadnya dipotong supaya muat dan berakhir dengan
…. Aksara dikira sebagai nilai skalar Unicode. - Aksara kawalan dan penggantian arah dibuang daripada setiap rentetan.
- Pautan yang alamatnya bukan HTTPS, membawa nama pengguna, atau menghala ke alamat IP digugurkan.
- Butang dengan
actionyang lebih panjang daripada 64 aksara, atau yang menggunakan apa-apa selain huruf, digit,_,.,:dan-, digugurkan. - Elemen yang tiada teks tinggal selepas peraturan ini digugurkan.
Peraturan ini bertolak ansur: Lingara memotong atau menggugurkan apa yang tidak muat dan melukis selebihnya. Kit menggunakan peraturan yang sama sebelum anda menjawab, jadi anda boleh melihat apa yang akan berubah.
Penghuraian ketat
Perbendaharaan katanya tertutup. Jenis elemen yang tidak diketahui, medan yang tiada pada sesuatu elemen, nilai dengan jenis JSON yang salah, atau jawapan yang langsung bukan JSON menukar keseluruhan jawapan menjadi kad sandaran. Lingara tidak pernah melukis sebahagian kad yang tidak dapat dibacanya.
Saiz dan masa
Jawapan boleh bersaiz paling banyak 32 KiB. Lingara memberi pelayan anda 3 saat untuk menjawab render dan 5 saat untuk menjawab tindakan, dan tidak mencuba semula kedua-duanya. Jawapan mesti mempunyai status 200 dan jenis kandungan JSON. Ubah hala tidak diikuti.
Butang dan tindakan
Apabila pelajar menekan butang, Lingara menghantar permintaan tindakan kepada pelayan anda yang membawa action butang itu. Pelayan anda menjawab dengan kad baharu, yang menggantikan kad lama. Tekanan yang sama boleh tiba dua kali, jadi pastikan setiap tindakan selamat untuk diulang.
Apabila kad gagal
Apabila Lingara tidak dapat memperoleh kad yang boleh dilukisnya, pelajar melihat kad “Aplikasi ini tidak menjawab” milik Lingara sendiri dalam bahasanya, atau kad baik terakhir anda yang ditandakan sebagai tidak terkini. Pelajar tidak pernah diberitahu sebabnya. Hanya anda, sebagai pemilik aplikasi, melihat sebab itu:
- Jawapan anda:
invalid(bukan kad yang boleh dibaca oleh Lingara),empty(tiada apa-apa yang tinggal untuk dipaparkan selepas had) atautoo_large(lebih daripada 32 KiB). - Mencapai pelayan anda:
timeout,http_error(sebarang status selain 200),transport(kegagalan sambungan atau TLS, seperti sijil yang telah tamat tempoh) ataublocked(render_urlyang menghala ke alamat peribadi atau alamat IP literal). - Pihak Lingara:
unavailable(Lingara tidak dapat menandatangani permintaan) ataubusy(terlalu banyak permintaan sudah dalam perjalanan).