Atom als Markdown/Pandoc-Editor

Seit mehr als 20 Jahren verfasse ich nahezu alle meine Texte, Hunderte von Seiten jedes Jahr, mit dem Editor Emacs. Selten hat mich seither ein anderer Editor in Versuchung gebracht, zu wechseln. Zu den wenigen Ausnahmen zählt Atom. Der Editor ist schnell zu erlernen, hat eine moderne Oberfläche, läuft unter Linux/Windows/macOS. Außerdem ist es sehr weitreichend konfigurierbar, und das ganz ohne Emacs-Gruft und Elisp-Horror.

Dieser Beitrag stellt Atom kurz vor und zeigt seinen Einsatz als Editor für Markdown-Dokumente in der Pandoc-Variante.

Das Grundgerüst von Atom ist Electron, ein Software-Konglomerat, das im wesentlichen aus Chrome (für das HTML-Rendering und als JavaScript-Engine) und aus Node.js zusammengesetzt ist.

Pakete

Atom ist ein modular aufgebauter Editor. Alle Funktionen mit Ausnahme elementarer Grundfunktion sind in Form von Paketen realisiert. Standardmäßig sind bereits rund 80 Core-Pakete installiert. Welche das sind, verrät File/Settings bzw. Atom/Preferences (macOS) im Dialogblatt Packages.

Liste der installierten Packages in Atom unter macOS

Neue Pakete und Themes (die das Aussehen von Atom beeinflussen) können Sie im Dialogblatt Install der Einstellungen suchen und installieren. Dabei haben Sie aktuell die Wahl aus über 5000 Paketen.

Pakete können nach der Installation mühelos wieder entfernt oder auch nur deaktiviert werden. Außerdem sehen viele Pakete einen Settings-Button vor, um Einstellungen des Pakets zu verändern. Zur Bedienung der Pakete finden Sie im Menü Packages entsprechende Kommandos. In diesem Menü sind die Pakete alphabetisch geordnet. Neu installierte Pakete werden anfänglich am Ende des Menüs platziert, ab dem nächsten Neustart von Atom aber wieder in alphabetischer Reihenfolge angeordnet.

Markdown-Unterstützung ohne Konfiguration

Grundsätzlich kommt Atom mit Markdown-Dateien standardmäßig zurecht. Bei Dateien mit der Endung *.md führt Atom automatisch ein ganz brauchbares Syntax-Highlighting durch. Die Tastenkombination Shift+Ctrl+M öffnet neben dem Text ein Preview-Ansicht, die ebenfalls für viele Zwecke ganz passabel ist. Damit übertrifft Atom quasi aus dem Stand und ohne jede Konfigurationsarbeit den Funktionsumfang vieler Markdown-Editoren. Und ist darüber hinaus nahezu unbegrenzt erweiterungsfähig und konfigurierbar …

Atom-Editor unter Ubuntu-Linux im Default-Dark-Scheme. Links eine Markdown-Datei, rechts die Vorschau.

Mit den in meiner Datei (übrigens Kapitel 1 meines Swift-Buchs) inkludierten LaTeX-Anweisungen kommt freilich weder das Syntax-Highlighting noch die Vorschau zurecht.

Light oder Dark Theme

Nach der Installation zeigt sich Atom von seiner dunklen Seite, d.h. Text wird in weißer/heller Schrift auf schwarzem Hintergrund angezeigt. Das mag modern sein, ich bin aber kein Fan davon. Abhilfe: File/Settings bzw. Atom/Preferences (macOS), Dialogblatt Themes, dort UI Theme und Syntax Theme neu einstellen (z.B. auf One Light).

Neue Datei-Extension definieren

Aus historischen Gründen haben die meisten meiner Markdown-Dateien die Endung *.text. Natürlich könnte ich sie in *.md umbenennen, weniger Arbeit macht es aber, Atom die neue Endung einfach beizubringen. Dazu öffnen Sie die zentrale Atom-Konfigurationsdatei config.cson mit File/Config oder mit Atom/Config (macOS). Danach fügen Sie nach den schon vorhandenen Zeilen "*": und core: vier neue Zeilen ein:

