2012-12-15 11 views
5

मैं उपयोग कर रहा हूँ diff मैचों की http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.htmlGoogle-diff-match नई लाइनें दिखाने से बचें?

एचटीएमएल के 2 टुकड़े के बीच मतभेदों को दिखाने के लिए। समस्या यह है कि लिपि

के रूप में नई लाइन दिखाती है क्या इसे दिखाने के लिए सेट करने का कोई तरीका नहीं है?

अब मैं सिर्फ \n और \r के सभी istances को हटाने कर रहा हूँ, लेकिन यह does not 'अच्छा

+0

यह लंबे समय से रहा है क्योंकि मैंने डिफ मैच पैच के साथ कोई काम किया है क्योंकि यह मेरे कार्यान्वयन में ठोस है, लेकिन मुझे अनुच्छेद प्रतीकों को कोई समस्या नहीं है। आपने क्या प्रयास किया है – Hemlock

उत्तर

9

ध्वनि आप दस्तावेज में देखा है, सुंदर एचटीएमएल समारोह सिर्फ एक कुछ शांत यूआई विकसित करने के लिए नमूना है। हालांकि, आप ¶ (& पैरा;) को प्रतिस्थापित करते हैं, फ़ंक्शन में शून्य के साथ, प्रतीक गायब हो जाएगा।

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(''); 
    }; 

यह परीक्षण करने के लिए, बस गणना diff बटन से टकराने से पहले लिंक आपके द्वारा Chrome में और सांत्वना प्रतिलिपि में उपलब्ध कराई गई करने के लिए जाना समारोह ऊपर पेस्ट करें।

+0

@llnk: क्या यह काम करता है? – closure

+1

मैंने कोशिश नहीं की है .. मैंने सोचा कि वैसे भी एक सेटिंग +1 था – dynamic

+1

जैसा कि मैंने उल्लेख किया है कि prettyHtml बस एक सुविधा समारोह है। लेखक चाहता है कि उपयोगकर्ता अपने यूई में सेंकना चाहें। सुविधा फ़ंक्शन के लिए कॉन्फ़िगरेशन पैरामीटर देना समझ में नहीं आता है। वास्तव में, हमने अभी ऊपर एक कस्टम ui किया था। हम इस एफएन को कुछ और कह सकते हैं और बेकिंग शुरू कर सकते हैं। – closure