Zum Inhalt springen

Quelltextformatierung beeinflussen

Erstellt am 25. MĂ€rz 2009 · 13 Antworten · letzte Antwort am 30. MĂ€rz 2009

Tags: HTML & CSS, Frage

jkrueger ·

Ein Hallo an alle die das lesen ! 🙂

Folgender Zusammenhang :

Ich habe eine HTML-Template-Datei die wie ĂŒblich als GerĂŒst zur Generierung der dynamischen Inhalte aus Typo3 dient :

Auszug aus dieser Datei :

	<div id="mainNavigation">###MAINNAVIGATION###</div>

Diese Stelle ist der Punkt wo eine Navigation eingefĂŒgt wird mittels folgendem TS-Schnippsel

  #Marker MAINNAVIGATION wird angesprochen
  #############################################
  marks.MAINNAVIGATION = HMENU
  marks.MAINNAVIGATION.excludeUidList= 36,37
  marks.MAINNAVIGATION {
  
  #wrap bedeutet Gesamterscheinungsbild, als HTML umfasst
  ##########################################################
  wrap = <ul class="horizontal">|</ul>
  
  #Entrylevel ist die Ebene im Baum
  ##########################################################
  entryLevel = 0
  
  }

dadurch ergibt sich dann folgender generierter Inhalt

	<div id="mainNavigation"><ul class="horizontal"><li class="nav_li_active"><a href="unternehmen.html" onfocus="blurLink(this);">Unternehmen</a></li><li><a href="3.html" onfocus="blurLink(this);">Hauptpunkt 2</a></li><li><a href="12.html" onfocus="blurLink(this);">Hauptpunkt 3</a></li></ul></div>

Das Problem was ich nun habe ist das Typo3 mir diese ul-Konstruktion komplett in eine Zeile knallt. Ich will aber ein "Newline" fĂŒr jedes Element und eventuell eine festgelegte Anzahl an EinrĂŒckungen (Tabulator) haben und somit die lesbarkeit erhöhen.

GewĂŒnschter Inhalt :

<div id="mainNavigation">
	<ul class="horizontal">
		<li class="nav_li_active">
			<a href="unternehmen.html" onfocus="blurLink(this);">Unternehmen</a>
		</li>
		<li>
			<a href="3.html" onfocus="blurLink(this);">Hauptpunkt 2</a>
		</li>
		<li>
			<a href="12.html" onfocus="blurLink(this);">Hauptpunkt 3</a>
		</li>
	</ul>
</div>

Ich bin mir nun aber nicht sicher ob ich dafĂŒr die "wrap"-Anweisung Ă€ndern muss oder diese Sache anders gelöst werden muss. Hat wer einen Rat oder einen Tip ?

speedprogs ·

Hallo jkrueger,

such doch mal im Install-Tool (Links im MenĂŒ unter "Admin tools" -> "Install") nach "tidy". Damit kannst du den gesamten Quelltext sĂ€ubern lassen.

Ich habe z.B. in meiner localconf.php folgende Zeilen drin:

## Use Tidy only while caching (all | cached | output)
$TYPO3_CONF_VARS['FE']['tidy_option'] = 'cached';

## Path and Parameters for Tidy
$TYPO3_CONF_VARS['FE']['tidy_path'] = 'tidy -i --quiet true --tidy-mark false -wrap 0 -utf8 --output-xhtml true';

Mit dieser Konfiguration funktioniert es allerdings nur, wenn du einen Linux-Server nutzt und das Programm Tidy installiert ist. Wenn du einen Windows-Server nutzt, musst du statt "tidy -i ..." den Pfad zu tidy angeben. Das Programm selber und einige Infos zum Einsatz bekommst du dann unter http://www.w3.org/People/Raggett/tidy/

jkrueger ·

just2b das ist ein netter Workaround du meinst Firebug und Àhnliches welche einem die Quelltexte splitten oder anders anzeigen als die reine Quellcode-Datei. Mir ist schon klar das es solche Programme gibt sogar mit Syntaxhighlighting usw.

Aber tidy ist schon eher das was ich gemeint habe weil ich ja den Output beeinflussen will und nicht einen Viewer suche der mir den Quellcode einfach nur lesbarer darstellt.

Übrigens gibt es eine TS Extension zu tidy die wie ich verstanden habe erlaubt diesen tidy-Befehl auf bestimmte Bereiche nur anzuwenden, wenn man zum Beispiel eine Seite hat die auch einen Newsletter generiert in HTMl und man nur genau diesen aufgerĂ€umt haben will.

TS-TIDY :

http://typo3.org/documentation/document-library/extension-manuals/tstidy/current/

just2b ·

Hallo,

ist mir schon klar, aber was bringts sonst, außer dass das ganze ein bisschen langsamer weil grĂ¶ĂŸer wird?

jkrueger ·

öhm langsamer ? ich wollte lediglich ein newline oder ein paar tabstopps im quellcode haben und das soll die seite langsamer machen ?

Michaelh74 ·

Ja, bei Seite mit grĂ¶ĂŸere Last ist das sicher negativ + das T3 geparse im BE mit Tidy.

Aber wie gesagt, was bringt's. Wenn Du den Quellcode quecken willst, dann nimmst Du den FF + Addon und alles ist gut.

Es sein denn Du willst Deine Website fĂŒr Quelltextbetrachtung fĂŒr Deine User optimieren und diesen dann primĂ€r den Quelltext prĂ€sentieren #giggle# .

Gruß
Michael

jkrueger ·

es ist schon logisch das eine lösung mit tidy die sache verlangsamt - es gibt ja scheinbar noch andere lösungen .... daher ja auch meine anfĂ€ngliche frage 🙂

