NL2BR plugin und mysteriöse newlines

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Nein, warum?
Sobald man einen Eintrag speichert, wird das NL2BR-Plugin aufgerufen und das fertige HTML in table $PREFIX_entryproperties gespeichert. Das ist die primäre Ausgabe und default!, oder? Somit gilt JEDE Änderung im NL2BR-Plugin immer nur für neue bzw neu abgespeicherte Entries, bzw Admin Panel Vorschauen. So hab ich das bisher verstanden.

Ian
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Ich gebe mal ganz generell meinen Senf dazu, von dem ich annehme, dass alle NL2BR-Verfechter ihn „viel zu restriktiv“ finden werden.

Es gibt in semantisch korrektem (X)HTML genau einen sinnvollen Anwendungsfall für <br />: Um innerhalb eines Textabsatzes einen bewussten manuellen Zeilenumbruch zu setzen.

Dummerweise beschränkt sich diese Anwendung genau genommen aber nicht auf Umbrüche innerhalb von <p></p> -- es ist ebensogut denkbar, einen manuellen Umbruch innerhalb z.B. von <li></li> setzen zu wollen. Selbst innerhalb einer Überschrift ist das denkbar.

Allerdings kann man auf diese Weise auch recht gut ermitteln, an welchen Stellen im Markup <br /> eben nicht zulässig ist, z.B. innerhalb <ul></ul>, aber gleichzeitig nicht innerhalb <li></li>. Sowas hier:

Code: Select all

<ul>
<li>...</li><br />
<li>...</li><br />
</ul>
ist definitiv nicht zulässig (und auch nicht notwendig). Daraus müsste man eine entsprechende Liste erstellen und die Anwendung von NL2BR anhand dieser Liste einschränken.

Wobei ich nach wie vor der Meinung bin, dass es abgeklemmt gehört, sobald ein WYSIWYG-Editor genutzt wird (das muss für jeden Benutzer seperat ermittelt werden) oder andere Markup-Plugins wie z.B. Textile oder Markdown, welche die Funktionalität von NL2BR „übernehmen“ aktiv sind (wobei sich da noch das Problem stellt, dass man diese meist auf bestimmte Bereiche des Blogs beschränken kann).

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Hi YL
yellowled wrote:Es gibt in semantisch korrektem (X)HTML genau einen sinnvollen Anwendungsfall für <br />: Um innerhalb eines Textabsatzes einen bewussten manuellen Zeilenumbruch zu setzen.
Ja und genau darum gings mir. Das habe ich nun mit der neuen Option gelöst, wenn auch viel zu generell...., deshalb
yellowled wrote:Daraus müsste man eine entsprechende Liste erstellen und die Anwendung von NL2BR anhand dieser Liste einschränken.
ist es lustig, dass ich dito auch schon gerade daran dachte, ob man nicht mit so einer Liste mehr Raum für Individualität schaffen könnte. Da du darin doch sehr bewandert scheinst, könntest du doch mal eine solche rasch zusammenstellen und posten, oder?! Man muss ja nicht gleich alles abdecken!
yellowled wrote:Wobei ich nach wie vor der Meinung bin, dass es abgeklemmt gehört, sobald ein WYSIWYG-Editor genutzt wird (das muss für jeden Benutzer seperat ermittelt werden) oder andere Markup-Plugins wie z.B. Textile oder Markdown, welche die Funktionalität von NL2BR „übernehmen“ aktiv sind (wobei sich da noch das Problem stellt, dass man diese meist auf bestimmte Bereiche des Blogs beschränken kann).

Ja das stimmt! Da sind wir ja gerade dabei. Vielleicht hat jemand mal schnell Garvins Buch zur Hand und kann hier posten, woran man Textile ON und Markdown ON per Variable erkennt.

Ian
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Das mit der Liste habe ich jetzt schon mal verwirklicht.
Es dreht sich dabei um folgende tags: 'table|tbody|tfoot|thead|th|tr|td|ol|ul|li|dl|dt|dd'
dt und dd sind dabei, damit man übersichtlicher im formfeld gestaltend schreiben kann.
Wer innerhalb dieser beiden tags wirklich mit einem Leerzeichen anfangen will, dem sollte ein doppeltes Enter nicht zuviel sein...

Ian

update (s.u.):
Last edited by Timbalu on Sun Dec 12, 2010 11:25 am, edited 3 times in total.
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Timbalu wrote:Es dreht sich dabei um folgende tags: 'table|tbody|tfoot|thead|th|tr|td|ol|ul|li|dl|dt|dd'
Lässt sich meiner Einschätzung nach reduzieren auf th, td, li, dt, dd. Als Kindelement aller anderen Elemente macht <br /> keine Sinn. In Tabellen sollte man noch caption hinzunehmen.

