Markdown im Terminal anzeigen

Do, 29. September 2022, Ralf Hersel

Im Rahmen unserer aktuellen Serie über strukturierte Notizen haben wir auch einen minimalistischen Ansatz beschrieben, bei dem die Verwaltung von Notizen ausschliesslich im Terminal stattfindet. In den Kommentaren dazu, fragte eine Leser:in "Gibt es Lösungen, um grafisch innerhalb von Dateiverwaltern, wie zum Beispiel Thunar, Markdown-Dateien als Vorschau zu erhalten?"

Da ich die Antwort für nicht relevant im gegebenen Kontext halte, habe ich sie umformuliert "Gibt es Möglichkeiten, wie man Markdown-Dateien im Terminal anzeigen kann?". Die Antwort auf diese Frage war für mich nicht offensichtlich, aber interessant. Was ist zu tun? Die Markdown-Datei muss gerendert und angezeigt werden. Die Lösung soll sich ausschliesslich im Terminal abspielen. Dazu möchte ich euch zwei Varianten anbieten.

Pandoc und Lynx

Diese Lösung schiesst einem als erste in den Kopf, weil Pandoc das Konvertierungs-Genie ist, wenn es um Text-Formate geht. Möchte man das Ergebnis im Terminal darstellen, bietet sich der Terminal-Webbrowser Lynx an. Und so geht es: Sowohl Pandoc als auch Lynx sind in den Repos der verbreiteten Distributionen erhalten und können mit den üblichen Installationsbefehlen eingerichtet werden.

Hat man nun eine Markdown-Datei mit dem Namen markdown.md erstellt, kann diese mit folgendem Kommando gerendert und angezeigt werden:

pandoc markdown.md | lynx -stdin

Pandoc wandelt markdown.md in eine html-Datei um, wonach der Terminal-Browser Lynx die html-Datei über stdin als Input geliefert bekommt und im Terminal anzeigt (siehe Screenshot oben).

Rich

Die zweite Variante verwendet das Python-Modul Rich. Rich ist eine Python-Bibliothek für Rich Text und schöne Formatierung im Terminal. Die Rich-API macht es einfach, Farbe und Stil zur Terminalausgabe hinzuzufügen. Rich kann auch schöne Tabellen, Fortschrittsbalken, Markdown, syntaktisch hervorgehobenen Quellcode, Rückverfolgungen und vieles mehr darstellen.

Das ist viel mehr, als für unseren Zweck benötigt wird. Wichtig ist, dass Rich auch Markdown-Dateien rendern kann. Als Python-Modul installiert man Rich so:

python -m pip install rich

Möchte man eine Markdown-Datei mit Rich anzeigen lassen, verwendet man diesen Befehl:

python -m rich.markdown markdown.md 

Das Ergebnis sieht so aus:

Welche Variante gefällt euch besser? Bei der Pandoc/Lynx-Version gibt es mehr zu installieren und grössere Abhängigkeiten (Haskell). Rich hat einen leichteren Fussabdruck und bietet viele weitere Möglichkeiten, wie man diesem Bild entnehmen kann:

Andererseits gehört Pandoc zur Must-have-Installation für jede:n, der Text-Formate konvertieren möchte. Entscheidet selbst, welche Variante euch besser gefällt. Vielleicht findet ihr noch bessere und elegantere Möglichkeiten, um Markdown-Dateien im Terminal anzuzeigen. Wer Markdown-Dateien des Öfteren im Terminal anzeigen möchte, kann einen der beiden Befehle in seine Shell-Konfiguration als Alias einbinden, z. B.:

alias viewmd='python -m rich.markdown $1'

Die ursprüngliche Frage aus den Kommentaren soll nicht unbeantwortet bleiben:

Gibt es Lösungen, um grafisch innerhalb von Dateiverwaltern, wie zum Beispiel Thunar, Markdown-Dateien als Vorschau zu erhalten?

Wer darauf antworten möchte, kann gerne einen Artikel an kontakt@gnulinux.ch schicken.

Tags

Markdown, Pandoc, Lynx, Rich, Terminal, Renderer