Hui, endlich mal wieder ne richtig interessante Diskussion

.
Ich hab mich mit dem Problem in der Vergangenheit auch schon ausgiebig auseinandergesetzt.
Meine Haupterkenntnis war, dass Online-WYSIWYG-Bearbeitung im Browser und 100% sauberes und über externes CSS gestyltes HTML (zumindest mit den mir bekannten Open-Source-Editoren auf MSHTML- bzw. Gecko/MIDAS-Basis) unvereinbar ist.
MSHTML (die IE-Implementierung) produziert schonmal total schrottigen Code, den ich so auf keinen Fall in meine Seiten übernehmen möchte.
Bei MIDAS sieht die Sache schon
wesentlich besser aus, allerdings bleibt auch dabei das generelle Problem bestehen:
Logischerweise ist auch damit zunächst nur Styling per Inline-CSS möglich, was ebenfalls unbrauchbar ist, wenn man die gesamte Ausgabe eigentlich per externem CSS formatieren möchte.
Die einzige Lösung, die ich da sehe, wäre eine aufwändige Erweiterung der WYSIWYG-Komponente mit selbstgeschriebenen JS-Funktionen (bzw. gleich ein komplett selbstgeschriebener WYSIWYG-Editor in Javascript, aber das dürfte nahezu unmöglich sein).
Aber wenn es erstmal nur darum geht, syntaktisch sauberes (X)HTML zu erhalten:
Was hältst du davon, HTML Tidy unmittelbar vor dem Speichern des Editor- bzw. Textarea-Inhalts über denselben laufen zu lassen? Damit würde jede Eingabe sofort gesübert, d.h. noch bevor sie überhaupt das erste mal in der DB gespeichert wird und du sparst dir das regelmäßige Überprüfen auf neue, noch nicht gesäuberte Inhalte.
So mach ich es bei meinem CMS und es funktioniert ganz gut (oder besser funktioniert
e ganz gut: Bei zwei Installationen, mit denen ich es eben grad ausprobiert hab, läuft es im Moment überhaupt nicht...dem werd ich gleich mal nachgehen).
Das ist übrigens nicht nur für das WYSIWYG-Problem nützlich, sondern auch für normale Textfelder, wo Code von "nicht ganz HTML-kundigen" Personen manuell eingegeben wird.
Und @Jürgen:
Du sagst, dass Typo3's WYSIWYG-Editor korrektes XHTML ausgeben kann. Weißt du, wie die das lösen? Verwendet das CMS auch MSHTML bzw. MIDAS oder haben die ne eigene Komponente geschrieben? Und wenn ja, wie? Java-Applet? Ist es Cross-Browser-kompatibel oder IE only?