83 votes

Quelqu'un a un algorithme de différence pour le HTML rendu ?

J'aimerais voir un bon algorithme de comparaison, éventuellement en Javascript, pour rendre une comparaison côte à côte de deux pages HTML. L'idée est que le diff montre les différences entre les pages HTML et les pages non HTML. rendu HTML.

Pour clarifier, je veux être en mesure de voir les différences côte à côte comme sortie rendue. Ainsi, si je supprime un paragraphe, la vue côte à côte saura espacer les choses correctement.


@Josh exactement. Mais peut-être que le texte supprimé serait affiché en rouge ou autre. L'idée est que si j'utilise un éditeur WYSIWYG pour mon contenu HTML, je ne veux pas avoir à passer au HTML pour faire des différences. Je veux le faire avec deux éditeurs WYSIWYG côte à côte peut-être. Ou au moins afficher les différences côte à côte d'une manière conviviale pour l'utilisateur final.

1voto

Josh Points 4344

Donc, vous attendez

<font face="Arial">Hi Mom</font>

et

<span style="font-family:Arial;">Hi Mom</span>

pour être considérés comme identiques ?

Le résultat dépend beaucoup de l'agent utilisateur. Comme Ionut Anghelcovici suggère faites une image. Faites-en une pour chaque navigateur qui vous intéresse.

1voto

Utilisez le mode de balisage de Pretty Diff pour HTML. Il est écrit entièrement en JavaScript.

http://prettydiff.com/

0voto

MotoWilliams Points 1209

S'il s'agit de XHTML (ce qui suppose beaucoup de ma part), le Xml Diff Patch Toolkit pourrait-il vous aider ? http://msdn.microsoft.com/en-us/library/aa302294.aspx

0voto

Lasse V. Karlsen Points 148037

Pour les petites différences, vous pourriez être en mesure de faire une comparaison de texte normale, puis d'analyser les parties manquantes ou insérées pour voir comment les résoudre, mais pour les grandes différences, vous aurez beaucoup de mal à le faire.

Par exemple, comment détecter, et montrer, qu'une image alignée à gauche (flottant à gauche d'un paragraphe de texte) est soudainement devenue alignée à droite ?

0voto

L'utilisation d'un texte différent se brisera sur les documents non triviaux. En fonction de ce que vous pensez être intuitif, les differs XML génèreront probablement des différences qui ne sont pas très bonnes pour du texte avec du balisage. AFAIK, DaisyDiff est la seule bibliothèque spécialisée dans le HTML. Elle fonctionne très bien pour un sous-ensemble de HTML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X