OriginalSeite bei-ekke / HTML Tidy in Deutsch / Säuberung von Web-Seiten mit HTML TIDY


icon Säuberung von Web-Seiten
mit HTML TIDY

Copyright © 1998-2002 W3C.

Benachrichtigung: Dave Raggett sucht derzeit eine neue Arbeitsstelle bei Openwave, da die Belegschaft durch den Rückgang der Telecom-Spenden auf Grund mobiler Anbieter reduziert wurde. Hier ist sein Werdegang/Resümee

Die Pflege von Tidy wurde nun von begeisterten Freiwilligen bei "Source Forge" (=Quellen Schmiede) übernommen, siehe http://tidy.sourceforge.net/ . Dort finden Sie die Quellen und ausführbaren Programme für sehr viele Betriebssysteme. Die neue Version von Tidy ist ergänzt, durch eine Bibliothek TidyLib basierend auf Tidy und ist für die leichtere Integration in andere Software gedacht.

Einleitung zu TIDY

Wenn man HTML schreibt, dann schleichen sich schnell Mißgeschicke ein. Es wäre doch schön, wenn es auf einfache Weise möglich ist, diese "Mißgeschicke" automatisch entfernen zu lassen und dabei gleich liederlich geschrieben HTML-Code in eine gut lesbare Form zu bringen. Genau das ist es! Dave Raggett's HTML TIDY ist ein kostenloses Werkzeug genau dafür. Es leistet auch gute Dienste bei extrem-grauenhaft zu lesende HTML-Dateien, die von einigen HTML-Editoren bzw. Konvertierungs-Werkzeugen erzeugt werden. Es hilft Ihnen auch dabei, Ihre Seiten für sehbehinderte Menschen zugänglich zu machen, was immer mehr Beachtung findet.

Tidy korrigiert viele Probleme und macht Sie auf vieles Aufmerksam für Ihre Arbeit. Jede Problem-Stelle wird mit Angabe der Zeile und Spalte angezeigt. Tidy erzeugt KEINE bereinigte Version einer HTML mit Problemen, wo es sich der Handhabung nicht sicher ist. Das sind die sogenannten "Fehler" gegenüber den "Warnungen".

Dave Raggett hat die Entwicklung von Tidy an eine Gruppe Freiwilliger bei Open Source (Offene Quellen) Gemeinschaft "Source Forge" (=Quellen Schmiede) abgegeben. Der Quell-Code ist weiter unter der Open Source Lizenz verfügbar, und Sie sind aufgefordert Fehler oder/und Erweiterungswünsche an http://tidy.sourceforge.net/ zu schicken.

Wenn Ihnen HTML Tidy sehr geholfen hat und sie möchten Ihren Dank dafür ausdrücken, dann senden Sie mir doch eine Postkarte oder ein anderes Souvenir von Ihrem Land/Ort mit ein paar Notizen wofür Sie HTML Tidy verwenden. Ist immer sehr interessant wo und wofür Tidy verwendet wird. Meine postalische-Adresse ist am Ende dieser Datei.

Die offizielle eMail-Liste für HTML Tidy ist <html-tidy@w3.org>. Wenn Sie die Newsletter abonnieren möchten, dann senden Sie einfach nur eine leere eMail an html-tidy-request@w3.org mit der Betreff-Zeile "subscribe" (ohne Doppelhochkommata; "unsubscribe", wenn Sie Ihr Abonnement abbestellen wollen). Eine Liste bisheriger News ist als Online-Archiv verfügbar. Wenn Sie mit einem Entwickler Kontakt aufnehmen wollen, einen Fehlerbericht oder einen Erweiterungswunsch haben, dann besuchen Sie http://tidy.sourceforge.net/ .

Tidy kann nun auch das sonderliche HTML von Microsoft Word 2000 ver- und bearbeiten. Word erzeugt ein HTML, was am wenigsten Abweichungen im Aussehen in Word und im Browser haben soll. Wenn Sie mehr mit solcherart erzeugten HTML arbeiten, dann sollten Sie es mit Tidy's Option Word-2000" überprüfen (überarbeiten) lassen. Natürlich funktioniert dies auch bestens mit Word'97 HTML-Dateien!

Tidy's Fähigkeiten werden beschrieben in dem Artikel von Scott Nesbitt bei webreview.com , seit kurzen auch in Dave Central's Best of Linux , und es wurde als das "tool of the month on Unix Review" (=Werkzeug des Monats in der Unix-Kritik) von Joe Brockmeier benannt, der schreibt:

'Eine Sache, die ich an der UNIX-Philosophy liebe, ist die Idee, daß jedes Programm für eine Aufgabe da ist und diese gut erledigt. Das sind Millionen kleine Werkzeuge für UNIX-basierende Betriebssysteme, die das Leben erleichtern und enorm nützlich sind, ohne daß sonderlich darüber geschrieben werden muß. Aber ihnen wird nicht die gleiche Aufmerksamkeit in der Berichterstattung zu teil, wie z.B. Apache oder Sendmail. Eines dieser Favoriten ist HTML Tidy, ein Werkzeug für die HTML/Web-Entwicklung, wo ich denke, daß es viele Leute interessieren wird. HTML Tidy bereinigt HTML was von WYSIWYG-Editoren und dergleichen generiert wurde.'

(WYSIWYG="What You See Is What You Get"=Bildschirmanzeige ist gleich dem Endergebnis)

