NL2BR plugin und mysteriöse newlines
Re: NL2BR plugin und mysteriöse newlines
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
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
Re: NL2BR plugin und mysteriöse newlines
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:
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
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>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
Re: NL2BR plugin und mysteriöse newlines
Hi YL
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
Ja und genau darum gings mir. Das habe ich nun mit der neuen Option gelöst, wenn auch viel zu generell...., deshalbyellowled 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.
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:Daraus müsste man eine entsprechende Liste erstellen und die Anwendung von NL2BR anhand dieser Liste einschränken.
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
Re: NL2BR plugin und mysteriöse newlines
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.):
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.
Re: NL2BR plugin und mysteriöse newlines
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.Timbalu wrote:Es dreht sich dabei um folgende tags: 'table|tbody|tfoot|thead|th|tr|td|ol|ul|li|dl|dt|dd'
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.
Formfeld?Timbalu wrote:dt und dd sind dabei, damit man übersichtlicher im formfeld gestaltend schreiben kann.
YL
Re: NL2BR plugin und mysteriöse newlines
Nee, nee, du musst ja davon ausgehen, dass ein Blogger in etwa so schreibt:
also möglichst einfach und übersichtlich (und nicht immer w3c konform). NL2BR - als php interne Funktion - macht daraus immer (verkürzt): 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)
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>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 />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.
Re: NL2BR plugin und mysteriöse newlines
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:Dafür ist diese nachträgliche Option, 'NL2_reverse' da, ohne gleichzeitig den sinnvollen Einsatz von nl2br zu zerstören.
Was hat denn jetzt <br /> mit <textarea> zu tun?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.
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>Ein weiteres Problem ist die positionsabhängige Zulässigkeit:
Code: Select all
<p>Das ist ein<br />Textabsatz.</p>Code: Select all
<p><br />Das ist ein Textabsatz.</p>Aber man muss vermutlich bei einem solchen Plugin auch den Anspruch auf wirklich korrektes Markup sausen lassen ...
YL
Re: NL2BR plugin und mysteriöse newlines
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: 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?
Wo schreibst du deine Blogtexte? Die Frage verstehe ich nicht!yellowled wrote: Was hat denn jetzt <br /> mit <textarea> zu tun?
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!
Und wenn sich bessere Ideen in Code gießen lassen, findet sich bestimmt auch ein Gärtner.
Ian
Re: NL2BR plugin und mysteriöse newlines
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:Wo schreibst du deine Blogtexte? Die Frage verstehe ich nicht!
Doch, genau darum geht es.Timbalu wrote:Es geht NICHT darum, wo <br /> erlaubt ist!
Okay, meine weitere Hilfe in Bezug auf dieses Plugin ist sinnlos. Dann eben nicht.Timbalu wrote:Menschen sind einfach fuzzy (und ich finde das macht sie gerade Sympathisch)
YL
Re: NL2BR plugin und mysteriöse newlines
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.
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.
Re: NL2BR plugin und mysteriöse newlines
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:Nur, was genau willst du damit erreichen? Ein Feldzug, das alle nur noch sauber schreiben? Das ist ehrenwert, aber nicht sehr lebenserfahren..!
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.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.
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
Re: NL2BR plugin und mysteriöse newlines
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?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.
Ian
Re: NL2BR plugin und mysteriöse newlines
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:Timbalu wrote:Was genau ist denn nun dein Vorschlag, dass man dieses nun auch tun kann?
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
Re: NL2BR plugin und mysteriöse newlines
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:1. Plugin deaktivieren, wenn einer der WYGIWYS-Editoren oder eines der Markup-Plugins Markdown und Textile aktiv.
Das ist, wie ich schon zu erklären versuchte, wie der Versuch den Teufel mit dem Bezelbub auszutreiben...yellowled wrote:2. Per default nicht NL2BR, sondern NL2P nutzen.
Code: Select all
<div class="irgendwas">
<span class="dies"> text
text</span>
<div>
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>
Gibt es ja nicht im NL2P Modus. Dort musst du mit p == Absatz jonglieren und eventuelle brs selber schreiben.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) -
tja, siehe regexyellowled wrote:-es sei denn, jemand aktiviert ausdrücklich den NL2BR-Modus. Wer das dann explizit einstellt, muss halt sehen, wie er klarkommt.
IA
Re: NL2BR plugin und mysteriöse newlines
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
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