Mein erstes Wordpress-Plugin: Gedichte mit Zeilennummern

By | 23.3.2014

Aus Gründen möchte ich gerne auch im Browser Gedichte zum Bearbeiten anbieten. Dazu gehören aber Zeilennummern. Diese Nummern will ich aber nicht von Hand schreiben müssen, dafür gibt es Computer. Zeilennummern sind gar nicht so einfach.

Ich möchte Text einfach aus der Webseite herauskopieren können, um ihn weiterzuverarbeiten; ich möchte ebenso einfach Text in Wordpress anlegen können, der dann als zeilennummerierter Text ausgegeben wird. Wordpress macht automatisch Zeilenumbrüche, wenn man Enter drückt, und einen neuen Absatz, wenn man eine Leerzeile lässt – das soll erhalten bleiben beim Kopierexport ins Textverarbeitungsprogramm.

  • Möglichkeit 1: Vor jede fünfte Zeile wird eine Nummer geschrieben, vor jede andere Zeile ein paar Leerzeichen, leere Zeilen werden nicht mitgezählt. Das ist dann aber schlecht, wenn jemand das Gedicht herauskopieren und bearbeiten möchte: dann muss man die Leerzeichen und Zeilennummern von Hand entfernen.
  • Möglichkeit 2: Man packt jede Zeile in ein eigenes Listenelement und lässt dieses per CSS hochzählen. Aber das Herauskopieren geht auch dann nicht so einfach: Zumindest bei meinem Browser kann man den Text herauskopieren, hat beim Einfügen ins Textverarbeitungsprogramm aber noch Listenartefakte. Unklar ist mir außerdem, wie ich die Grenzen zwischen Strophen markieren soll.
  • Möglichkeit 3: Eine zweispaltige Tabelle, links die automatisch erzeugten Zeilennummern, rechts der Text. So funktionieren die meisten Syntax-Highlighter-Plugins, und dafür habe ich mich dann auch entschieden. Schwierig ist allerdings, dass ich nicht mit vorformatiertem Text (mit dem pre-Tag) arbeiten möchte, sondern mit normal formatiertem Text, also mit Zeilenumbrüchen (br-Tag) und Absätzen (p-Tag).

Herausgekommen ist mein erstes Wordpress-Plugin: line-numbers-for-poems. Es ist bestimmt noch nicht sehr effizient, und nicht mit sehr großen Texten getestet, aber es tut, was es soll:






5


Unter Wasser Bläschen machen

Kinder, ein Rätsel! Hört mich an!
Wer es herausbekommt, kriegt Geld! – Wie kann
Man unter Wasser Bläschen machen?

Das müsst ihr versuchen – unbedingt! –
In der Badewanne. Und wenn es gelingt,
Werdet ihr lachen.

Joachim Ringelnatz

Geschrieben wird das im Wodpress-Backend so:

[poem][title]Unter Wasser Bläschen machen[/title]

Kinder, ein Rätsel! Hört mich an!
Wer es herausbekommt, kriegt Geld! – Wie kann
Man unter Wasser Bläschen machen?

Das müsst ihr versuchen – unbedingt! -
In der Badewanne. Und wenn es gelingt,
Werdet ihr lachen.

[author]Joachim Ringelnatz[/author]
[/poem]

Das Gedicht kann man halbwegs einfach kopieren und ins Textverarbeitungsprogramm einfügen, ohne dass die Zeilennummern mitgehen. Das Design steckt in der begleitenden CSS-Datei zum Plugin, probeweise ist der Titel immer fett und der Autor kursiv.
Ob vor oder nach dem author-Shortcode eine Leerzeile kommt, ist egal, ebenso, ob der title-Shortcode (oder der Text selber) unmittelbar nach dem poem-Shortcode steht oder in der Zeile darunter. Und das war ein hartes Stück Arbeit; was allerdings die Zählung immer noch durcheinanderbringt: wenn der Text mit zwei Zeilenumbrüchen hintereinander anfängt.

Technisches:

Das Plugin funktioniert so, dass es auf einen sogenannten Shortcode im Blogeintrag reagiert und diesen durch etwas anderes ersetzt, auch unter Berücksichtigung des Textes, der sich ursprünglich innerhalb der Shortcode-Grenzen befunden hat.
In meinem Fall wird dieser Text genommen, und a) in die rechte Spalte einer Tabelle geschrieben und b) zeilenweise durchgegangen, ob die Zeile mit einem Zeilenumbruch schließt oder einem Absatzende, damit parallel dazu die entsprechend hochgezählten und ebenso mit einem Zeilenumbruch oder einem Absatzende formatierten Zeilennummern in die linke Spalte geschrieben werden. Die Zeilennummern sollen ja bündig zum Text sein, und Absätze sind gerne mal so formatiert, dass sie mehr Abstand haben als eifnache Zeilenumbrüche.

Das klingt kompliziert, aber eigentlich sind solche Shortcode-Plugins bei Wordpress ganz einfach. Hier die offizielle Seite dazu, und hier ein einfaches Tutorial.

Und danke an @texttheater für die Tipps bei Twitter. Wenn ich das Plugin ein paarmal überarbeitet habe, stelle ich es gerne bei Wordpress ein. Ich kann PHP nur so radebrechen und kenne mich wenig aus bei Wordpress, deshalb gibt es sicher noch einiges bei der Effizienz zu verbessern. Im Moment bin ich erst mal froh, dass das funktioniert.

5 thoughts on “Mein erstes Wordpress-Plugin: Gedichte mit Zeilennummern

  1. Pingback: Ins Netz gegangen (23.3.) — »Nächstens mehr.«

  2. Pingback: Die anderen bloggen, ich knippse | Kreide fressen

Schreibe einen Kommentar

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