Tidy steht zur Verfügung als download-bares ausführbares Programm, als Quell-Code (ANSI C) oder als Online-Dienst auf W3C, HTML Help's site Valet und vielen anderen Seiten.

Anleitung zu HTML und CSS

Wenn Sie gerade erst beginnen und mehr über die Web-Seiten-Erstellung erfahren wollen, dann wird Ihnen sicher mein Handbuch für HTML und CSS (= "HTML Grundlagen" & "Fang an mit HTML" in: Andere deutsche Übersetzungen) helfen. Bitte schicken Sie mir Ihre Meinung zu meinem Handbuch, denn ich möchte es ständig verbessern.

Beispiele wie TIDY arbeitet

Tidy korrigiert den HTML-Code so, daß er in den verbreitesten Browsern wie von Netscape und Microsoft angezeigt werden kann. Nun einige Beispiele, wie Tidy den HTML-Code für Sie perfektioniert:

Strukturierungsart (Layout Stil)

Die Art der Strukturierung des bereinigten Quellcodes können Sie Ihren Bedürfnissen anpassen: zum Beispiel, ob Sie Einrückungen (Einzüge) haben wollen oder nicht. Es gab schon mehrfach Anfragen, ob es nicht möglich wäre, daß Tidy die Originalstruktur beibehält. Entschuldigen Sie bitte, wenn ich dazu sagen muß, daß die Implemtierung dieser Anforderung sehr aufwendig wäre. Tidy wurde entwickelt, um eine bereinigte, syntaktisch und semantische korrekte Struktur zu erhalten. Dabei werden keinerlei Informationen über die Original-Quellcode-Struktur gespeichert. Nach der Analyse generiert Tidy diese Struktur unter Verwendung der aktuellen Struktur-Optionen. Der Versuch die Original-Struktur bei zu behalten, würde einigen Korrekturen widersprechen und den C-Quell-Code für Tidy erheblich komplizierter gestalten.

Einige Browser bohren den rechts ausgerichteten Text je nach Gestaltung der Überschriften auf. Ein Beispiel zum Verständnis:

<h1 align="right">
  Überschrift
</h1>

<h1 align="right">Überschrift</h1>
      

Beides soll das gleiche wiedergeben. Leider verhindert ein allgemeiner Browserfehler, daß die überschüssigen Leerzeichen korrekt entfernt werden und die erste Überschrift wird nicht korrekt ausgerichtet. HTML Tidy bewahrt Sie vor diesem Fehler, es sei denn Sie aktivieren die Einrück-Option (indent=yes).

Außerdem ist die aktive Einrück-Option (indent=yes) die Ursache für Probleme in der Tabellen-Darstellung bei einigen Browsern:

<td><img src="foo.gif"></td>
<td><img src="foo.gif"></td>
      

... wird anders aussehen als:

<td>
  <img src="foo.gif">
</td>
<td>
  <img src="foo.gif">
</td>
      

Sie vermeiden solche Tricks, wenn Sie indent: no oder indent: auto in der Konfigurationsdatei verwenden.

Internationalisierung der Ausgaben

Tidy biete verschiedene Zeichensatz-Codierungen an: US ASCII, ISO Latin-1, UTF-8, UTF-16, ISO-2022 Familie, Apple MacRoman, Windows-1252, Big5 und Shift_JIS. Den kompletten Satz an Entities, die in HTML 4.0 definiert sind. Benannte HTML Entities werden entsprechend in der bereinigten Ausgabe verwendet. Die anderen Zeichen liegen entweder im zulässigen Bereich oder werden mit nummerischen Entities ausgegeben. Tidy geht dabei davon aus, daß standardmäßig die Ausgabe in US ASCII erfolgen soll. Tidy nutzt nicht mal die HTML-META-Elemente, um die ZeichensatzCodierung zu erkennen.

Zugänglichkeit

Tidy gibt Ratschläge bei Zugänglichkeits-Problemen für Leute mit nicht grafischem Browser. Meistens werden Sie den Vorschlag sehen, das summary-Attribut bei Tabellen hinzu zu fügen. Die Idee ist, eine Zusammenfassung über die Funktion und Struktur der Tabelle für einen "sprechenden" Browser bereit zu stellen.

Säuberung des präsentierten Web-Quell-Codes

Viele Werkzeuge generieren HTML mit überaus vielen FONT, NOBR und CENTER Tag's. Tidys -clean Option ersetzt diese durch Formatvorlagen nach den CSS-Regeln (CSS=Cascading Style Sheets). Dies erleichtert das Lesen und die Pflege des Web-Quell-Codes und reduziert die Datei-Größe. Von Tidy können Sie einen eleganteren Web-Quell-Code erwarten.

Einige Seiten vertrauen auf den Präsentationseffekt von <P> oder </P> Tag's. Tidy löscht die leeren Paragraphen und Kopf-Elemente usw. Um vertikale Leerräume zu erzeugen, sind leere Paragraphen nicht zu empfehlen. Statt dessen sind CSS's zu verwenden oder eben <BR> Elemente einzufügen. Tidy entfernt allerdings NICHT Paragraphen mit einem nicht-umbrechenden-Leerzeichen &nbsp; .

Tidy neue Tag's beibringen

