Browse Source

文章比较

懒得勤快 7 years ago
parent
commit
92a6dc7395

+ 4 - 0
src/Masuit.MyBlogs.WebApp/Controllers/PostController.cs

@@ -173,6 +173,10 @@ namespace Masuit.MyBlogs.WebApp.Controllers
             var main = PostBll.GetById(id).Mapper<PostHistoryVersion>();
             var left = v1 <= 0 ? main : PostHistoryVersionBll.GetById(v1);
             var right = v2 <= 0 ? main : PostHistoryVersionBll.GetById(v2);
+            HtmlDiff.HtmlDiff diffHelper = new HtmlDiff.HtmlDiff(right.Content, left.Content);
+            string diffOutput = diffHelper.Build();
+            right.Content = Regex.Replace(Regex.Replace(diffOutput, "<ins.+?</ins>", string.Empty), @"<\w+></\w+>", string.Empty);
+            left.Content = Regex.Replace(Regex.Replace(diffOutput, "<del.+?</del>", string.Empty), @"<\w+></\w+>", string.Empty);
             return View(new[] { main, left, right });
         }
 

+ 3 - 0
src/Masuit.MyBlogs.WebApp/Masuit.MyBlogs.WebApp.csproj

@@ -126,6 +126,9 @@
     <Reference Include="Hangfire.SqlServer, Version=1.6.20.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\Hangfire.SqlServer.1.6.20\lib\net45\Hangfire.SqlServer.dll</HintPath>
     </Reference>
+    <Reference Include="HtmlDiff, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\htmldiff.net.1.3\lib\net35\HtmlDiff.dll</HintPath>
+    </Reference>
     <Reference Include="ICSharpCode.SharpZipLib, Version=1.0.0.999, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
       <HintPath>..\packages\SharpZipLib.1.0.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>

+ 1 - 0
src/Masuit.MyBlogs.WebApp/packages.config

@@ -16,6 +16,7 @@
   <package id="Hangfire.Console" version="1.4.1" targetFramework="net46" />
   <package id="Hangfire.Core" version="1.6.20" targetFramework="net46" />
   <package id="Hangfire.SqlServer" version="1.6.20" targetFramework="net46" />
+  <package id="htmldiff.net" version="1.3" targetFramework="net46" />
   <package id="jQuery" version="3.3.1" targetFramework="net45" />
   <package id="Lucene.Net" version="3.0.3" targetFramework="net45" />
   <package id="Lucene.Net.Analysis.PanGu" version="2.4.1" targetFramework="net45" />