DiffMatchPatch не сохраняет разрыв строки - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю с google_DiffMatchPatch в JavaScript, код также работает, но когда я показываю различия, пропадают разрывы строк, вы видите здесь, что я пытаюсь сказать:

перед сравнением

После сравнения

//diff match patch code
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;
  var pattern_br = "&#160;";
  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_br, "<br>").replace(pattern_para,"");
    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('');
};
 //my code
 corpo = item.get_item('Corpo');
        corpoOr = item.get_item('CorpoOriginale');

        text2 = corpo.replace(/(<([^>]+)>)/ig,"");
        text1 = corpoOr.replace(/(<([^>]+)>)/ig,"");



        var lista1 = dividi(text1);
        var lista2 = dividi(text2);

        $("#theWYSIWYG2").contents().find('body').html(DIFF.diff_prettyHtml(lista1));
        $("#theWYSIWYG3").contents().find('body').html(DIFF.diff_prettyHtml(lista2));

Вопрос в том, как мне сделать, чтобы сохранить разрывы строк, когда я помещаю результаты в iframe?

...