una descrizione di quello che ho intenzione di realizzare:Costruire un algoritmo HTML Diff/Patch
- Ingresso 2 (N non è essenziale) documenti HTML.
- Standardizza il formato HTML
- Diff i due documenti: gli stili esterni non sono importanti ma verrà incluso qualsiasi elemento incorporato nel documento.
- Determina delta al livello dell'elemento HTML Block.
Ampliare l'ultimo punto:
immaginare due pagine dello stesso sito che entrambi condividono una barra laterale con quello che era probabilmente un antenato comune che è stato copia/incollato. Ogni pagina ha alcune modifiche minori alla barra laterale. Il diff rivelerà queste modifiche, quindi posso "salire" sul DOM per trovare il primo elemento di blocco comune condiviso da loro, o semplicemente predefinito su <body>
. In questo caso, mi piacerebbe farlo e scoprire che, oh, condividono un comune <div id="sidebar">
.
Conosco DaisyDiff e l'applicazione è simile, nel mondo CMS.
Ho anche iniziato a giocare con la libreria di patch di google.
Volevo chiedere a questo tipo di domanda non specifica di sperare eventualmente qualche consiglio o guida che qualcuno possa essere d'aiuto. Attualmente se metti una pistola alla mia testa e dici "CODICE IT", riscrivo DaisyDiff in Python e aggiungo questa logica a livello di blocco. Ma ho pensato che forse c'è un modo migliore e le risposte a Anyone have a diff algorithm for rendered HTML? mi hanno fatto sentire caldo e confuso.
Correlato: http://stackoverflow.com/questions/1576459/generate-pretty-diff-html-in-python. –
Non sono sicuro della vostra esatta applicazione, ma un algoritmo di classificazione DOM viene utilizzato da progetti come http://www.readability.com/ per estrarre il contenuto pertinente. Se vuoi diff solo sul nucleo della pagina, qualcosa del genere potrebbe avere senso –
Mi piacerebbe sentire un aggiornamento su questo progetto; se sei riuscito a trovare quello che stavi cercando e se hai intenzione di aprirlo in qualsiasi momento :) – onassar