Generell gibt es noch mehr Elemente, in denen ein Zeilenumbruch Sinn machen würde, aber eine vollständige Liste kann ich jetzt auf Anhieb auch nicht aus dem Ärmel schütteln.
Timbalu wrote:dt und dd sind dabei, damit man übersichtlicher im formfeld gestaltend schreiben kann.
Formfeld?

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Nee, nee, du musst ja davon ausgehen, dass ein Blogger in etwa so schreibt:

Code: Select all

<h2>Advent</h2>
<table cellspacing="0" style="irgendwas">
<tr>
<td>
Advent, Advent,
ein Lichtlein brennt!
Erst eins, dann zwei, dann drei, dann vier,
dann steht das Christkind vor der Tür!
</td>
</tr>
</table>
also möglichst einfach und übersichtlich (und nicht immer w3c konform). NL2BR - als php interne Funktion - macht daraus immer (verkürzt):

Code: Select all

</h2><br />
<table><br />
<tr><br />
<td><br />
Advent,<br />
brennt!<br />
vier,<br />
Tür!<br />
</td><br />
</tr><br />
</table><br />
und FF fügt später zb noch tbody und thead hinzu.
Je nach Menge der benutzten markups kann da ordentlich was bei raus rauskommen..., Dafür ist diese nachträgliche Option, 'NL2_reverse' da, ohne gleichzeitig den sinnvollen Einsatz von nl2br zu zerstören. Ganz wird man das sowieso nie treffen können, aber doch so, dass es eine Erleichterung beim Schreiben solcher Konstrukte im Formfeld (textarea) gibt. Und es ist optional, also für diejenigen, denen solches öfter unterkommt.
Caption und col... hatte ich noch gar nicht auf der Liste, aber jetzt
'table|thead|tbody|tfoot|th|tr|td|caption|colgroup|col|ol|ul|li|dl|dt|dd' es werden daher auch nur Konstrukte wie <tag><br /> auf <tag>\n zurückgesetzt.

Ian

und die regex auch noch etwas aufgehübscht
Datei gelöscht (siehe weiter im thread)
Last edited by Timbalu on Thu Dec 16, 2010 1:06 pm, edited 1 time in total.
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Timbalu wrote:Dafür ist diese nachträgliche Option, 'NL2_reverse' da, ohne gleichzeitig den sinnvollen Einsatz von nl2br zu zerstören.
Ah, für Dummies wie mich heisst das also: nl2br (PHP) haut diese ganzen sinnlosen und falschen <br /> rein, ohne dass man es irgendwie filtern, steuern oder beeinflussen könnte, und nl2br (S9y) holt dann die total sinnlosen wieder raus und lässt nur die einigermaßen sinnlosen drin? Und die Welt fragt sich ernsthaft, warum ich dieses Plugin überflüssig finde?
Timbalu wrote:Ganz wird man das sowieso nie treffen können, aber doch so, dass es eine Erleichterung beim Schreiben solcher Konstrukte im Formfeld (textarea) gibt.
Was hat denn jetzt <br /> mit <textarea> zu tun?

Versuch einer Liste von (X)HTML-Elementen, als deren direktes Kind <br /> meiner Einschätzung nach zulässig sein dürfte:

* Überschriften: <h1>-<h6>
* Abschnitte: <p>, <address>, <code> (aber nicht innerhalb <pre>!), <div>
* Listen: <li>, <dt>, <dd>
* Tabellen: <th>, <td>, <caption>

Ohne Anspruch auf Vollständigkeit, aber das wär's auch schon. Selbst bei <th> und <td> bin ich mir nicht einig -- ich würde innerhalb einer <td> nie <br /> verwenden, man kann durchaus diskutieren, ob es dann noch tabellarische Daten wären oder nicht ein anderes Elemente semantisch korrekter ist. Das ist ja die Schwierigkeit bei HTML -- prinzipiell muss man sich immer erst fragen, ob das gewählte Element semantisch korrekt ist, das kann aber kein Editor der Welt leisten.

Ganz haarig sind die ganzen Inline-Elemente wie <strong>, <em> usw. Nimm folgendes Beispiel an:

Code: Select all

<p>Blafasel <em>blafasel<br />
blafasel</em> blasfasel.</p>
Hm.

Ein weiteres Problem ist die positionsabhängige Zulässigkeit:

Code: Select all

<p>Das ist ein<br />Textabsatz.</p>
vs

Code: Select all