gibt es denn auch lösungsansÀtze die mit dem "wrap" arbeiten oder etwas anderes in der richtung ?

speedprogs ·

Hallo,

eigentlich spricht nichts gegen den Einsatz von Tidy. Zum Einen wird mit der Oben beschriebenen Konfiguration der Quelltext immer nur vor dem Cachen gesÀubert, nie beim Ausgeben der Seite. Somit wird dieser Vorgang nur einmal durchlaufen und nicht bei jedem Besuch, da der Quelltext schon sauber in der Datenbank liegt.

Zum Anderen ist die Zeit vorbei, wo man den Quelltext in einer Zeile und mit möglichst wenig Leerzeichen ausgeben muss, um die Datenmenge beim Anzeigen der Seite gering zu halten. Das war zu der Zeit, als man noch mit Frames, Tabellen-Layouts und bunten GIF-Animationen gearbeitet hat.

Heutzutage hat fast jede grĂ¶ĂŸere Seite irgendwelche multimedialen Objekte, wie Flash-Animationen, etc... eingebettet. Da machen die paar Byte mehr im Quelltext den Braten nicht fett. Und ich möchte den Menschen gerne mal sehen, der jetzt noch mit einem 65k-Modem online ist. ;-)

Ich fĂŒr meinen Teil bevorzuge einen sauberen Quelltext, und das, obwohl ich sowohl privat als auch beruflich mit "Firebug" arbeite.

Michaelh74 ·

Auf fast jeder T3 Site gibt es ungecachte Inhalte wie z.B. Suchergebnisse oder sonstige sehr dynamische Inhalte. Somit werde diese immer wieder neu generiert und durch Tidy geschleift. Außerdem verfĂ€llt der T3 Cache standardmĂ€ĂŸig alle 48 Stunden. Das kann demnach sehr wohl zu einer höheren Load fĂŒhren.

Aber wie gesagt, das wĂ€re jetzt auch nicht Nummer 1 Argument. ABER was versprichst Du Dir dadurch als Nutzen fĂŒr Deine Website User???

Gruß
Michael

speedprogs ·

Hallo Michaelh74,

wie auch in der Doku zu den TYPO3_CONF_VARS steht, erhalte ich durch Tidy einen sauberen und optimierten Quelltext, außerdem wird fehlerhafter oder nicht valider Code repariert.

Somit kann ich fast komplett ausschließen, dass nach dem Installieren einer Extension, bei der nicht auf eine XHTML-valide Ausgabe geachtet wurde, mein Quelltext nicht mehr valide ist. Das freut das W3C (World Wide Web Consortium) und mich, wenn ich meine Internetseiten in verschiedenen Browsern testen muss und nicht immer, wie im Firefox, ein Plugin zur VerfĂŒgung habe, das mir den Text so schön aufbereitet.

Ich gebe dir Recht, dass nicht alle Inhalte einer Internetseite im Cache landen, aber zum Einen kannst du die Caching-Dauer erhöhen, was sich besonders bei Produktiv-Systemen empfiehlt, da sich der Inhalt auf normalen Seiten dort nicht so hÀufig Àndert, zum Anderen hÀlt sich die Anzahl der ungecachten DatensÀtze eher gering. Meist beschrÀnkt sich dieser Teil auf eine Suche, News-Seiten und ein Kontaktformular.

Es liegt also bei jedem selbst, ob er/sie einen aufgerĂ€umten und validen Quelltext bevorzugt, oder nicht. Meiner Meinung nach ist es kein Fehler denn nennenswerte Geschwindigkeitseinbußen habe ich selbst mit YSlow noch nicht feststellen können.

just2b ·
speedprogs schrieb

Es liegt also bei jedem selbst, ob er/sie einen aufgerÀumten und validen Quelltext bevorzugt, oder nicht.

naja dieses "und" war jetzt nicht fair. Ich liefer auch nur validen code aus (ausnahmen seien mir verziehen), dafĂŒr braucht man kein tidy.

ansonsten empfehl ich mal einen blick auf den quellcode von google.at 😃

Michaelh74 ·

Hallo speedprogs,

ich gehe mal davon aus, dass ich es auch ohne tidy schaffe validen Quell-Code zu produzieren (ist fĂŒr validen Quell-Code also nicht nötig).

Das einzige was es mir wirklich bringt, ist ein geordneter, leserlicher Quellcode. Und da ich meine Seite baue, damit meine Besucher die im Browser gerenderte Seite sehen und nicht den Quelltext, brauche ich hier eigentlich keinen gut leserlichen Quelltext, oder?

Der einzige Grund, warum Code strukturiert wird ist, doch dass er leserlich bleibt und man sich gut darin zurecht findet fĂŒr den Fall, dass man spĂ€ter wieder daran arbeitet oder andere Personen in ein Projekt einbindet...
Denke kaum, dass jemand direkt an Deinem von T3 generiert HTML-Quellcode weiterbauen wird, oder? 😃

Und ich fĂŒr meinen Teil zur besseren Fehlersuche, bekomme durch meine Tools den Quellcode in gut leserlicher Form...

Naja, vielleicht wird das ja auch ne Grundsatzdiskussion - also nicht zu ernst nehmen. #giggle#

Gruß
Michael

speedprogs ·

Hallo Michaelh74,

ich hatte erst heute wieder das Problem, dass eine Extension ein "hidden"-Eingabefeld nicht mit einem '/>' schließt sondern nur mit einem '>'. Soviel zu validem Code...

Aber ich gebe dir Recht, bevor es zu einer Grundsatzdiskussion ausartet, sollten wir hier einen Schlussstrich ziehen:

___________________________________________________________

Und nun kann jeder fĂŒr sich entscheiden, Tidy zu nutzen, oder nicht ;-)