Sie können Tidy neue Tag's in der Konfigurations-Datei mitteilen. Die Syntax ist:

  new-inline-tags: tag1, tag2, tag3
  new-empty-tags: tag1, tag2, tag3
  new-blocklevel-tags: tag1, tag2, tag3
  new-pre-tags: tag1, tag2, tag3
      

Selbige Tag's können als leer (=empty) und als "inline" oder als leer (=empty) und als "block" definiert werden.

Die Angaben können die Definition von einem neuen leeren (=empty) "inline" ODER leeren (=empty) "block" Element kombinieren, aber es ist nicht zulässig ein Tag als "inline" und "block" zu definieren.

Beachte, daß diese neuen Tag's nur dort verwendet werden können, wo Tidy auch "inline"- oder "block"-Elemente erwartet. Das bedeutet, diese Tag's können NICHT im Dokument-Kopf oder sonstigem Kontext des eingeschränkten Inhalts-Modells verwendet werden. Am häufigsten wird diese Möglichkeit für Cold-Fusion-Dateien verwendet.

Ich arbeite noch an einer bessern Erklärung für die Dokument-Syntax mit Hilfe von Grammatik-Regeln, und hoffe dies für eine elegantere Version von Tidy in diesem oder nächsten Jahr verwenden zu können.

Grenzen der ASP, JSTE und PHP Unterstützung

Tidy kennt einige ASP-PreProzessor-Aufrufe des Pseudo-Elements <% ... %> mit PreProzessor-Anweisungen. ASP wird normalerweise vom Server interpretiert, bevor es zum Browser gelangt. JSTE teilt die gleiche Syntax, nur das es <# ... #> verwendet. Tidy kann auch mit der Sprache PHP umgehen, die durch <?php ... ?> gekennzeichnet ist.

Tidy bewältigt ASP, JSTE und PHP Pseudo-Element-Inhalte und deren Ersatz für Attribute, z.B.:

  <option <% if rsSchool.Fields("ID").Value
    = session("sessSchoolID")
    then Response.Write("selected") %>
    value='<%=rsSchool.Fields("ID").Value%>'>
    <%=rsSchool.Fields("Name").Value%>
    (<%=rsSchool.Fields("ID").Value%>)
  </option>
      

Tidy versteht NICHT die Script-Sprache in den Pseudo-Elementen und -Attributen und kann schnell irritiert sein. Tidy meldet fehlende Attribute, wenn sie durch PreProzessor-Code versteckt wurden. Tidy ist auch irritiert, wenn der Code Anführungszeichen enthält, z.B. ändert es obiges Beispiel zu:

    value="<%=rsSchool.Fields("ID").Value%>"
      

Tidy sieht die Anführungszeichen vor ID als das Ende des Attribut-Wertes an und beklagt sich dann über das Nachfolgende. Anmerkung: Sie können mit der wrap-asp Option bestimmen, ob es Tidy erlaubt ist Zeilenumbrüche in Pseudo-Elementen zu ergänzen.

Wenn Sie mit ASP, JSTE oder PHP einen Start-Tag definieren, aber den Ende-Tag dazu im Web-Quell-Code haben, dann "weiß" Tidy von dem Start-Tag nichts und entfernt den scheinbar überflüssig/falschen Ende-Tag für Sie. In dem Fall, setzen Sie den Start-Tag MIT in den Web-Quell-Code und verwenden nur für die Attribute ASP, JSTE oder PHP, z.B.:

   <a href="<%=random.site()%>">do you feel lucky?</a>
      

Tidy erlaubt Ihnen die Steuerung der Zeilenumbrüche in ASP-, JSTE- und PHP-Anweisungen über die Konfigurations-Optionen wrap-asp, wrap-jste und wrap-php.

Ich bedauere, daß Tidy keine Tango PreProzessor-Anweisungen unterstützt in der Art:

<@if variable_1='a'>
    tu irgendwas
<@else>
    tu nichts
</@if>

<@include <@cgi><@appfilepath>includes/message.html>
      

Andere PreProzessor-Aufrufe von "Tango" unterstützt Tidy, allerdings NUR für Attribut-Werte. Weitere Unterstützung von Tango-Pseudo-Elementen scheint schwierig zu sein, so daß ich zunächst entsprechendes Interesse abwarte, bevor ich es umsetze.

Grenzen der XML Unterstützung

Es werden nur die Dateien akzeptiert, die der W3C XML 1.0 Empfehlung entsprechen. Tidy hilft so bei der Behebung von Fehlern, die durch XML-Datei-Ausgaben verursacht werden. Tidy erkennt bereits alle XML-Eigenschaften, obwohl es z.B. CDATA-Abschnitte oder DTD-Subsets nicht versteht.

Folien (=Dias) erstellen

Die -slides Option gestattet es Ihnen aus einer HTML-Datei eine Anzahl von verknüpften "Folien" zu erstellen. Jedes H2 Element der Ausgangs-Datei ist dabei der Trenner für die einzelnen "Folien"-HTML-Dateien. Die "Folien" haben die Namen slide1.html, slide2.html, slide3.html usw. . Dies ist eine relativ neue Möglichkeit und Verbessungsvorschläge sind willkommen. Im Einzelnen, plane ich die Unterstützung durch die Konfigurations-Datei, um für die "Folien" Style Sheets zu setzen und für die Verwendung einer Vorlage.

So wäre ich daran interessiert, wie man mit JavaScript dynamische Effekte zu den "Folien" ergänzt, so daß Ähnliches wie bei Microsoft Powerpoint heraus kommt.

