Apache-Markdown-Handler

Ein Markdown-Handler für Apache

Ein Markdown-Handler für Apache erlaubt es dem Webserver Markdown-Dateien in HTML zu konvertieren und diese, mittels CSS, formatiert, an den Webclient auszuliefern. GitHub verwendet das beispielsweise für die README-Dateien eines Repositories, um dessen Inhalt und Nutzung zu dokumentieren.

Ich wollte meinen lokalen Webserver ebenso dazu ertüchtigen Markdown-Dateien anzeigen zu können. Sébastien Lavoie und Sam Minnée sowie Rubén de Celis Hernández bieten auf GitHub einen Apache Markdown-Handler an. Er ist in PHP implementiert, so dass seine Installation einfach ist.

Ein Markdown-Handler für Apache

Auf meinem Rechner läuft ein Apache 2.4.52 mit PHP 7.4.28 unter macOS 12.2.1 (Monterey). Ich habe mir also den oben genannten Markdown-Handler für Apache von GitHub heruntergeladen und gemäß Anleitung installiert.

Damit das Ganze funktionieren kann, müssen die Module rewrite und actions im Webserver aktiviert sein, was in der httpd.conf so aussieht:

Beim ersten Test kamen einige Fehlermeldungen. Sie basierten allesamt darauf, dass im Original-Code eine veraltete PHP-Syntax verwendet wird. Nun, das war leicht zu beheben. Es mussten lediglich eine Handvoll Programmzeilen angepasst werden. In dem unten angebotenen Download-Archiv findet sich der von mir korrigierte/überarbeitet Code.

Da ich meine Markdown-Dateien in Benutzerverzeichnissen ablegen wollte, war eine weitere Modifikation erforderlich. Zu guter Letzt gefiel mir das mitgelieferte Design nicht. Ich habe daher einen eigenen Stylesheet verwendet, der sich an die Gestaltung von GitHub anlehnt. Dazu habe ich im Handler auch das Tag <article> gesetzt. Das gibt einer Seite dann das Aussehen eines GitHib-READMEs.

Markdown-Beispiel
Markdown-Beispiel

Meine .htacess sieht folgendermaßen aus:

Die Dateien handler.php, markdown.php und style.css habe ich ins markdown-Verzeichnis kopiert – mit den von mir vorgenommenen Anpassungen.

Das war es auch schon! – Naja, nicht ganz. Ich wollte auch noch die Möglichkeit haben, mathematische Formeln mittels MathJax setzen zu können. Dazu habe ich den Handler nochmals angepasst. Er lädt nun die entsprechenden Skripten. Das erfordert freilich eine bestehende Internetverbindung.

Quellcode

Fazit

Ein Markdown-Handler für Apache ist, wenn man auf eine bestehende „Konserve“ zurückgreifen kann, extrem leicht und schnell zu realisieren. Und das aller Schönste ist noch, diesen Markdown-Handler konnte ich auch bei meinem Internet-Provider problemlos installieren. Ich musste nur die .htaccess anpassen – FERTIG. Hier ist ein Beispiel zu sehen. Es beschreibt auch, wie das Download-Archiv zu installieren ist.

In der Tat waren nur wenige Anpassungen erforderlich, den Markdown-Handler zu konfigurieren bzw. teilweise zu korrigieren und zu ergänzen. Meine Eigenleistung was also echt minimal.

Karsten Brodmann

Karsten Brodmann hat an der Universität Osnabrück BWL/Wirtschaftsinformatik studiert. Er hat viele Jahre in der IT gearbeitet und dort Web- und Datenbankanwendungen entwickelt. Seit Gründung der Punkt-Akademie veröffentlicht Karsten Brodmann auch Schulungsvideos zur Datenbankentwicklung, Unix und Programmierung bei Udemy. In seiner Freizeit fotografiert Karsten Brodmann gerne. Seit vielen Jahren fotografiert er analog und digital. Dabei behält er jeweils den gesamten Workflow in der eigenen Hand, von der Aufnahme über die Dunkelkammer oder auch den Scanner sowie die Bildbearbeitung und den Ausdruck am PC.

Weitere Beiträge

1 Kommentare zu “Ein Markdown-Handler für Apache

  1. Ja, Ludwig,
    Tabellen werden out of the box nicht im Markdown-Code unterstützt. Das Plugin ist auch eher als Notbehelf gedacht, nicht für wirklich ausgefeilte Markdown-Dokumente. Du kannst Dich aber mittels HTML behelfen.

    Dann klappt es auch mit Tabellen. – Nicht ganz der Sinn der Übung, zugegeben. Wenn aber erforderlich geht es über diesen Umweg.

    Als Ergänzung zu mathematischen Formeln haben Tabellen nichts zu suchen. Das ist eine externe Geschichte, die nur eingebunden wird. Um Tabellen nativ zu unterstützen müsste das Plugin selbst entsprechend erweitert werden.

    LG
    Karsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert