Utz Grimminger: Kommentarhierarchie

Hi Forum,

ich habe einen HTML-Code mit schön vielen Kommentaren. Dummerweise ist er fehlerhaft, und ich muss ihn debuggen. Um rauszufinden, wo das Problem hängt, kommentiere ich große Teile des kompl. Codes aus (und sehe dann ja ob's noch läuft oder nicht) - zumindest würde ich das gerne.
Wenn ich großzügig einen Kommentar um einen Abschnitt haue, in dem wiederum Kommentare stehen, geht's natürlich schief (weil ja dann das erste Kommentarende den eigentlich übergreifend gemeinten Kommentar beendet). Versteht keiner? Ok: Beispiel:

<!--
  <p class="irgendwas">Irgendwas halt....</p>
  <!--
    Hier Überschrift
  //-->
  <h1>Überschrift</h1>
  <!--
    weiterer Text
  //-->
  <p class="irgendwas">weiterer Text...</p>
//-->

Ich will den ganzen Abschnitt auskommentiert haben, aber nastürlich zeigt der Browser ab <h1> wieder an.

Nun bin ich ein fauler Mensch und will nicht ohne Ende vor und nach jedem gewollten Kommentar Debug-Kommentare setzen (v.a. weil ich dann völlig den Überblick verliere, was jetzt was für'n Kommentar ist)

Frage: Kennt irgendwer irgend 'ne Möglichkeit, so 'ne Art Kommentarhierarchie hinzubasteln, die die Kommentare so behandelt wie ich das will? (Auf deutsch: Verschachtelungen erkennt)
Oder: wie behelft Ihr Euch, wenn Ihr so einen Fall habt?

Grüße,

Utz

  1. Grüsse,

    Ich suche meine Fehler genauso, nur bin ich zu faul, einzelne Kommentare zu setzen. Ich markiere einfach den Text, schneide ihn aus und füge ihn in einem anderen Notepad wieder ein (meine Sicherheits-Zwischenablage).

    Nachher füge ich es einfach wieder ein.

    Vielleicht hilft Dir das weiter.

    CU, Flanor

    1. Grüsse,

      Ich suche meine Fehler genauso, nur bin ich zu faul, einzelne Kommentare zu setzen. Ich markiere einfach den Text, schneide ihn aus und füge ihn in einem anderen Notepad wieder ein (meine Sicherheits-Zwischenablage).

      Nachher füge ich es einfach wieder ein.

      einfacher gehts mit Homesite und mehrmaligen Undo's (auch nach save möglich)

      1. Hi Delpino,

        danke für 'n Tipp...muss ich doch mal wieder Homesite aus dem Schrank holen...

        Grüße,

        Utz

    2. Hi Flanor,

      danke für den Tipp, dummerweise hab' ich dann das Problem dass ich - trottelig wie ich bin - dann nicht mehr auf Anhieb finde wo er dann wieder hin muss.

      Grüße,

      Utz

      1. hi, utz

        [...] dann nicht mehr auf Anhieb finde wo er dann wieder hin muss.

        *big grin* kannst ja mit nem kommentar markieren.... (mal unabhaengig von deiner js-loesung :-) )

        cua

        n.d.p.

  2. Hallo Utz!>

    Frage: Kennt irgendwer irgend 'ne Möglichkeit, so 'ne Art Kommentarhierarchie hinzubasteln, die die Kommentare so behandelt wie ich das will? (Auf deutsch: Verschachtelungen erkennt)

    Nein. Denn 1) so etwas wie Kommentarhierarchie gibt es in HTML nicht und 2) Komenntare kannst du nicht verschachteln.

    Grüße
    Thomas

    PS 1: Kommentare in HTML sehen so aus:

    <!-- das ist ein
    mehrzeiliges Kommentar -->
    also ohne //  das ist nämlich nur für Scripte notwendig.

    PS 2:
    testest du mit IE verwende einfach <comment> .... </comment>

    1. Hallo Thomas,

      PS 1: Kommentare in HTML sehen so aus:

      <!-- das ist ein
      mehrzeiliges Kommentar -->
      also ohne //  das ist nämlich nur für Scripte notwendig.

      Interessant! Bisher dachte ich immer, <../../tcaf.htm> wäre richtig. Allerdings geben die flugs zu Rate gezogenen Specs von HTML 4.01 und sogar schon 2.0 Dir völlig recht.
      Hhhhmmmm...wo hat Stefan denn dann aber die Info über die // her? Bzw. was meintest Du mit "// (...) nur für Scripte notwendig"?

      PS 2:
      testest du mit IE verwende einfach <comment> .... </comment>

      Leider ist es wieder mal ein Problem mit Netscape das mich zu diesen Testläufen zwingt :-(

      Danke und Grüße,

      Utz

      1. Hi!

        Interessant! Bisher dachte ich immer, <../../tcaf.htm> wäre richtig.

        Das hatte mich schon immer gewundert, warum es dort falsch steht.

        Hhhhmmmm...wo hat Stefan denn dann aber die Info über die // her? Bzw. was meintest Du mit "// (...) nur für Scripte notwendig"?

        Nun, wuerdest Du die Zeile
        -->
        als valide JavaScript-Syntax anerkennen? Wohl nichtm deswegen produziert das auch einen JS-Error, wenn man das so am Ende eines Scripts schreibt. Deshalb muss davor das Zeichen, das in der verwendeten Scriptsprache einen einzeiligen Kommentar einleitet. In der meistgenutzten Sprache (JavaScript) ist das //, In PerlScript waere es #, in Basic ein ' oder REM. Deshalb also //--> oder #--> fuer Perl oder '--> fuer Basic.

        So long

        1. Hi,

          thx für die Info, jetzt lichtet sich dieses Stückelchen Nebel.

          Nun, wuerdest Du die Zeile
          -->
          als valide JavaScript-Syntax anerkennen? Wohl nichtm

          Das verstehe ich. Allerdings würde ich auch <!-- nicht als valide JS-Syntax anerkennen - offensichtlich wurde, so reime ich mir das zusammen, den JS-Interpretern dieses inoffizielle Stückchen Extra-Wissen mitgegeben, um HTML-Kommentare innerhalb von Script-Abschnitten zu ermöglichen.

          Grüße,

          Utz

      2. Hallo Utz!

        Allerdings geben die flugs zu Rate gezogenen Specs von HTML 4.01 und sogar schon 2.0 Dir völlig recht.

        Vertrauen ist gut, Kontrolle ist besser? ;-))

        http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4

        Hhhhmmmm...wo hat Stefan denn dann aber die Info über die // her? Bzw. was meintest Du mit "// (...) nur für Scripte notwendig"?

        The JavaScript engine allows the string "<!--" to occur at the start of a SCRIPT element, and ignores further characters until the end of the line. JavaScript interprets "//" as starting a comment extending to the end of the current line. This is needed to hide the string "-->" from the  JavaScript parser.
        http://www.w3.org/TR/html4/interact/scripts.html#h-18.3.2

        Und das ist auch der Grund warum z.B. bei Netscape CSS ignoriert wird wenn nach <!-- Angaben folgen, da im NS der JS-parser die CSS-Arbeit verrichtet.

        Grüße
        Thomas

        1. Hi Thomas,

          Vertrauen ist gut, Kontrolle ist besser? ;-))

          Klar, denn erstens ist der Satz ja immerhin von Lenin, und zweitens pflege ich SelfHTML erst dann zu misstrauen, wenn ich 'ne noch zuverlässigere Quelle aber auch wirklich direkt und unmittelbar vor meinen Augen habe :-)
          (Du wirst mir hoffentlich verzeihen dass meine Rangfolge zuverlässiger Quellen da W3C, dann SelfHTML und dann erst Thomas J.S. lautet :-)

          The JavaScript engine allows the string "<!--" to occur at the start of a SCRIPT element, and ignores further characters until the end of the line. JavaScript interprets "//" as starting a comment extending to the end of the current line. This is needed to hide the string "-->" from the  JavaScript parser.
          http://www.w3.org/TR/html4/interact/scripts.html#h-18.3.2

          Ein prima Beispiel für "ich suche immer in den falschen Quellen" - hab' doch glatt JS-Referenzen danach durchsucht und bin nicht drauf gekommen, mal in der HTML-Spec nachzusehen.

          Und das ist auch der Grund warum z.B. bei Netscape CSS ignoriert wird wenn nach <!-- Angaben folgen, da im NS der JS-parser die CSS-Arbeit verrichtet.

          Werden denn im IE CSS-Angaben innerhalb <!-- (...) --> nicht ignoriert? Wenn es so wäre, würde das ja ganz neue (zumindest mir bisher unbekannte) Möglichkeiten browserabhängigen Setzens von Stylesheets auch ohne JS ermöglicht...

          Grüße,

          Utz

          1. (...) browserabhängigen Setzens von Stylesheets auch ohne JS (...)

            ^^^^^^^

            Brrr...erst denken, dann posten - was soll denn browserabhängiges Setzen von Stylesheets _ohne JS_ bringen, wenn Netscape ohne JS keine CSS umsetzen kann? Ich stell mich jetzt ob diesen Schwachsinnspostings in die Schamecke....

            Grüße,

            Utz

          2. Hallo Utz!

            Und das ist auch der Grund warum z.B. bei Netscape CSS ignoriert wird wenn nach <!-- Angaben folgen, da im NS der JS-parser die CSS-Arbeit verrichtet.

            Werden denn im IE CSS-Angaben innerhalb <!-- (...) --> nicht ignoriert? Wenn es so wäre, würde das ja ganz neue (zumindest mir bisher unbekannte) Möglichkeiten browserabhängigen Setzens von Stylesheets auch ohne JS ermöglicht...

            Das setzten von Browserabhängigen CSS geht auch schon so ohne JS, aber wie du erkannt hast,hat das für NS nur eine partielle Bedeutung.

            Bei NS wird nur die Zeile ignoriert
            <!-- die direkt mit dem Kommentaranfang in der selben Zeile steht

            die anderen Angeben werden schon wahrgenommen. War ich wohl nicht ganz prezise.

            Grüße
            Thomas

        2. Hi Thomas!

          Und das ist auch der Grund warum z.B. bei Netscape CSS ignoriert wird wenn nach <!-- Angaben folgen, da im NS der JS-parser die CSS-Arbeit verrichtet.

          Mmh... diesen direkten Zusammenhang sehe ich da nicht. So wie ich die Sache sehe, hat Netscape einen CSS-to-JSSS-Converter, und der ignoriert eben *auch* alles, was noch in derselben Zeile steht (irgendwie naheliegend, wieso sollten sie das bei STYLE anders implementieren als bei SCRIPT). Es ist aber imho nicht so, dass erst der JSSS-Interpreter das <!-- ignoriert.

          So long

  3. Hi Forum,

    manchmal hilft um-die-Ecke denken weiter. Kaum rutschte dieser Thread in die JavaScript-Ecke, schon war die Lösung da.
    Um das o.g. zu bewerkstelligen, muss man um den auszukommentierenden Abschnitt einfach einen JavaScript-Bereich mit mehrzeiligem JS-Kommentar machen, also so:

    <script type="text/javascript">
    /*
      <p class="irgendwas">Irgendwas halt....</p>
      <!--
        Hier Überschrift
      //-->
      <h1>Überschrift</h1>
      <!--
        weiterer Text
      //-->
      <p class="irgendwas">weiterer Text...</p>
    */
    </script>

    und schon hab ich meine gesuchte "Kommentarhierarchie" hingetrickst.

    Nochmal Dank an alle die mir mit ihren Postings halfen da drauf zu kommen.

    Grüße,

    Utz