Eingerückter Text für eine bessere Gestaltung

Mit Einrückungen des Inhaltes von Elementen ist der Web-Quell-Code leichter lesbar. Tidy kann das für alle Elemente oder für gerade benötigte tun. Der Auto-Einrückungs-Modus verhindert die Einrückung der Inhalte von TITLE, P und LI Elementen:

<html>
  <head>
    <title>Test Dokument</title>
  </head>

  <body>
    <p>Hier steht so viel Text in der Zeile, daß mal ein Zeilenumbruch nötig wäre,
    damit kann der Zeilenumbruch-Mechanismus für lange Zeilen getestet werden.</p>
<pre>
Dies ist
<em>wirklich
       vorformatierter</em>
   Text.
</pre>

    <ul>
      <li>erster Listen-Eintrag</li>

      <li>zweiter Listen-Eintrag</li>
    </ul>
    <!-- Ende Kommentar -->
  </body>
</html>
      

Inhaltseinrückungen vergrößern die Dateigröße, dagegen ist Tidy's Standard Stil:

 <html>
 <head>
 <title>Test Dokument</title>
 </head>
 <body>
 <p>Hier steht so viel Text in der Zeile, daß mal ein Zeilenumbruch
 nötig wäre, damit kann der Zeilenumbruch-Mechanismus für lange
 Zeilen getestet werden.</p>

 <pre>Dies ist
 <em>wirklich
       vorformatierter</em>
    Text.
 </pre>

 <ul>
 <li>erster Listen Eintrag</li>

 <li>zweiter Listen Eintrag</li>
 </ul>

 <!-- Ende Kommentar -->
 </body>
 </html>
      

Wie startet man Tidy?

   tidy [[Optionen] DateiName]*
      

HTML Tidy ist nicht (nur) ein Windows-Programm. Wenn Sie es ohne jeden weiteren Parameter aufrufen, dann wartet es auf die Eingaben an der Standard-Eingabe (=stdin). Tidy's Standard-Ein/Ausgabe sind stdin und stdout. Fehler werden nach stderr geschrieben, dies kann mit der Option -f FehlerDatei auf eine Datei umgeleitet werden.

Im Allgemeinen wird die -m Option für die Aktualisierung der Original-Datei verwendet und wenn die Datei fehlerhafte Stellen hat, verwendet man die -f Option, um dann die Fehler besser nachsehen zu können. Tidy unterstützt einen kleinen Satz an Zeichen-Codierungs Optionen. Der Standard ist ASCII (=American Standard Code for Information Interchange), der normalerweise in jedem Text-Editor bearbeitet werden kann.

Zum Beispiel:

   tidy -f errs.txt -m index.html
      

startet Tidy mit der Datei "index.html" und aktualisiert (überschreibt) diese und die Fehlermeldungen werden in die Datei "errs.txt" geschrieben. Eine gute Idee ist es, das Original von "index.html" anderen-orts zu sichern, denn es ist eine komplexe Software und Tidy könne Fehler haben. Wenn Sie einen entdeckt haben, dann lassen Sie es mich bitte wissen!

Dankeschön an Jacek Niedziela, Die Win32 Version von Tidy versteht nun Platzhalter im Dateinamen. Dies wird durch die "setargv"-Bibliothek von VC++ unterstützt.

Tidy schreibt Fehler nach stderr und wartet nicht auf weitere Befehle. Behoben wird dies durch Umleitung der stderr nach stdout. Das funktioniert unter Unix und unter Windows NT, aber nicht auf anderen Betriebssystemen. Mein Dank an Markus Wolf für diesen Tip!

   tidy file.html 2>&1 | more
      

Tidy's Optionen

Für eine Liste der verfügbaren Optionen, verwende:

   tidy -help
      

Für ein Pausieren der Hilfe-Anzeige je Seite, verwende:

   tidy -help | more
      

Eingabe und Ausgabe sind standardmäßig stdin/stdout. Optionen mit EINEM Buchstaben außer -f können miteinander kombiniert werden: tidy -f errs.txt -imu foo.html

Matej Vela <vela@debian.org> hat für Unix eine "Handhabungs"-Seite für Tidy geschrieben, allerdings für die letzten Einzelheiten der Konfigurations-Optionen und Ausgabe-Stände sehen Sie bitte nach auf: http://www.w3.org/People/Raggett/tidy/ .

Die Verwendung der Konfigurations-Datei

Tidy unterstützt nun eine Konfigurations-Datei, was meistens der leichtere Weg ist es zu konfigurieren. Angenommen Sie haben eine Konfigurations-Datei "config.txt" (der Name ist unwesentlich), dann können Sie Tidy mit der Kommando-Zeilen-Option -config config.txt anweisen, diese auch zu verwenden, z.B.:

   tidy -config config.txt file1.html file2.html
      

Alternativ können Sie die Konfigurations-Datei auch in der Umgebungs-Variable "HTML_TIDY" angeben. Geben Sie aber dort das absolute Verzeichnis an (Laufwerk:\Verzeichnis\...\config.txt; mit 8.3-DOS Namen), falls Sie Tidy von einem anderen Verzeichnis als die Konfigurations-Datei starten. Für die Compilierung (das Debugen) definieren Sie CONFIG_FILE als Verzeichnis-Zeichenkette, genaueres ist in platform.h zu finden