"*":
  core:
    customFileTypes:
      "source.gfm": [
        "text"
      ]

Das bewirkt, dass die Dateierweiterung *.text der Programmiersprache gfm zugeordnet wird. gfm steht dabei für GitHub Flavored Markdown, also für die Markdown-Variante, die auf GitHub üblich ist und die von Atom standardmäßig unterstützt wird.

Markdown-Preview-Plus mit Pandoc

Alle Bücher, die ich seit 2013 neu geschrieben habe, sind mit Pandoc und LaTeX gesetzt. Prinzipiell verwende ich also Markdown, allerdings angereichert um Pandoc-spezifische Elemente, einige LaTeX-Kommandos und ein paar eigene Erweiterungen, die durch sed– und python-Scripts verarbeitet werden. Eine echte Kontrolle des endgültigen Erscheinungsbilds ist nur möglich, wenn ich die Markdown-Texte mit pandoc in LaTeX-Code umwandle und aus diesem dann in einem zweiten Schritt eine PDF-Datei erzeuge.

90% aller Layout-Elemente lassen sich aber auch in einer simplen HTML-Preview kontrollieren. Und das gelingt sogar direkt in Atom, wenn einige Voraussetzungen erfüllt sind:

  • Das standardmäßig aktive Package markdown-preview muss deaktiviert werden (Button Disable).
  • Stattdessen muss das Package markdown-preview-plus installiert werden.
  • Dessen entscheidender Vorteil besteht darin, dass es anstatt der simplen GitHub-Markdown-Engine auch Pandoc aufrufen kann. Dazu müssen einige Optionen des Package konfiguriert werden:
    • Option Enable Pandoc Parser aktivieren.

    • Option Pandoc Options: Path einstellen. Unter Linux und macOS können Sie den Pfad der Pandoc-Installation einfach in einem Terminal mit which pandoc ermitteln. Unter Windows müssen Sie mit dem Explorer danach suchen. Üblich ist C:\Program Files (x86)\Pandoc\pandoc.exe.

    • Option Pandoc Options: Commandline Arguments einstellen: Hier können Sie Optionen angeben, die an Pandoc übergeben werden sollen. Wichtig: Wenn Sie mehr als eine Option angeben möchten, müssen Sie die Optionen durch Kommata trennen, also z.B. --option1 bla, ---option2, --option3 meh. Die Option -c my.css ist nicht zulässig. Eine eigene CSS-Datei für die Vorschau bringt leider die gesamte Atom-Oberfläche durcheinander.

    • Option Pandoc Options: Markdown Flavor einstellen: Hier geben Sie an, welche Markdown-Variante pandoc verwenden soll. Standardmäßig gilt markdown-raw_tex+tex_math_single_backslash. Für meine Zwecke ist einfach markdown erforderlich, also gewissermaßen der Standard-Markdown-Dialekt von Pandoc.

Konfiguration des Packages »Markdown-Preview-Plus«, damit dieses Pandoc verwendet.

Der (für mich) offensichtlichste Vorteil der Preview-Funktion mit pandoc besteht darin, dass diverse LaTeX-Kommandos, die nur für das finale Drucklayout relevant sind, aus der Vorschau verschwinden. Es bleibt also quasi der reine Text übrig.

Atom unter Windows (Light Theme) mit Pandoc-Preview.

Mehr Markdown-Pakete

Die Markdown-Unterstützung in Atom endet nicht bei den hier präsentierten Packages. Es gibt unzählige weitere Packages, mit denen z.B. Textpassagen ein- und ausgeklappt werden können (markdown-folder), die Vorschau mit der Cursor-Position synchronisiert werden kann (markdown-scroll-sync) etc. Suchen Sie einfach im Install-Dialogblatt von Atom nach markdown!

Diverse Erweiterungspakete bieten Markdown-Zusatzfunktionen an.

