2012-12-15 7 views
5

Sto usando diff-match http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.htmlDifferenza tra le partite di Google per evitare di mostrare nuove righe?

Per mostrare le differenze tra 2 pezzi di html. Il problema è che lo script mostra una nuova riga come

C'è un modo per impostare di non mostrarlo?

Ora sto solo Rimozione di tutte le Istanze di \n e \r, ma questo doesnt' suona bene

+0

È passato molto tempo da quando ho lavorato con Diff Match Patch perché è stato molto solido nella mia implementazione, ma non ricordo che i simboli di paragrafo rappresentino un problema. Che cosa hai provato? – Hemlock

risposta

9

Come avete visto nella documentazione, la funzione html piuttosto è solo un esempio di sviluppare alcune ui fresco. Tuttavia, sostituisci lo ¶ (& para;) con null nella funzione, il simbolo scompare.

diff_match_patch.prototype.diff_prettyHtml = function(diffs) { 
    var html = []; 
    var pattern_amp = /&/g; 
    var pattern_lt = /</g; 
    var pattern_gt = />/g; 
    var pattern_para = /\n/g; 
    for (var x = 0; x < diffs.length; x++) { 
     var op = diffs[x][0]; // Operation (insert, delete, equal) 
     var data = diffs[x][1]; // Text of change. 
     //var text = data.replace(pattern_amp, '&amp;').replace(pattern_lt, '&lt;') 
     // .replace(pattern_gt, '&gt;').replace(pattern_para, '&para;<br>'); 
     var text = data.replace(pattern_amp, '&amp;').replace(pattern_lt, '&lt;') 
      .replace(pattern_gt, '&gt;').replace(pattern_para, '<br>'); 
     switch (op) { 
     case DIFF_INSERT: 
      html[x] = '<ins style="background:#e6ffe6;">' + text + '</ins>'; 
      break; 
     case DIFF_DELETE: 
      html[x] = '<del style="background:#ffe6e6;">' + text + '</del>'; 
      break; 
     case DIFF_EQUAL: 
      html[x] = '<span>' + text + '</span>'; 
      break; 
     } 
    } 
    return html.join(''); 
    }; 

Per verificare ciò, basta andare al link che hai fornito in Chrome e in copia console incollare sopra la funzione prima di premere il pulsante Calcola diff.

+0

@llnk: ha funzionato? – closure

+1

Non l'ho provato ... pensavo ci fosse un settaggio +1 in ogni caso – dynamic

+1

Come ho già detto prettyHtml è solo una funzione di convenienza. L'autore vuole che gli utenti cuociano nel loro ui. Non avrebbe senso fornire i parametri di configurazione per una funzione comoda. In effetti, abbiamo appena fatto un passaggio personalizzato sopra. Possiamo chiamare questo fn qualcos'altro e iniziare a cuocere. – closure

Problemi correlati