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:
1 2 |
LoadModule actions_module lib/apache2/modules/mod_actions.so LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so |
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.
Meine .htacess
sieht folgendermaßen aus:
1 2 |
Action markdown /~karsten/markdown/handler.php AddHandler markdown .md |
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.
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.
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