Sie können die Konfigurations-Optionen auch in der Kommandozeile verwenden, wenn Sie unmittelbar davor (ohne Leerzeichen dazwischen) "--" setzen, zum Beispiel:

  tidy --break-before-br true --show-warnings false
      

Die folgenden Optionen werden unterstützt:

tidy-mark: bool
Wenn dies auf yes (der Standard) gesetzt ist, ergänzt Tidy den <meta name="generator" content="HTML Tidy...">-Tag im Kopf, daß dieses Dokument mit Tidy bereinigt wurde. Es wird nicht ergänzt/aktualisiert, wenn es bereits existiert. Mit no bleibt dieses Ergänzung aus, es entfernt aber kein evtl. schon existierendes <meta name="generator" content="HTML Tidy..."> .
markup: bool HTML
Legt fest, ob Tidy eine gut formatierte Version des Web-Quell-Codes (=Markup=Auszeichnung) erstellt. Der Wert kann yes oder no sein. Tidy generiert aber keine gut formatierte Version, wenn es unbekannte Tag's findet, schliessende Anführungszeichen bei Attributwerten vermißt oder das schliessende '>' bei Tag's fehlt. Der Standard ist yes.
wrap: laenge
Setzt einen rechten Rand für den Zeilenumbruch. Tidy versucht die Zeile dann so umzubrechen, daß sie diese Länge nicht mehr überschreitet. Der Standardwert ist 66. Wenn Sie keinen Zeilenumbruch möchten, dann setzen Sie den Wert auf 0.
wrap-attributes: bool
Ist dieser Wert yes, kann der Attributwert für eine leichertere Berabeitung über mehrere Zeilen gehen. Der Standard ist no. Diese Option kann unabhängig von anderen Optionen verwendet werden.
wrap-script-literals: bool
Ist der Wert auf yes gesetzt, dann erfolgen auch Zeilenumbrüche in Script-Attributen. Der Standard ist no. Das Folgende zeigt, wie Tidy die wirklich sehr lange Script-Zeichenkette umbricht. Es ergänzt jeweils ein '\' (=backslash) am Ende der umgebrochenen Zeile:
<a href="irgendwo.html" onmouseover="document.status = '...eine \
wirklich wirklich sehr sehr sehr lange lange lange Zeichenkette \
Zeichenkette Zeichenkette ..';">test</a>
          
