Karten
Diese Seite ist aus dem Englischen übersetzt. Wenn die beiden voneinander abweichen, ist die englische Seite maßgeblich. Englische Seite lesen
Eine Karte ist eine kurze Liste von Elementen, die Lingara in seinem eigenen Stil zeichnet. Es gibt keine Eingabefelder, Bilder, Skripte oder Markup. Eine App kann weder ihren eigenen Code noch ihr eigenes Aussehen auf den Bildschirm eines Lernenden bringen, daher liest sich jede Karte wie der Rest von Lingara. Ihre Antwort ist JSON: eine card mit ihren elements und optional eine tutor_note (siehe Die Tutor-Notiz).
Die Elemente
Jedes Element hat einen type, der einer dieser acht ist:
| Element | Felder | Was es zeigt |
|---|---|---|
heading | text, level | Eine Überschrift. level ist 1 oder 2, jeder andere Wert wird zu 2. Ihr Text hat höchstens 80 Zeichen. |
text | text, lang | Ein Absatz mit höchstens 600 Zeichen. Er ist die einzige Stelle, an der ein Zeilenumbruch erhalten bleibt. |
term | word, reading, gloss, lang | Ein Wort zum Lernen. Nur word ist erforderlich. Das Wort hat höchstens 60 Zeichen, die Lesung 120 und die Glosse 160. |
list | items | Bis zu 20 Einträge. Jeder Eintrag ist ein text oder ein term, mit denselben Feldern wie das gleichnamige Element. |
progress | value, label | Ein Fortschrittsbalken. value reicht von 0 bis 1, und die Beschriftung hat höchstens 60 Zeichen. |
divider | Eine Linie zwischen Teilen der Karte. | |
button | label, action, style | Ein Button, der seine action an Ihren Server sendet. style ist primary oder secondary, und die Beschriftung hat höchstens 32 Zeichen. |
link | label, url | Ein Link, den der Lernende in seinem Browser öffnet, nachdem Lingara ihn gefragt hat. Die Beschriftung hat höchstens 60 Zeichen. |
Ein lang ist ein Sprach-Tag wie ja, damit Lingara die richtige Schrift zeichnet. Ein Wert, der kein Sprach-Tag ist, wird entfernt.
Die Grenzen
- Eine Karte enthält höchstens 24 Elemente. Elemente nach dem 24. werden verworfen.
- Eine Liste enthält höchstens 20 Einträge. Einträge nach dem 20. werden verworfen, und eine leere Liste wird verworfen.
- Eine Karte enthält höchstens 4 Buttons. Buttons nach dem 4. werden verworfen.
- Text, der länger als seine Grenze ist, wird passend gekürzt und endet auf
…. Zeichen werden als Unicode-Skalarwerte gezählt. - Steuerzeichen und Richtungsüberschreibungen werden aus jeder Zeichenkette entfernt.
- Ein Link, dessen Adresse nicht HTTPS ist, einen Benutzernamen enthält oder auf eine IP-Adresse zeigt, wird verworfen.
- Ein Button, dessen
actionlänger als 64 Zeichen ist oder etwas anderes als Buchstaben, Ziffern,_,.,:und-verwendet, wird verworfen. - Ein Element, das nach diesen Regeln keinen Text mehr hat, wird verworfen.
Diese Regeln sind nachsichtig: Lingara kürzt oder verwirft, was nicht passt, und zeichnet den Rest. Die Kits wenden dieselben Regeln an, bevor Sie antworten, sodass Sie sehen, was sich ändern würde.
Striktes Parsen
Das Vokabular ist geschlossen. Ein unbekannter Elementtyp, ein Feld, das ein Element nicht hat, ein Wert vom falschen JSON-Typ oder eine Antwort, die überhaupt kein JSON ist, macht die gesamte Antwort zu einer Ersatzkarte. Lingara zeichnet nie einen Teil einer Karte, die es nicht lesen konnte.
Größe und Zeit
Eine Antwort darf höchstens 32 KiB groß sein. Lingara gibt Ihrem Server 3 Sekunden, um auf ein Rendering zu antworten, und 5 Sekunden, um auf eine Aktion zu antworten, und wiederholt keins von beiden. Eine Antwort muss den Status 200 und einen JSON-Content-Type haben. Weiterleitungen werden nicht verfolgt.
Buttons und Aktionen
Wenn der Lernende einen Button drückt, sendet Lingara Ihrem Server eine Aktionsanfrage mit der action dieses Buttons. Ihr Server antwortet mit einer neuen Karte, die die alte ersetzt. Derselbe Druck kann zweimal ankommen, machen Sie also jede Aktion gefahrlos wiederholbar.
Wenn eine Karte fehlschlägt
Wenn Lingara keine Karte bekommt, die es zeichnen kann, sieht der Lernende Lingaras eigene Karte „Diese App hat nicht geantwortet“ in seiner Sprache oder Ihre letzte gültige Karte, als „Nicht aktuell“ markiert. Der Lernende erfährt nie, warum. Nur Sie als Besitzer der App sehen den Grund:
- Ihre Antwort:
invalid(keine Karte, die Lingara lesen kann),empty(nach den Grenzen bleibt nichts zum Anzeigen übrig) odertoo_large(mehr als 32 KiB). - Die Verbindung zu Ihrem Server:
timeout,http_error(jeder Status außer 200),transport(ein Verbindungs- oder TLS-Fehler, etwa ein abgelaufenes Zertifikat) oderblocked(einerender_url, die zu einer privaten Adresse oder einer IP-Literal-Adresse führt). - Lingaras Seite:
unavailable(Lingara konnte die Anfrage nicht signieren) oderbusy(zu viele Anfragen bereits in Bearbeitung).