スタックオーバーフローのdiffビューは非常に良いです。私はjavascript
を使ってこれをやりたいのですが、私はどのように始めるべきか分かりませんが、誰が助言を与えることができますか?Stack Overflowのような視覚的な差分ビューを作成するにはどうすればよいですか?
は、次のような:
スタックオーバーフローのdiffビューは非常に良いです。私はjavascript
を使ってこれをやりたいのですが、私はどのように始めるべきか分かりませんが、誰が助言を与えることができますか?Stack Overflowのような視覚的な差分ビューを作成するにはどうすればよいですか?
は、次のような:
あなたはgoogle-diff-match-patchプロジェクトを試すことができます、このプロジェクトは、プレーンテキストを同期するために必要な操作を実行するための堅牢なアルゴリズムを提供します。
コード:
<div class="test">
<div id="oldStr" class="text">the stackoverflow question and answer version control is very well,i want to do this use javascript,but i don't know how to start,who can give some suggestion?thanks</div>
<div id="newStr" class="text">Stack Overflow's diff view is very good. I want to do this using javascript,but i don't know how to start,who can give some suggestion?thanks</div>
</div>
<input type="button" value="GO" onclick="launch()" />
<div class="test">
<div class="text" id="outputOldStr"></div>
<div class="text" id="outputNewStr"></div>
</div>
<script type="text/javascript">
var dmp = new diff_match_patch();
function launch() {
var text1 = document.getElementById('oldStr').innerHTML;
var text2 = document.getElementById('newStr').innerHTML;
dmp.Diff_EditCost = 8;
var d = dmp.diff_main(text1, text2);
dmp.diff_cleanupEfficiency(d);
var oldStr = "", newStr = "";
for (var i = 0, j = d.length; i < j; i++) {
var arr=d[i];
if (arr[0] == 0) {
oldStr += arr[1];
newStr += arr[1];
} else if (arr[0] == -1) {
oldStr += "<span class='text-del'>" + arr[1] + "</span>";
} else {
newStr += "<span class='text-add'>" + arr[1] + "</span>";
}
}
document.getElementById('outputOldStr').innerHTML = oldStr;
document.getElementById('outputNewStr').innerHTML = newStr;
}
</script>
diffの可視化を行いJavaScriptライブラリがあります。 、
私はそれらのいずれかを試していないので、残念ながら、私はあなたが必要とするために最も適しているあなたを伝えることはできません。これらは私が見つけたいくつかの例であり、それをチェックする価値があるかもしれません。
更新
jsdifflibは、あなたが試みることができることを利用できa demoあり、有望に見えます。
はい、これはちょうど私が私がこれを経て、 'diff_match_patchを使用するために必要な「プレゼンテーションの作業」を支援するためのラッパーライブラリを作成することになった – artwl
を見つけます':https://github.com/arnab/jQuery.PrettyTextDiff – arnab
' google-diff-match-patch'の角付きラッパー:https://github.com/amweiss/angular-diff-match-patch – fiat