Thẻ
Trang này được dịch từ tiếng Anh. Nếu hai bản khác nhau, trang tiếng Anh là bản đúng. Đọc trang tiếng Anh
Thẻ là một danh sách ngắn các phần tử mà Lingara vẽ theo phong cách riêng của mình. Không có ô nhập liệu, hình ảnh, script hay markup. Ứng dụng không thể đưa mã riêng hay giao diện riêng của nó lên màn hình của người học, nên mọi thẻ đều trông giống phần còn lại của Lingara. Phản hồi của bạn là JSON: một card chứa các elements của nó, và tùy chọn một tutor_note (xem Ghi chú cho gia sư).
Các phần tử
Mỗi phần tử có một type, là một trong tám loại sau:
| Phần tử | Trường | Nội dung hiển thị |
|---|---|---|
heading | text, level | Một tiêu đề. level là 1 hoặc 2, và mọi giá trị khác sẽ thành 2. Văn bản của nó dài tối đa 80 ký tự. |
text | text, lang | Một đoạn văn dài tối đa 600 ký tự. Đây là nơi duy nhất giữ lại dấu xuống dòng. |
term | word, reading, gloss, lang | Một từ cần học. Chỉ word là bắt buộc. Từ dài tối đa 60 ký tự, cách đọc 120 và phần giải nghĩa 160. |
list | items | Tối đa 20 mục. Mỗi mục là một text hoặc một term, với các trường giống phần tử cùng tên. |
progress | value, label | Một thanh tiến độ. value chạy từ 0 đến 1, và nhãn dài tối đa 60 ký tự. |
divider | Một đường kẻ giữa các phần của thẻ. | |
button | label, action, style | Một nút gửi action của nó đến máy chủ của bạn. style là primary hoặc secondary, và nhãn dài tối đa 32 ký tự. |
link | label, url | Một liên kết mà người học mở trong trình duyệt, sau khi Lingara hỏi họ. Nhãn dài tối đa 60 ký tự. |
Một lang là mã ngôn ngữ như ja, để Lingara vẽ đúng hệ chữ. Giá trị không phải mã ngôn ngữ sẽ bị xóa.
Các giới hạn
- Một thẻ chứa tối đa 24 phần tử. Các phần tử sau phần tử thứ 24 bị loại bỏ.
- Một danh sách chứa tối đa 20 mục. Các mục sau mục thứ 20 bị loại bỏ, và danh sách rỗng cũng bị loại bỏ.
- Một thẻ chứa tối đa 4 nút. Các nút sau nút thứ 4 bị loại bỏ.
- Văn bản dài hơn giới hạn của nó sẽ bị cắt cho vừa và kết thúc bằng
…. Ký tự được đếm theo giá trị vô hướng Unicode (Unicode scalar value). - Ký tự điều khiển và ký tự ghi đè hướng bị xóa khỏi mọi chuỗi.
- Liên kết có địa chỉ không phải HTTPS, chứa tên người dùng, hoặc trỏ đến một địa chỉ IP sẽ bị loại bỏ.
- Nút có
actiondài hơn 64 ký tự, hoặc dùng bất kỳ thứ gì ngoài chữ cái, chữ số,_,.,:và-, sẽ bị loại bỏ. - Phần tử không còn văn bản nào sau các quy tắc này sẽ bị loại bỏ.
Các quy tắc này khoan dung: Lingara cắt bớt hoặc loại bỏ những gì không vừa và vẽ phần còn lại. Các bộ công cụ áp dụng cùng những quy tắc này trước khi bạn trả lời, để bạn thấy được điều gì sẽ thay đổi.
Phân tích cú pháp nghiêm ngặt
Bộ từ vựng là đóng. Một loại phần tử không xác định, một trường mà phần tử không có, một giá trị sai kiểu JSON, hoặc một phản hồi hoàn toàn không phải JSON sẽ biến toàn bộ phản hồi thành thẻ dự phòng. Lingara không bao giờ vẽ một phần của thẻ mà nó không đọc được.
Kích thước và thời gian
Phản hồi dài tối đa 32 KiB. Lingara cho máy chủ của bạn 3 giây để trả lời một yêu cầu render và 5 giây để trả lời một hành động, và không thử lại cái nào. Phản hồi phải có trạng thái 200 và kiểu nội dung JSON. Chuyển hướng không được đi theo.
Nút và hành động
Khi người học nhấn một nút, Lingara gửi đến máy chủ của bạn một yêu cầu hành động mang action của nút đó. Máy chủ của bạn trả lời bằng một thẻ mới, thay thế thẻ cũ. Cùng một lần nhấn có thể đến hai lần, vì vậy hãy làm cho mỗi hành động an toàn khi lặp lại.
Khi thẻ gặp lỗi
Khi Lingara không lấy được một thẻ mà nó có thể vẽ, người học sẽ thấy thẻ “Ứng dụng này không trả lời” của chính Lingara bằng ngôn ngữ của họ, hoặc thẻ hợp lệ gần nhất của bạn được đánh dấu “Chưa cập nhật”. Người học không bao giờ được cho biết lý do. Chỉ bạn, với tư cách chủ sở hữu ứng dụng, mới thấy lý do:
- Phản hồi của bạn:
invalid(không phải thẻ mà Lingara đọc được),empty(không còn gì để hiển thị sau các giới hạn) hoặctoo_large(lớn hơn 32 KiB). - Kết nối đến máy chủ của bạn:
timeout,http_error(bất kỳ trạng thái nào khác 200),transport(lỗi kết nối hoặc TLS, chẳng hạn như chứng chỉ hết hạn) hoặcblocked(mộtrender_urldẫn đến địa chỉ riêng tư hoặc địa chỉ IP dạng literal). - Phía Lingara:
unavailable(Lingara không thể ký yêu cầu) hoặcbusy(đã có quá nhiều yêu cầu đang được xử lý).