Der Pilgermaske Blog

der andere blog - Willkommen!

Markdown mit Apache ohne Markdown-Modul: Äääääh!?

- Veröffentlicht unter Systeme von

So wie es PHP, Python, SSL und andere Apache Module gibt, wünschen sich einige Webmaster auch ein Markdown Modul. Verlockend ist es, einen Ordner über Apache anzubieten, in dem Markdown Dateien hinein geworfen werden und voll umgesetztes Markdown ausgegeben wird. Tatsächlich gibt es auch (ich glaube drei) Markdown Apache Module (siehe unten), die aber relativ veraltet sind und auch nicht direkt aus den Distro-Repos installiert werden können. Also schaut sich Admina mal nach Alternativen um.

Um es gleich zu sagen, ich bin kein Programmierer. Ich sehe das eher pragmatisch: Wenn meine Sache damit funktioniert ist es gut. Ich weiß, der Ansatz kann nicht immer funktionieren… In diesen Fall recherchierte ich über google nach einer Alternative und fand einen Markdown Parser zum basteln. Ein Parser ist quasi ein Umsetzer von Markdown innerhalb einer PHP, Perl, Javascript oder Was-auch-immer-Umgebung. Hier findet sich eine kleine Auflistung von verschiedenen Markdown Parser. Ich habe mich mal an dem Parsedown-Markdown Parser versucht. Dieser Parser wird lt. Projektseite auch von einigen bekannten CMS Systemen benutzt.

Der Parsedown-Markdown Parser steht unter der MIT License, nutzt PHP 5.3 bis 7.3, besteht aus einer Datei, hat keine Abhängigkeiten, unterstützt ‘Markdown Extra’ (siehe Wikipedia link oben) und kann auch über den composer installiert werden.

Die Logik ist einfach: Lade das Parsedown Paket mit wget auf deinen Webserver in einen webroot Ordner, entpacke es und berechtige den user www-data (Apache User unter Ubuntu) auf diesen Ordner (chown -R www-data:www-data). Schreibe eine index.php (siehe Beispiel-Code unten) mit Verweis auf den Parser und auf den Ordner mit dem Markdown-formatierten Artikel. Das könnte z.B. so aussehen:

<?php
require_once 'parsedown-master/Parsedown.php';
$parsedown = new Parsedown();
$text = file_get_contents("artikel/index.md");
echo $parsedown->text($text);
?>

Du siehst, ich habe im webroot Ordner einen Ordner /parsedown-master angelegt, in dem der Parser liegt. Zusätzlich habe ich einen Ordner /artikel angelegt, in dem die .md Datei abgelegt wird – Die index.md schreibst Du in markdown-isch und fertig.

Es gibt einige Markdown Parser, wobei diese auch mehr oder weniger Markdown unterstützen – also probiere einfach einige aus. Beachte: Der gezeigte Code ist nur ein POC – Sicherheitskonzepte sind hier nicht beachtet worden. Also erstmal auf einen Testserver testen.

Weblinks zum Artikel

| hamano und sundown und hoedown

Comments