Auch beim Wechsel des Modus bleibt es ein und dasselbe Dokument
Fühlt es sich so an, als würde sich das Fenster beim Öffnen der Vorschau teilen und das Dokument beim Wechseln des Modus erneut geöffnet werden? Live, Quelltext und Lesen in mote sind drei Ansichten desselben Puffers, sodass beim Wechseln weder eine Konvertierung noch ein Speichern oder erneutes Parsen stattfindet.

Markdown-Editoren teilen den Bildschirm normalerweise in zwei Bereiche. Links schreibt man und rechts sieht man das Ergebnis. Weil dasselbe Dokument zweimal dargestellt wird, müssen Scrollposition und Auswahl ständig synchronisiert werden.
mote wurde anders entwickelt. Es gibt nur ein Dokument, und lediglich die Art der Darstellung ändert sich.
Ein Dokument, drei Ansichten
mote verfügt über drei Modi.
- Live: Blendet die Zeichen aus und zeigt die Formatierung direkt an.
- Quelltext (Source): Zeigt den in der Datei gespeicherten Inhalt unverändert an.
- Lesen (Reading): Zeigt das Ergebnis an, aus dem die Markdown-Zeichen vollständig entfernt wurden.
Der Kern liest das Dokument und erstellt eine Liste von Dekorationen. Es gibt nur drei Arten. Auf welchen Bereich ein Stil angewendet, welcher Bereich ausgeblendet und welcher Bereich stattdessen als Widget dargestellt werden soll.
Die drei Modi sind das Ergebnis unterschiedlicher Filter, die auf diese Liste angewendet werden. Auch beim Wechseln des Modus wird das Dokument weder erneut geöffnet noch analysiert. Sowohl der Blockbaum als auch die Inline-Ergebnisse bleiben unverändert, und nur der Filter wechselt.
So ist es auch im Leistungsbudget festgehalten. Der Moduswechsel muss innerhalb eines Frames und der Übergangsanimation abgeschlossen sein. Wenn dabei erneut geparst wird, ist das ein Verstoß. Da die Kosten des Wechsels nicht proportional zur Dokumentgröße steigen, wechseln auch große Dokumente mit derselben Geschwindigkeit.
Auch der Cursor und der Auswahlbereich bleiben unverändert. Die im Quelltext bearbeiteten Zeichen befinden sich auch in Live an derselben Stelle, und ein in Live ausgewählter Satz bleibt auch im Quelltext ausgewählt.
Man wechselt also nicht zu einer anderen Kopie des Dokuments, sondern betrachtet dasselbe Dokument aus einem anderen Blickwinkel.
Schreiben, überprüfen und lesen
Beim Schreiben ist der Live-Modus praktisch. Auf dem Bildschirm bleibt nur der Inhalt sichtbar, und die Markdown-Zeichen erscheinen, wenn der Cursor sie berührt. Tabellen, Formeln und Bilder werden an Ort und Stelle als Widgets dargestellt. Man kann die Zellen bearbeiten, während man das Raster sieht.
Wenn auch die Zeichen genau überprüft werden müssen, verwendet man den Quelltextmodus. Er eignet sich gut, um zu prüfen, ob die senkrechten Striche einer Tabelle verrutscht sind, ein Codeblock geschlossen wurde oder sich am Zeilenende Leerzeichen befinden.
Der Lesemodus ist die Ansicht für das endgültige Ergebnis. Die Zeichen werden nicht nur ausgeblendet, sondern vollständig vom Bildschirm entfernt. Auch Ausdrucke und PDFs werden auf Grundlage dieser Ansicht erstellt. Eine Bearbeitung ist nicht möglich, aber Text kann ausgewählt und kopiert werden, und auch Links lassen sich öffnen.

Die Umsetzung des Lesemodus war nicht einfach. Denn nachdem die Zeichen entfernt worden waren, unterschieden sich die Positionen auf dem Bildschirm von den Positionen in der Datei. Suchergebnisse verschoben sich zur Seite, und auch die angeklickte Stelle stimmte nicht mehr mit der Cursorposition überein.
Jetzt zeichnet der Kern auch die Position und Länge der entfernten Zeichen auf. Dadurch kann eine auf dem Bildschirm angeklickte Position wieder der exakten Position in der Datei zugeordnet werden.
Direkt an der gelesenen Stelle wechseln
Dazu klickt man im Header auf den gewünschten Modus oder verwendet Ctrl+Shift+1, 2, 3.
Auch nach dem Wechseln bleiben die erste sichtbare Zeile und die Cursorposition erhalten. Die Überblendung ist eine begrenzte Animation von 160ms, sodass nach ihrem Ende keine geplanten Aufgaben zurückbleiben. Im Bearbeitungs-Tab der Einstellungen lässt sich festlegen, in welchem Modus ein neues Fenster geöffnet wird.
Bei den Tastenkürzeln gab es eine kleine Fehleinschätzung. Eine Zeit lang stand in der Anleitung, dass Ctrl+1/2/3 zum Wechseln des Modus dient, tatsächlich waren dies jedoch die Tastenkürzel zum Erstellen von Überschriften. Das Fenster fing die Tasteneingabe zuerst ab, sodass der Code für den Moduswechsel nicht ausgeführt wurde.
Jetzt sind die Aufgaben klar getrennt. Ctrl+Shift+1/2/3 dient zum Wechseln des Modus, während Ctrl+1 bis Ctrl+6 für Überschriften vorgesehen ist. Auch die Befehlspalette, die Liste der Tastenkürzel und die Dokumentation auf der Website wurden so überarbeitet, dass sie alle dieselben Angaben enthalten.
Der Fokusmodus legt sich leicht über die Ansicht
Wenn man F8 drückt, wird nur der Block mit dem Cursor deutlich angezeigt. Bei allen übrigen Zeilen wird lediglich der Alphawert der Tinte auf 32% gesenkt.
Nur die Farbe ändert sich, die Position der Zeichen bleibt unverändert. Da es weder einen Unschärfeeffekt noch eine Animation gibt, muss beim Wechseln zwischen Absätzen nicht der gesamte Bildschirm neu berechnet werden.
Der Fokusmodus ist kein vierter Modus. Er ist eine Option, die über die Live-Ansicht gelegt wird, und man kann zu einem anderen Modus wechseln, während sie aktiviert bleibt.

Warum der Bildschirm nicht geteilt wird
mote verfügt über keine geteilte Vorschau.
Wenn dasselbe Dokument zweimal dargestellt wird, müssen die Scrollpositionen synchronisiert, die Auswahl übertragen und die Zustände beider Ansichten verwaltet werden. mote hat sich von Anfang an dafür entschieden, dieses Problem gar nicht erst entstehen zu lassen.
Auch der Rückgängig-Verlauf, die Auswahl und die Scrollposition sind jeweils nur einmal vorhanden.
Es gibt nicht deshalb drei Modi, weil es drei Dokumente gibt. Es gibt sie, weil es drei verschiedene Momente gibt, in denen dasselbe Dokument betrachtet werden muss.