wrap-asp: bool
Wenn es auf no gesetzt ist, verhindert es Zeilenumbrüche in Zeilen mit ASP Pseudoelementen wie <% ... %> . Standard ist yes .
wrap-jste: bool
Wenn es auf no gesetzt ist, verhindert es Zeilenumbrüche in Zeilen mit JSTE Pseudoelementen wie <# ... #> . Standard ist yes .
wrap-php: bool
Wenn es auf no gesetzt ist, verhindert es Zeilenumbrüche in Zeilen mit PHP Pseudoelementen wie <?php ... ?> . Standard ist yes .
literal-attributes: bool
Wird dies auf yes gesetzt, dann bleiben Leerzeichen und Tabulatoren in den Attribut-Werten unverändert. Standard ist no .
tab-size: anzahl
Setzt die Spalten-Anzahl zwischen den aufeinanderfolgenden Tabulatoren. Der Standard ist 4. Damit werden Tabulatoren zu Leerzeichen bereits beim Lesen der Datei umgewandelt. Somit kann Tidy niemals Dateien mit Tabulatoren ausgeben.
indent: no, yes or auto
Ist dieser Wert gleich yes, dann werden block-level Tag's immer eingerückt. Der Standard ist no. Bei auto entscheidet Tidy, ob Tag's wie TITLE, H1-H6, LI, TD, TH oder P eingerückt werden. Das hängt davon ab, ob diese Tag's block-level Tag's enthalten. Von der Verwendung von yes ist abzuraten, da dies in einigen Browsern (auf Grund von Bug's) das Layout verzerren kann.
indent-spaces: anzahl
Setzt die Anzahl der Leerzeichen für die Einrückungen, soweit sie aktiviert wurden. Der Standardwert ist 2 Leerzeichen.
indent-attributes: bool
Bei yes beginnt jedes Attribut in einer neuen Zeile. Der Standard ist no .
hide-endtags: bool
Bei yes werden bei der Generierung der gut formatierten Version die optionalen Ende-Tag's ausgelassen. Diese Option wird aber ignoriert, wenn die Ausgabe nach XML erfolgt. Der Standard ist no.
input-xml: bool
Ist der Wert auf yes gesetzt, dann verwendet Tidy den XML-Syntaxanalyser vor dem HTML-Syntaxanalyser für die Fehlerkorrektur. Standard ist no .
output-xml: bool
Wenn es auf yes gesetzt ist, dann erzeugt Tidy in der gut formatierten Version XML-entsprechendes. Jedes Entity was nicht in XML 1.0 definiert ist, wird dabei durch dessen nummerisches Entity ersetzt und erlaubt dann die Analyse nach dem XML-Syntaxanalyser. Die Tag's und Attribute bleiben in dem Fall so wie im Eingabe-Dokument, ungeachtet anderer Optionen. Der Standard ist no .
add-xml-pi: bool
add-xml-decl: bool
Bei yes wird die XML-Deklaration in der XML/XHTML-Ausgabe ergänzt. Der Standard ist no. Wenn in der Eingabe bereits eine <?xml?> Deklaration enthalten ist, dann wird genau diese beibehalten.
output-xhtml: bool
Bei dem Wert yes erzeugt Tidy bei der gut formatierten Version erweitertes HTML (=extensible HTML). Der Standard ist no. Diese Option veanlaßt Tidy den DOCTYPE und den Standard-Namensraum (=namespace) für XHTML zu setzen. Sind diese bereits angegeben, so überprüft Tidy, ob der Inhalt des Dokumentes diesen Angaben entspricht. Weichen DOCTYPE und "namespace" ab, so werden die korrekten gesetzt. Für XHTML können sowohl benannte Entities als auch nummerische Entieties verwendet werden, entsprechend der "numeric-entities" Einstellung. Die Tag's und Attribute bleiben in dem Fall so wie im Eingabe-Dokument, ungeachtet anderer Optionen.
doctype: omit, auto, strict, loose oder <fpi>
Hiermit wird die DOCTYPE-Deklarations-Erzeugung gesteuert. Wenn der Wert auf omit (omit=auslassen) gesetzt ist, dann hat die Ausgabe keine DOCTYPE-Deklaration. Bei auto (der Standard) setzt Tidy den DOCTYPE, den es nach dem Inhalt des Dokumentes vermutet. Bei strict (strict=streng) wird DOCTYPE auf "strict DTD" gesetzt. Die Einstellung loose setzt den DOCTYPE auf "transitional DTD" (lose=ungebunden; transitional=vorrübergehend). Alternativ kann ein formaler ÖffentlichkeitsBezeichner (=formal public identifier=fpi) als Zeichenkette angegeben werden, zum Beispiel:
    doctype: "-//ACME//DTD HTML 3.14159//EN"
          
Wird der fpi für ein XHTML-Dokument verwendet, dann setzt Tidy den System-Bezeichner auf eine leere Zeichenkette. Bei der Erzeugung von XML wird der DOCTYPE unverändert gelassen.
char-encoding: raw, ascii, latin1, utf8 oder iso2022
Dies legt fest, wie Tidy die Zeichen interpretieren soll. Bei ascii akzeptiert Tidy alle Latin-1 Zeichenwerte, verwendet aber Entities für alle Zeichen, deren Wert > 127 sind. Bei raw erzeugt Tidy eine Ausgabe ohne die Konvertierung der Zeichenwerte über 127 in Entities. Wird latin1 angegeben, dann werden alle Zeichen, dessen Werte größer als 255 sind in Entities umgewandelt. Wenn utf8 angegeben wurde, dann nimmt Tidy an, daß die Eingabe und die Ausgabe nach UTF-8 kodiert sind bzw. sein sollen. Für die Kodierung nach einer der ISO2022 Kodierungsvorschriften z.B. ISO 2022-JP können Sie iso2022 verwenden. Der Standard ist ascii.
numeric-entities: bool
yes bewirkt, daß die nach XML 1.0 benannten Entieties in nummerische Entities umgeformt werden. Der Standard ist no.
quote-marks: bool
yes bewirkt, daß " Zeichen (Doppelhochkommata=Anführungszeichen) als &quot; geschrieben werden und daß ' Zeichen (Einfachhochkomma=Apostroph) als &#39; geschrieben werden, da einige Browser das korrekte &apos; nicht unterstützen. Standard ist no.
quote-nbsp: bool
Wenn yes gestezt ist, dann werden Nicht-Umbruch-Leerzeichen (= &nbsp; =erzwungenes Leerzeichen) in dessen Unicode-Zeichen 160 dezimal umgeformt. Der Standard ist yes.
quote-ampersand: bool
Bei yes werden einzeln/frei stehende & Zeichen zu &amp; umgeformt. Der Standard ist yes.
assume-xml-procins: bool
=vermutete XML-Prozessanweisungen; Wenn dies auf yes gesetzt ist, dann wird bei der Syntaxanalyse der vermuteten XML-Prozessanweisungen auf die Erfordernis des ?> -Terms VOR dem > -Term geprüft. Der Standard ist no. Diese Option ist automatisch gesetzt, wenn die Eingabe XML ist.
fix-backslash: bool
Bei yes werden fälschliche "\" RückwärtsSchrägstriche (=backslash) in URL's durch "/" VorwärtsSchrägstriche (=forward slash) ersetzt. Der Standard ist yes.
break-before-br: bool
Wenn dies auf yes gesetzt ist, dann wird vor jedem <br> Element ein Zeilenumbruch in der Ausgabe eingefügt. Der Standard ist no.
uppercase-tags: bool
Formt alle Tag's in GROSSBUCHSTABEN um. Der Standard ist no, bei dem alles in kleinbuchstaben umgeformt wird. Davon sind XML-Eingaben ausgeschlossen, bei ihnen bleibt die GROSS/klein-Schreibung wie im Original (in XML ist gleiches mal GROSS und mal klein geschrieben etwas verschiedenes).
uppercase-attributes: bool
Formt alle Attribut-Namen in GROSSBUCHSTABEN um. Der Standard ist no, bei dem alles in kleinbuchstaben umgeformt wird. Davon sind XML-Eingaben ausgeschlossen, bei ihnen bleibt die GROSS/klein-Schreibung wie im Original (in XML ist gleiches mal GROSS und mal klein geschrieben etwas verschiedenes).
word-2000: bool
If set to yes, Tidy will go to great pains to strip out all the surplus stuff Microsoft Word 2000 inserts when you save Word documents as "Web pages". The default is no. Note that Tidy doesn't yet know what to do with VML markup from Word, but in future I hope to be able to map VML to SVG.

Microsoft has developed its own optional filter for exporting to HTML, and the 2.0 version is much improved. You can download the filter free from the Microsoft Office Update site.
clean: bool
If set to yes, causes Tidy to strip out surplus presentational tags and attributes replacing them by style rules and structural markup as appropriate. It works well on the html saved from Microsoft Office'97. The default is no.
logical-emphasis: bool
If set to yes, causes Tidy to replace any occurrence of i by em and any occurrence of b by strong. In both cases, the attributes are preserved unchanged. The default is no. This option can now be set independently of the clean and drop-font-tags options.
drop-empty-paras: bool
If set to yes, empty paragraphs will be discarded. If set to no, empty paragraphs are replaced by a pair of br elements as HTML4 precludes empty paragraphs. The default is yes.
drop-font-tags: bool
If set to yes together with the clean option (see above), Tidy will discard font and center tags rather than creating the corresponding style rules. The default is no.
enclose-text: bool
If set to yes, this causes Tidy to enclose any text it finds in the body element within a p element. This is useful when you want to take an existing html file and use it with a style sheet. Any text at the body level will screw up the margins, but wrap the text within a p element and all is well! The default is no.
enclose-block-text: bool
If set to yes, this causes Tidy to insert a p element to enclose any text it finds in any element that allows mixed content for HTML transitional but not HTML strict. The default is no.
fix-bad-comments: bool
If set to yes, this causes Tidy to replace unexpected hyphens with "=" characters when it comes across adjacent hyphens. The default is yes. This option is provided for users of Cold Fusion which uses the comment syntax: <!--- --->
add-xml-space: bool
If set to yes, this causes Tidy to add xml:space="preserve" to elements such as pre, style and script when generating XML. This is needed if the whitespace in such elements is to be parsed appropriately without having access to the DTD. The default is no.
alt-text: string
This allows you to set the default alt text for img attributes. This feature is dangerous as it suppresses further accessibility warnings. YOU ARE RESPONSIBLE FOR MAKING YOUR DOCUMENTS ACCESSIBLE TO PEOPLE WHO CAN'T SEE THE IMAGES!!!
write-back: bool
If set to yes, Tidy will write back the tidied markup to the same file it read from. The default is no. You are advised to keep copies of important files before tidying them as on rare occasions the result may not always be what you expect.
keep-time: bool
If set to yes, Tidy won't alter the last modified time for files it writes back to. The default is yes. This allows you to tidy files without effecting which ones will be uploaded to the Web server when using a tool such as 'SiteCopy'. Note that this feature may not work on some platforms.
error-file: filename
Writes errors and warnings to the named file rather than to stderr.
show-warnings: bool
If set to no, warnings are suppressed. This can be useful when a few errors are hidden in a flurry of warnings. The default is yes.
quiet: bool
If set to yes, Tidy won't output the welcome message or the summary of the numbers of errors and warnings. The default is no.
gnu-emacs: bool
If set to yes, Tidy changes the format for reporting errors and warnings to a format that is more easily parsed by GNU Emacs. The default is no.
split: bool
If set to yes Tidy will use the input file to create a sequence of slides, splitting the markup prior to each successive <h2>. You can see an example of the results in a recent talk I made on XHTML. The slides are written to "slide1.html", "slide2.html" etc. The default is no.
new-empty-tags: tag1, tag2, tag3
Use this to declare new empty inline tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Remember to also declare empty tags as either inline or blocklevel, see below.
new-inline-tags: tag1, tag2, tag3
Use this to declare new non-empty inline tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags.
new-blocklevel-tags: tag1, tag2, tag3
Use this to declare new block-level tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Note you can't change the content model for elements such as table, ul, ol and dl. This is explained in more detail in the release notes.
new-pre-tags: tag1, tag2, tag3
Use this to declare new tags that are to be processed in exactly the same way as HTML's pre element. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Note you can't as yet add new CDATA elements (similar to script).

Sample Config File

This is just an example to get you started.

// sample config file for HTML tidy
indent: auto
indent-spaces: 2
wrap: 72
markup: yes
output-xml: no
input-xml: no
show-warnings: yes
numeric-entities: yes
quote-marks: yes
quote-nbsp: yes
quote-ampersand: no
break-before-br: no
uppercase-tags: no
uppercase-attributes: no
char-encoding: latin1
new-inline-tags: cfif, cfelse, math, mroot,
  mrow, mi, mn, mo, msqrt, mfrac, msubsup, munderover,
  munder, mover, mmultiscripts, msup, msub, mtext,
  mprescripts, mtable, mtr, mtd, mth
new-blocklevel-tags: cfoutput, cfquery
new-empty-tags: cfelse
      

Using Tidy from scripts

If you want to run Tidy from a Perl or other scripting language you may find it of value to inspect the result returned by Tidy when it exits: 0 if everything is fine, 1 if there were warnings and 2 if there were errors. This is an example using Perl:

if (close(TIDY) == 0) {
  my $exitcode = $? >> 8;
  if ($exitcode == 1) {
    printf STDERR "tidy issued warning messages\n";
  } elsif ($exitcode == 2) {
    printf STDERR "tidy issued error messages\n";
  } else {
    die "tidy exited with code: $exitcode\n";
  }
} else {
  printf STDERR "tidy detected no errors\n";
}
      

Source Code

The latest versions of the source code can be found at the Source Forge developer's site for Tidy, see http://tidy.sourceforge.net/.

Acknowledgements

I would like to thank the many people who have written to me with suggestions for improvements or reporting bugs. Your help has been invaluable.

Jonathan Adair, Drew Adams, Osma Ahvenlampi, Carsten Allefeld, Richard Allsebrook, Jacob Sparre Andersen, Joe D'Andrea, Jerry Andrews, Bruce Aron, Takuya Asada, Edward Avis, Carlos Piqueres Ayela, Nick B, Chang Hyun Baek, Nick B, Denis Barbier, Chuck Baslock, Christer Bernerus, David J. Biesack, John Bigby, Yu Jian Bin, Alexander Biron, Keith Blakemore-Noble, Eric Blossom, Berend de Boer, Ochen M. Braun, Dave Bryan, David Brooke, Andy Brown, Keith B. Brown, Andreas Buchholz, Maurice Buxton, Jelks Cabaniss, John Cappelletti, Trevor Carden, Terry Cassidy, Mathew Cepl, Kendall Clark, Rob Clark, Jeremy Clulow, Dan Connolly, Larry Cousin, Ken Cox, Luis M. Cruz, John Cumming, Ian Davey, Keith Davies, Ciaran Deignan, David Duffy, Emma Duke-Williams, Tamminen Eero, Bodo Eing, Peter Enzerink, Baruch Even, David Fallon, Claus André Färber, Stephanie Foott, Darren Forcier, Martin Fouts, Frederik Fouvry, Rene Fritz, Stephen Fuqua, Martin Gallwey, Pete Gelbman, Francisco Guardiola, David Getchell, Michael Giroux, Davor Golek, Guus Goos, Léa Gris, Rainer Gutsche, Kai Hackemesser, Juha Häikiö, David Halliday, Johann-Christian Hanke, Vlad Harchev, Shane Harrelson, Andre Hinrichs, Bjoern Hoehrmann, G. Ken Holman, Bill Homer, Olaf Hopp, Craig Horman, Jack Horsfield, Nigel Horspool, Pao-Hsi Huang, Stuart Hungerford, Marc Jauvin, Rick Jelliffe, Peter Jeremy, Craig Johnson, Charles LaFountain, Steven Lobo, Zdenek Kabelac, Michael Kay, Jeffery Kendall, Axel Kielhorn, Konstantinos Kleisouris, Johannes Koch, Daniel Kohn, Rudy Kohut, Allan Kuchinsky, Volker Kuhlmann, Michael LaStella, Johnny Lee, Steve Lee, Tony Leneis, Nick Leverton, Todd Lewis, Dietmar Lippold, Gert-Jan C. Lokhorst, Murray Longmore, John Love-Jensen, Satwinder Mangat, Carole Mah, Anton Marsden, Bede McCall, Shane McCarron, Thomas McGuigan, Ian McKellar, Al Medeiros, Chris Nappin, Ann Navarro, Jacek Niedziela, Morten Blinksbjerg Nielsen, Kenichi Numata, Allan Odgaard, Matt Oshry, Gerald Oskoboiny, Paul Ossenbruggen, Ernst Paalvast, Christian Pantel, Dimitri Papadopoulos, Rick Parsons, Steven Pemberton, Daniel Persson, Lee Anne Phillips, Xavier Plantefeve, Karl Prinz, Andy Quick, Jany Quintard, Julian Reschke, Stephen Reynolds, Thomas Ribbrock, Ross L. Richardson, Philip Riebold, Erik Rossen, Dan Rudman, Peter Ruevski, Christian Ruetgers, Klaus Johannes Rusch, John Russell, Eric Schindler, J. Schlauch, Christian Schüler, Klaus Alexander Seistrup, Jim Seymour, Kazuyoshi Shimizu, Geoff Sinclair, Jo Smith, Paul Smith, Steve Spilker, Rafi Stern, Jacques Steyn, Michael J. Suzio, Zac Thompson, Eric Thorbjornsen, Oren Tirosh, John Tobler, Omri Traub, Loïc Trégan, Jason Tribbeck, Simon Trimmer, Steffen Ullrich, Stuart Updegrave, Charles A. Upsdell, Jussi Vestman, Larry W. Virden, Daniel Vogelheim, Nigel Wadsworth, Jez Wain, Randy Waki, Paul Ward, Neil Weber, Bertilo Wennergren, Yudong Yang, Jeff Young, Edward Zalta, Johannes Zellner, Christian Zuckschwerdt

Dave's Address

    35 Frome Road
    Bradford on Avon
    Wiltshire
    BA15 2EA
    United Kingdom
      

Dave Raggett <dsr@w3.org> is an engineer with Openwave Systems, and formerly Hewlett Packard's UK Laboratories . Dave works on assignment to the World Wide Web Consortium, where he is the W3C lead for Voice and Multimodal.



Der Autor distanziert sich ausdrücklich vom Inhalt aller externen Links und Verweise.
Er übernimmt keine Gewähr oder Haftung für
Vollständigkeit, Richtigkeit, Aktualität oder etwaige Schäden.