Nach dem Amoklauf und den Überlegungen dazu wusste ich nicht, wie das hier weitergehen soll. Wie schließt man an so ein Thema an, ohne dass eine unpassende Kombination entsteht? Ich will auf der Meta-Ebene bleiben und die Frage so umgehen.
Serendipity verwendet standardmäßig das nl2br-Plugin. Das ist sinnvoll, denn so entspricht das Textverhalten im Editor dem gewohnten - jedes Enter führt eine Zeile weiter nach unten. Es ist nicht sinnvoll, denn nur mit br unterteilte Texte wirken wider der Barrierefreiheit. Diesen Konflikt zu lösen ohne das einfache Enter zu ignorieren ist derzeit die selbstgewählte Aufgabe.
Übrigens nicht ganz freiwillig: Markdown kam scheinbar nicht zu 100% mit dem nl2br-Plugin zurecht. Dieses mal kurz zu deinstallieren um das Problem zu überprüfen war keine gute Idee, die beitragsspezifischen Einstellungen gingen dabei verloren. Es nun wieder zu installieren würde einigen Texten nicht gut tun.
Die Lösung ist manuell recht simpel: Zwei <p>-Tags werden per CSS unterschiedlich konfiguriert. <p class="whitespace"> schafft unter dem Absatz eine Linie Platz, <p class="break"> springt nur in die nächste Zeile:
p {
margin-top: 0em;
margin-bottom: 1em;
}
p.whiteline {
margin-bottom: 1em;
}
p.break {
margin-bottom: 0em;
}
Mit diesen beiden Hilfsmitteln kann man nun den Text sauber und richtig unterteilen.
Zum Glück habe ich das nur bei wenigen Beiträgen ausprobiert. Denn manuell den Html-Code in den Beitrag zu schreiben ist weder komfortabel noch zukunftssicher, will man später das Ganze abändern oder automatisieren. Genau darum geht es nämlich: Das nl2p-Plugin soll einen Textblock mit einem abschließenden Enter mit dem kleinen p-tag umranden, einen mit mehr Entern endenden Textblock dagegen mit dem großen p-tag.
Eigentlich funktioniert das auch schon. Text ohne weitere Elemente wird fehlerfrei behandelt, Blockelemente wie Listen werden nicht angerührt. Für die Kommentare kann man das also schon jetzt nutzen. Der Rest hängt momentan scheinbar daran, dass in <blockquotes> auf die newlines ebenso reagiert werden soll wie im restlichen Beitrag. Das funktionierte in der Testumgebung, nicht aber im echten Betrieb auf dieser Installation mit ihren komplexeren Anwendungsfällen. Daran muss also noch gearbeitet, das Problem genauer untersucht werden.
Ein Nachteil des nl2p: Formatierungsplugins wie Markdown oder textile funktionieren in der Kombination damit nicht oder nur teilweise. Daher müsste so etwas simples wie das s9ymarkup-Plugin her, das sich um <p>s nicht schert, aber ein URL-Tag hat (insbesondere für die Kommentare notwendig). Ein erster Entwurf davon unter dem Arbeitsnamen liquid ist angehängt: kursiv und fett wie bei Markdown mit * bzw. **, einen Link erstellt man (im Grunde wie bei ubuntuusers) mit [Linkziel (Linktitel) Linkname].
Der Code insbesondere des nl2p-Plugins ist grob kommentiert und weitgehend ohne reguläre Ausdrücke. Wer einen Blick hineinwerfen will, im Idealfall um zu helfen, sei dazu ermutigt. Gerade weitere Vereinfachungen müssten mit etwas Distanz zu finden sein, vermute ich, ansonsten gilt es noch die erwähnten Probleme zu lösen. Schön ist der Code allerdings nicht wirklich, weil die Parserlogik nach der gewählten Methode dann doch etwas komplex geworden ist.
Download:
onli blogging am : Ubuntuusers: Ein Team in Geiselhaft
Vorschau anzeigen
onli blogging am : 15 Jahre Serendipity als Entwickler - ein Rückblick und ein Ausblick
Vorschau anzeigen