<p><br />Das ist ein Textabsatz.</p>
Das erste Beispiel ist sinnvoll, das zweite nicht.

Aber man muss vermutlich bei einem solchen Plugin auch den Anspruch auf wirklich korrektes Markup sausen lassen ... :?

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

yellowled wrote: Ah, für Dummies wie mich heisst das also: nl2br (PHP) haut diese ganzen sinnlosen und falschen <br /> rein, ohne dass man es irgendwie filtern, steuern oder beeinflussen könnte, und nl2br (S9y) holt dann die total sinnlosen wieder raus und lässt nur die einigermaßen sinnlosen drin? Und die Welt fragt sich ernsthaft, warum ich dieses Plugin überflüssig finde?
NEIN! NL2BR ist eine PHP Funktion, die - eingeschaltet - alle USER verursachten Umbrüche aus einem Formfeld oder TEXTAREA völlig wertfrei in <br />\n verwandelt. Dabei ist es ihr ebenfalls völlig egal, was der User geschrieben hat!
yellowled wrote: Was hat denn jetzt <br /> mit <textarea> zu tun?
Wo schreibst du deine Blogtexte? Die Frage verstehe ich nicht!
Nun sind User, so auch ich, gerne faul - bzw haben ihre Prioritäten einfach anders gesetzt - und wollen ihre Texte, die möglicherweise mit markup versehen sind, nicht umbruchlos aneinandergereiht, sondern einigermaßen übersichtlich verfassen. Jetzt kommt die optionale REVERS Funktion ins Spiel, die, so sie eingeschaltet ist, alle möglicherweise eingefügten <br />\n für bestimmte tags (siehe liste) wieder rückgängig macht. Das ist alles!

Es geht NICHT darum, wo <br /> erlaubt ist! Die Frage, ob etwas semantisch korrekt oder angebracht ist, interessiert sowieso nur die wenigsten. Deshalb sind Browser ja auch so tolerant! Menschen sind einfach fuzzy (und ich finde das macht sie gerade Sympathisch) und nehmen in der Herde gerne den kürzesten Weg. Die Soziologie, als Wissenschaft von den Voraussetzungen, Abläufen und Folgen des Zusammenlebens von Menschen, kennt zu solchen Abkürzungspfaden tolle Beispiele. Grundsätzlichkeit trifft Leben, vice versa. Wer den Anspruch auf wirklich korrektes Markup hat, der benutzt das Plugin sowieso nicht! :wink:

Und wenn sich bessere Ideen in Code gießen lassen, findet sich bestimmt auch ein Gärtner.

Ian
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Timbalu wrote:Wo schreibst du deine Blogtexte? Die Frage verstehe ich nicht!
Ich ging davon aus, dass nl2br auf den Datenbank-Eintrag des Eintrags wirkt, nicht bereits auf das textarea des Editors. Du vergisst, dass ich kein PHP-Coder bin. :)
Timbalu wrote:Es geht NICHT darum, wo <br /> erlaubt ist!
Doch, genau darum geht es.
Timbalu wrote:Menschen sind einfach fuzzy (und ich finde das macht sie gerade Sympathisch)
Okay, meine weitere Hilfe in Bezug auf dieses Plugin ist sinnlos. Dann eben nicht.

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Ja, natürlich wirkt nl2br() auf den Datenbankeintrag und zwar nach dem submit aus der textarea!
Aber nicht auf s9y_entries, sondern auf s9y_entryproperties, die Ausgabetabelle.

Zu Punkt zwei:
Nur, was genau willst du damit erreichen? Ein Feldzug, das alle nur noch sauber schreiben?
Das ist ehrenwert, aber nicht sehr lebenserfahren..!

Zu Punkt drei:
Dies fände ich solcherdings sehr humorlos und auch schade, da dein Ansatz immer weiterhilft, ... nur nicht, wenn daneben nichts anderes mehr gelten darf. :)
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Timbalu wrote:Nur, was genau willst du damit erreichen? Ein Feldzug, das alle nur noch sauber schreiben? Das ist ehrenwert, aber nicht sehr lebenserfahren..!
Den Feldzug führe ich (und nicht nur ich) seit Jahren ganz unabhängig von S9y. Das ist weder ehrenwert noch lebenserfahren, sondern notwendig und sinnvoll. Ich möchte das Web nicht nur jetzt und in den nächsten 14 Tagen benutzen, sondern auch noch in 20, 30 Jahren. Das geht nur, wenn sich möglichst viele Menschen an Webstandards halten oder man ihnen technische Hilfsmittel zur Verfügung stellt, damit sie das ohne Hintergrundwissen können.
Timbalu wrote:Dies fände ich solcherdings sehr humorlos und auch schade, da dein Ansatz immer weiterhilft, ... nur nicht, wenn daneben nichts anderes mehr gelten darf. :)
Das hat weder etwas mit humorlos zu tun noch geht es um „meinen Ansatz“. Es geht auch nicht um das, was Du für sinnvoll hältst oder um irgendwelche krausen Theorien aus der Soziologie: Es geht um einen allgemein gültigen technischen Standard.

