arnab / jQuery.PrettyTextDiff

A wrapper around Google's diff_match_patch library, to make life easy
MIT License
268 stars 55 forks source link

Diffs of text containing tab characters? #11

Open BlackKite84 opened 9 years ago

BlackKite84 commented 9 years ago

on Diff by Two Table withs Tab's the output has a
what does not belong there

output (updateChange) the
before Dog Days is too much

<tr>
                        <td class="columnText updateOriginal" style="width: 50%;">
                            Dog Days''                      </td>
                        <td class="columnText updateChange" style="width: 50%;"><span><br>                          Dog Days''                      </span></td>
                    </tr>

on view in browser i See a new line, the Text is not symmetric on line beginning

arnab commented 9 years ago

Hi @BlackKite84 can you produce a jsfiddle with the problem?

BlackKite84 commented 9 years ago

http://jsfiddle.net/pytm9ueL/1/

yes

arnab commented 9 years ago

Huh, I am missing something here. You specified (in that jsfiddle):

Questions:

arnab commented 9 years ago

Also, the "title" of this issue is set to <br>. Could you please change that to the actual problem/question you are reporting/asking?

BlackKite84 commented 9 years ago

unbenannt

I overwrite the change Content with the diff (i will see only change and original)

http://jsfiddle.net/pytm9ueL/2/

A new line (
)

arnab commented 9 years ago

Add debug: true to when you call prettyTextDiff: http://jsfiddle.net/pytm9ueL/4/

This will show you what this library found. Looks like the underlying Google diff-match-patch library shows the "↵ " also as a diff.

BlackKite84 commented 9 years ago

and why "Enter" i use Tab

arnab commented 9 years ago

Like I said, what you are seeing is coming from the underlying library. Please ask your question there: https://code.google.com/p/google-diff-match-patch/

BlackKite84 commented 9 years ago

I have Fix ist with

        } else {
          original = $(settings.originalContainer, this).text().trim();
          changed = $(settings.changedContainer, this).text().trim();
        }
jbeyer05 commented 5 years ago

I am running into the same issue that @BlackKite84 was seeing. I have two divs that appear to have identical content (including whitespace). If I pass parameters via originalContainer and changedContainer, PrettyTextDiff appears to pass slightly different strings (different in their whitespace) to google-diff-match-patch. Here is the result of a call to .prettyTextDiff( ) when I use originalContainer and changedContainer parameters. Note the <br>'s that are inserted at the beginning and end of .immutable-clause-pretty-diff

Screen Shot 2019-06-24 at 7 28 19 PM

Screen Shot 2019-06-24 at 7 28 42 PM

And here is the result of a call to .prettyTextDiff( ) when I use originalContent and changedContent parameters with the trim( ) function, as suggested by @BlackKite84. It works as expected:

Screen Shot 2019-06-24 at 7 30 41 PM

Screen Shot 2019-06-24 at 7 30 53 PM

jbeyer05 commented 5 years ago

It appears that if there are matching newline characters inside the originalContent and changedContent divs, google-diff-match-patch passes the newline character back, but PrettyTextDiff converts said newline character to a <br> here

I'm not sure if it would break things for other users, but it seems like substituting <br>s for newline characters may not be necessary.

parallels999 commented 1 month ago

I think that any problems like \t, \b, or whitespace would be solved by using <pre></pre>

Example: https://jsfiddle.net/ybz8enwk image