WYSIWYG-Diff?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • WYSIWYG-Diff?

    Ich suche eine PHP- oder Perl-basierte Lösung zum Vergleichen von zwei HTML-Quellen mit WYSIWYG-Highlighting. Also nicht zum simplen Vergleichen der Quellcodezeilen à la Unix-Diff, sondern mit grafischer Hervorhebung der Unterschiede im geparsten HTML.

    Das ist Prinzipbedingt gar nicht so einfach umzusetzen, deshalb wollte ich erstmal schauen, ob es da nicht schon was gibt. Habe bei den üblichen Verdächtigen (phpclasses.org usw.) aber nix gefunden.

    Der Aufbau der zu vergleichenden HTML-Quellen steht bereits fest (CMS-Inhalte), Workarounds wie z.B. die in der Wikipedia-History verwendeten Techniken (also einfach Baustein um Baustein zu vergleichen) sind daher keine Option. Allerdings ist das HTML bei meinem Anliegen relativ simpel aufgebaut, Tabellen- und Bildervergleich ist kein Muß.

    Kennt da jemand was? Darf auch gerne kommerziell sein.

  • #2
    Also z. B. wenn du in file1.htm die Zeile <b>Hallo</b> hast und in file2.htm daraus <b>Hallo Welt</b> geworden ist, möchtest du eine Anzeige in der Art?

    Code:
    --- file1.htm
    +++ file2.htm
    @ -1 +1 @
    -[b]Hallo[/b]
    +[b]Hallo Welt[/b]
    Anstatt nur
    Code:
    --- file1.htm
    +++ file2.htm
    @ -1 +1 @
    -<b>Hallo</b>
    +<b>Hallo Welt</b>
    diff ist ein zeilenbasierter algorithmus, man kann leider nicht davon ausgehen, dass der HTML Code in einer Zeile in sich korrekt verschachtelt ist, es gibt ja auch HTML Code über mehrere Zeilen. Andernfalls würde ich vorschlagen, einfach das Ergebnis von diff etwas umzuformatieren.


    Meine Gedanken zu dem Thema:
    Im Prinzip hindert einen ja nichts daran, einen diff einfach als HTML darzustellen? Nur die Sache mit dem Kontext und dass dadurch Tags evtl. nicht mehr geschlossen oder geöffnet werden. Vielleicht kannst du solche Tags ja "einfach" aus dem Kontext herausfiltern, bevor du den diff darstellst?


    Ansonsten könnte das CPAN Modul XML::SemanticDiff vielleicht ganz nützlich sein, vorrausgesetzt es handelt sich um XHTML und keinen HTML Code?
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Im Prinzip hindert einen ja nichts daran, einen diff einfach als HTML darzustellen? Nur die Sache mit dem Kontext und dass dadurch Tags evtl. nicht mehr geschlossen oder geöffnet werden. Vielleicht kannst du solche Tags ja "einfach" aus dem Kontext herausfiltern, bevor du den diff darstellst?
      Hmm. Wäre als Light-Version sicher eine Möglichkeit... Aber es wäre natürlich schön, wenn auch Formatänderungen wie eine größere Schrift erkannt und herausgehoben würden. Das ist aber viiel verlangt, dann müßte man Tag-Basiert diffen. *brrrr*

      Danke schon mal fürs Mitdenken - wahrscheinlich wird's auf so eine Light-Version rauslaufen. Ich würde sonst ja ein Jobangebot posten (Ist noch Geld im Topf), aber das riecht nach einem Projekt, das nur schiefgehen kann - 100%ig perfekt kann man sowas nicht machen, und wer legt dann die Toleranzgrenzen für die Fehlerquote fest, bei der der Job erfüllt ist? Hmm....

      Kommentar


      • #4
        Rein aus Neugier: hast du eine Lösung finden können?
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar

        Lädt...
        X