LaTeX-Syntax-Highlighting

In meine Markdown-Dateien sind häufig »gewöhnliche« LaTeX-Kommandos eingebettet, von \index{bla} bis \newline. Schön wäre, wenn Atom diese eingebetteten Kommandos erkennen und beim Syntax-Highlighting entsprechend berücksichtigen könnte. Dazu habe ich keine Möglichkeit gefunden. Stattdessen markiert Atom das nächste Zeichen hinter einem \ färbig, so als wäre damit ein Sonderzeichen gemeint.

Das Paket language-pfm-enhanced verspricht ein besseres, Pandoc-kompatibleres Syntax-Highlighting als language-gfm. Offensichtlich kommt es mit gut mit mathematischen Formeln zurecht, die in den Markdown-Text integriert sind. Aber für meine Zwecke bietet language-pfm-enhanced keine spürbaren Vorteile.

Kurzum, hier gäbe es aus meiner Sicht noch Verbesserungsbedarf. (Wobei mir klar ist, dass das Parsen verschiedener Sprachen in einem Text — hier also Markdown, HTML und LaTeX — immer schwierig ist.)

Atom versus Emacs

Atom ist ein wirklich faszinierender Editor, insbesondere was die einfachen Erweiterungs- und Konfigurier-Möglichkeiten betrifft. Meinen Emacs ersetzt es mir momentan noch nicht: Atom bietet im Vergleich zu dem auf meine Bedürfnisse optimal konfigurierten Emacs aktuell keine klaren Vorteile. Ich bin mir ziemlich sicher, dass ich Atom mit ähnlichen Funktionen wie den Emacs konfigurieren könnte — nur wäre das sicherlich mit viel Probieren und stundenlanger Arbeit verbunden. So werde ich wohl bis auf weiteres bei meinem Standardeditor bleiben.

Stünde ich aber heute vor der Entscheidung, mich in einen Editor neu einzuarbeiten, würde ich Emacs und Vi wohl links liegen lassen und mein Glück mit Atom versuchen.

Quellen

5 Gedanken zu „Atom als Markdown/Pandoc-Editor“

  1. Danke für den Markdown-Editor-Einblick.
    Mein Lieblingseditor nach Vim ist inzwischen Visual Studio Code https://code.visualstudio.com/ . Der Editor baut ursprünglich auch auf Atom auf, ist für mich aber wesentlich schneller und ausgereifter.

  2. Hallo,
    Ich habe dies getestet. Vielen Dank für den Tipp! Leider habe ich ein kleines Problem und zwar: Die Preview-Funktion sieht wie bei ihnen sehr gut und ansprechend aus aber das exportierte PDF hat ein komplett anderes Layout und Schrift. Können sie mir hier einen Tipp geben?

    Besten Dank.

    1. Die Vorschau in Atom verwendet eine Atom-eigene CSS-Datei zur Layout-Gestaltung. Darauf haben Sie keinen Einfluss.

      Wenn Sie die Datei später mit pandoc selbst in eine HTML-Datei umwandeln, können Sie eine eigene CSS-Datei mit -c übergeben. Diese bestimmt die Formatierung. In einem Webbrowser können Sie dann eine PDF daraus machen.

      pandoc kann aus einer Markdown-Datei auch direkt eine PDF machen. Das geht dann aber über den Umweg LaTeX. Zur Layout-Gestaltung müssen Sie eigene LaTeX-Header-Dateien verwenden, was aber relativ kompliziert ist.

      1. Vielen Dank. Ich habe mir jetzt noch Asciidoc(tor) angesehen und das spricht mich spontan noch mehr an.

  3. Ich habe momentan mehrere Editoren zur Auswahl, die unter Windows, Linux und MacOS laufen. Noch kann ich mich nicht entscheiden, was es letztendlich wird aber momentan führt bei mir Komodo-Edit, danach kommt Visual Studio Code, wegen seinen Plugins.

Kommentare sind geschlossen.