Hallo Auge
Mit Verlaub, das ist Mist. Wenn ich eine Zeile markiere, die von Leerzeilen eingefasst ist, erwarte ich, dass daraus einen Codeblock generiert wird. Die Auszeichnung aus Inlinecode erwarte ich, wenn ich Teile einer Zeile mit voranstehenden und/oder folgenden Zeichen !== Umbrüchen markiere.
Alles Andere ist für mich falsch. Wenn ich die verwirrten Nachfragen der letzten Zeit nicht falsch interpretiere, bin ich damit nicht allein.
Ich habe heute den gesamten Abschnitt überarbeitet und nun folgendes Verhalten implementiert:
-
Wird Text markiert, der mindestens einen Zeilenumbruch enthält, dann wird immer ein Codeblock erzeugt, unabhängig davon, ob vor oder nach der Markierung eine Leerzeile ist oder nicht.
Um zu verhindern, dass der Codeblock nicht gerendert wird, weil vergessen wurde eine Leerzeile davor zu setzen, werden gegebenenfalls Zeilenumbrüche vor den öffnenden Tilden eingefügt. Hinter den Tilden, die den Block beenden, erfolgt immer ein Zeilenumbruch.
-
Wird Text markiert, der keinen Zeilenumbruch enthält, dann hängt es vom Kontext ab, ob Tilden für einen Codeblock oder Backticks für Inlinecode eingefügt werden.
Folgt die Markierung unmittelbar auf zwei Zeilenumbrüche und befindet sich hinter der Markierung ein Zeilenumbruch oder das Ende der Zeichenkette, dann wird ein Codeblock erzeugt. In allen anderen Fällen wird Inlinecode ausgezeichnet.
-
Wird kein Text markiert, dann entspricht das dem im letzten Punkt beschriebenen Verhalten.
Es ist also zu beachten, dass in dem Fall, dass ein neuer Absatz mit Inlinecode begonnen werden soll, entweder vor oder nach der Markierung, beziehungsweise dem Cursor, mindestens ein Zeichen stehen muss, das kein Zeilenumbruch ist.
Wird in diesem Fall zum Beispiel an den Anfang der Zeile ein Leerzeichen gesetzt, dann wird dieses nicht gerendert, aber es sorgt dafür, dass statt eines Codeblocks Inlinecode erzeugt wird.
Beste Grüße,
Orlok