jsdiff(https://github.com/kpdecker/jsdiff)を使用して2つのファイルの差分をWebページに表示しようとしています。Webページに切り捨て差分を表示
全体的にはうまくいきますが、巨大なファイルにわずかな変更があっても、ファイルの内容全体が表示されないようにするには、変更されていない部分を切り捨てたいと思います。 diffによく似たものがgithubに表示されます。これは私を与える
#diff {
.diff-no-change {
opacity: 0.54;
}
.diff-added{
color: green;
}
.diff-removed{
color: red;
text-decoration: line-through;
}
}
:jsdiffを使用して差分を計算する AngularJSコード:
var serverValue = selectedServiceConfig.getServerConfigDataString();
$scope.diff = JsDiff.diffLines(serverValue, newValue);
そしてHTML:
<pre id="diff">
<span ng-repeat="change in diff" ng-class="{'diff-added': change.added, 'diff-removed': change.removed, 'diff-no-change': !change.added && !change.removed}">{{change.value}}</span>
</pre>
そして、いくつかのCSS私は何を持っている
ここで、灰色の部分が1000行であるとします。私はそれをすべて見せたくありません。しかし、むしろ実際の差分に近いものもあります。文脈を提供するために、私はそれを簡単に取り除きたくはありませんが。
私の質問は今より明確です。
はい、私はすべての変わらない部分を削除する必要はありませんが。私はまだいくつかの行に文脈を提供したい。 – tkarls
さて、あなたはそれを行うことができます。しかし、具体的な実装はあなたの一部です。私は完全な解決策を提供するつもりはない、私はちょうどあなたが変更されていない部分を省略することができる方法を述べた。そしてbtw、私はそれがあなたを助けたことを願っています! – Luke