Wie auch immer, ich habe bereits dargelegt, was ich aus meiner Sicht dazu beitragen kann. Für weitere Diskussionen, womöglich auf Meta-Ebenen ist mir meine Zeit zu schade und dieses Forum der falsche Ort.

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

yellowled wrote:... Das geht nur, wenn sich möglichst viele Menschen an Webstandards halten oder man ihnen technische Hilfsmittel zur Verfügung stellt, damit sie das ohne Hintergrundwissen können.
Wie gesagt, da stimme ich dir zu. Ich finde auch, dass die Diskussion sich vom eigentlichen Thema etwas abgehoben hat. Was genau ist denn nun dein Vorschlag, dass man dieses nun auch tun kann?

Ian
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: NL2BR plugin und mysteriöse newlines

Post by yellowled »

Timbalu wrote:Was genau ist denn nun dein Vorschlag, dass man dieses nun auch tun kann?
Wäre es allein meine Entscheidung, wäre dieses Plugin nicht standardmäßig aktiv bzw. gar nicht erst im Kern enthalten. Da das nicht so ist und die Mehrheit der Entwickler dieses Plugin für erhaltenswert hält, wäre das meines Erachtens geringste Übel:

1. Plugin deaktivieren, wenn einer der WYGIWYS-Editoren oder eines der Markup-Plugins Markdown und Textile aktiv.

2. Per default nicht NL2BR, sondern NL2P nutzen.

3. Gleichzeitig sicherstellen, dass <br /> nur als direktes Kind der Elemente erhalten bleibt, innerhalb derer es zulässig und sinnvoll ist (siehe oben) -- es sei denn, jemand aktiviert ausdrücklich den NL2BR-Modus. Wer das dann explizit einstellt, muss halt sehen, wie er klarkommt.

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

yellowled wrote:1. Plugin deaktivieren, wenn einer der WYGIWYS-Editoren oder eines der Markup-Plugins Markdown und Textile aktiv.
Na, da sind wir ja gerade dabei. Es werden eigentlich nur noch die Variablen benötigt, mit denen man erkennt, ob Markup oder Textile angeschaltet sind.
yellowled wrote:2. Per default nicht NL2BR, sondern NL2P nutzen.
Das ist, wie ich schon zu erklären versuchte, wie der Versuch den Teufel mit dem Bezelbub auszutreiben...

Code: Select all

<div class="irgendwas">
<span class="dies"> text
text</span>
<div>
mutiert zu irgendwas wie

Code: Select all

<p class=break"><div class="irgendwas"></p>
<p class=break"><span class="dies"> text </p>
<p class=whiteline">text</span></p>
<p class=break"><div></p>
Also war mein Fazit: ob das Ding nun br oder p heißt, macht die Sache nicht richtiger. Beide brauchen Ausnahmen. Beide können - auch mit größtem Aufwand - nicht alles abdecken, was Gelegenheitsschreiber eventuell an kruder html Syntax erfinden. Deshalb hatte ich mich eher dem schlichteren br verschrieben, was - siehe regex - schnell und einfach zu reparieren geht, im besonderen für Tabellenformate - wenn man es will. Alles andere sind dann Lerneffekte.
yellowled wrote:3. Gleichzeitig sicherstellen, dass <br /> nur als direktes Kind der Elemente erhalten bleibt, innerhalb derer es zulässig und sinnvoll ist (siehe oben) -
Gibt es ja nicht im NL2P Modus. Dort musst du mit p == Absatz jonglieren und eventuelle brs selber schreiben.
yellowled wrote:-es sei denn, jemand aktiviert ausdrücklich den NL2BR-Modus. Wer das dann explizit einstellt, muss halt sehen, wie er klarkommt.
tja, siehe regex

IA
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: NL2BR plugin und mysteriöse newlines

Post by Timbalu »

Hi

Kann bitte mal jemand mit installiertem textile bzw markdown Plugin einen Test machen, ob die Abschaltung von nl2br und nl2p in diesem Fall nun auch wirklich funktioniert

Danke
Ian
serendipity_event_nl2br.zip
(19.12 KiB) Downloaded 183 times
Post Reply