Anleitung
Geviertstriche in Markdown: ASCII-Quelltext behalten
Halte Markdown vorhersehbar, wenn ein Editor, Plugin oder Generator ASCII-Bindestriche beim Schreiben oder Rendern in U+2013 oder U+2014 umwandelt.
Von Kris Vinters · Veröffentlicht · 4 Min. Lesezeit
Finde die Schicht, die Striche umwandelt
Markdown selbst verlangt keine intelligente Typografie. Ein zusätzlicher Typografiedurchlauf kann -- in U+2013 und --- in U+2014 umwandeln. Python-Markdown nennt die Erweiterung SmartyPants; andere Editoren und Generatoren bieten ähnliche Optionen für intelligente Satzzeichen oder typografische Symbole.
Die Umwandlung kann beim Tippen, beim Erzeugen von HTML oder in einem späteren Template-Filter passieren. Dadurch entstehen unterschiedliche Diffs: Ein Editor ändert die Quelldatei, ein Renderer kann ASCII im Quelltext lassen und Unicode nur in die Ausgabe schreiben.
Markdown-Erweiterungen nehmen Codebereiche normalerweise aus. Editor-Autokorrektur und die Reihenfolge der Pipeline können aber vor dem Parser arbeiten. Frontmatter wird meist vor dem Fließtext verarbeitet, doch ein Formatierer für die ganze Datei kann auch dort Werte ändern. Prüfe deshalb genau den Stapel, der deine Datei schreibt.
Schreibe und bewahre ASCII-Quelltext
Schalte intelligente Satzzeichen in dem Editor aus, der die Datei speichert. Schalte danach die Strichumwandlung der Markdown-Erweiterung oder des Generators aus, wenn auch das erzeugte HTML ASCII bleiben muss. Suche in den Einstellungen nach Smart Punctuation, SmartyPants, Smart Dashes oder typografischen Symbolen, denn der Name gehört zur jeweiligen Implementierung.
Behalte -- und --- als ASCII-Folgen im Fließtext, wenn das eure Quelltextkonvention ist. Verwende in Codeblöcken, Frontmatter, Shell-Beispielen und Bezeichnern genau die ASCII-Syntax der Zielsprache. Prüfe Quelltext-Diff und Build-Ausgabe getrennt, damit du die ändernde Stufe kennst.
Muss ein Formatierer aktiv bleiben, begrenze ihn auf Prosa oder nimm Code, Frontmatter, erzeugte Dateien und Testdaten aus. Eine Repository-Prüfung auf Nicht-ASCII kann unbeabsichtigte Ersetzungen finden, muss aber beabsichtigte Sprachen und Testdaten zulassen.
Enthält der Text bereits Unicode-Striche, füge nur die Prosa in Ghostchars ein, öffne Erweitert und wähle »Satzzeichen als reines ASCII«. Diese Option wandelt U+2013 und U+2014 in ASCII-Bindestriche um. Sie ändert auch andere typografische Satzzeichen, deshalb prüfe die Funde und bearbeite nicht blind eine ganze Quelldatei.
Das ist Zeichennormalisierung, keine Aussage zur Urheberschaft. Der Reiniger ändert ausgewählte Satzzeichen. Der Stilbericht misst unter anderem die Strichhäufigkeit und liefert Messwerte, kein Urteil.
Halte Codeblöcke, Frontmatter und Diffs stabil
Lege ein kleines Regressionsbeispiel an: Prosa mit -- und ---, einen Inline-Codebereich, einen eingezäunten Codeblock und einen Frontmatter-Wert. Baue es mit demselben Befehl wie in Produktion und vergleiche Quelle und Ausgabe. So erkennst du Änderungen am Renderer, ohne ein Verhalten für alle Markdown-Systeme zu behaupten.
Zeigt ein Diff einen anderen Strich, prüfe zuerst die Rohdatei. Ist sie noch ASCII, hat der Renderer die typografische Ausgabe erzeugt. Steht der Unicode-Codepunkt bereits im Quelltext, prüfe Autokorrektur, Formatieren beim Speichern, Einfügetransformationen und Formatierer vor dem Commit.
Fragen zu Markdown-Strichen
Wandelt Markdown zwei oder drei Bindestriche von selbst um?
Keine allgemeine Markdown-Regel verlangt das. Eine Erweiterung, ein Editor, Theme oder Generator kann die Umwandlung hinzufügen. Prüfe Implementierung und Konfiguration.
Ändert intelligente Typografie Codeblöcke?
Markdown-Erweiterungen nehmen Codebereiche meist aus, ein Editor oder Ganzdatei-Formatierer kann aber vor dem Parser laufen. Prüfe deine wirkliche Pipeline mit einem Build-Beispiel.
Kann die veröffentlichte Seite U+2014 nutzen, obwohl die Quelle ASCII bleibt?
Ja. Ein Renderer kann --- in der Quelle lassen und U+2014 nur im HTML ausgeben. Müssen Quelle und Ausgabe ASCII bleiben, schalte auch diesen Renderdurchlauf aus.
Weitere praktische Erklärungen findest du in allen Anleitungen zu versteckten Zeichen und den Grenzen der Reinigung.