HTML Text, Code einrücken mit No Break Space und Zeilenumbruch

Zero Width Space, das breitenlose Leerzeichen ermöglicht beides zur gleichen Zeit

Wer seinen Besuchern Texteingaben ermöglicht, kennt das Problem: Soll der Text eingerückt werden, funktioniert das nur mit No Break Space, sind jedoch alle Leerzeichen No Break Space, funktioniert der automatische Zeilenumbruch nicht mehr. Insbesondere bei Foren jedoch, ist genau dieses Verhalten ausdrücklich erwünscht:

Lösung mit No Break Space und Zero Width Space

Betrachten Sie untenstehenden Code, die erste Funktion init() zeigt Ihnen, wie jedes einzelne Leerzeichen ersetzt wird. Der gesamte Abschnitt erfüllt alle oben genannten Bedingungen. Wenn Sie das Browserfenster schmaler machen, werden lange Zeilen automatisch umgebrochen.


my​ $init​ =​ sub{
​ ​ ​ ​ my​ $self​ =​ shift;
​ ​ ​ ​ my​ $code​ =​ do{local​ $/​ =​ undef;​ <DATA>};
​ ​ ​ ​ ​ ​ ​ $code​ =~​ s/​ /pack('C5',​ 0xE2,​ 0x80,​ 0x8B,​ 0xC2,​ 0xA0)/eg;
​ ​ ​ ​ ​ ​ ​ $code​ =~​ s/\n/<br>/g;
​ ​ ​ ​ $self->{STASH}{code}​ =​ $code;
};

Bytesequenzen und Zeichen

Die Datei UnicodeData.txt wird vom Unicode Konsortium verwaltet. In der Datei sind die hier verwendeten Zeichen namentlich beschrieben und mit Codepoint aufgelistet. Die mit dem Suchbegriff space ausgegebene Tabelle zeigt Ihnen auch die hier beschriebenen Bytesequenzen. Das Zero Width Space neben dem No Break Space verbreitert Letzteres nicht, ermöglicht jedoch den automatischen Zeilenumbruch eines Browsers.

Testen Sie es selbst

Ihr Text:

Vorschau, zum aktualisieren hier klicken


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.