Browse Source

html渲染重构

懒得勤快 6 years ago
parent
commit
bec9ee4641

+ 56 - 1
src/Masuit.MyBlogs.Core/Common/CommonHelper.cs

@@ -1,4 +1,5 @@
-using IP2Region;
+using HtmlAgilityPack;
+using IP2Region;
 using Masuit.Tools;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Net.Http.Headers;
@@ -7,6 +8,7 @@ using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+
 #if !DEBUG
 using Masuit.MyBlogs.Core.Models.ViewModel;
 using Masuit.Tools.Models;
@@ -192,5 +194,58 @@ namespace Masuit.MyBlogs.Core.Common
                 "bot"
             });
         }
+
+        /// <summary>
+        /// 清理html的img标签的除src之外的其他属性
+        /// </summary>
+        /// <param name="html"></param>
+        /// <returns></returns>
+        public static string ClearImgAttributes(this string html)
+        {
+            var doc = new HtmlDocument();
+            doc.LoadHtml(html);
+            var nodes = doc.DocumentNode.Descendants("img");
+            foreach (var node in nodes)
+            {
+                string src = "";
+                if (node.Attributes.Contains("data-original"))
+                {
+                    src = node.Attributes["data-original"].Value;
+                }
+
+                if (node.Attributes.Contains("src"))
+                {
+                    src = node.Attributes["src"].Value;
+                }
+
+                node.Attributes.RemoveAll();
+                node.Attributes.Add("src", src);
+            }
+
+            return doc.DocumentNode.OuterHtml;
+        }
+
+        /// <summary>
+        /// 将html的img标签的src属性名替换成data-original
+        /// </summary>
+        /// <param name="html"></param>
+        /// <returns></returns>
+        public static string ReplaceImgAttribute(this string html)
+        {
+            var doc = new HtmlDocument();
+            doc.LoadHtml(html);
+            var nodes = doc.DocumentNode.Descendants("img");
+            foreach (var node in nodes)
+            {
+                if (node.Attributes.Contains("src"))
+                {
+                    string src = node.Attributes["src"].Value;
+                    node.Attributes.Remove("src");
+                    node.Attributes.Add("data-original", src);
+                }
+            }
+
+            return doc.DocumentNode.OuterHtml;
+        }
     }
 }

+ 5 - 2
src/Masuit.MyBlogs.Core/Controllers/BaseController.cs

@@ -129,9 +129,12 @@ namespace Masuit.MyBlogs.Core.Controllers
         public override void OnActionExecuted(ActionExecutedContext filterContext)
         {
             base.OnActionExecuted(filterContext);
-            if (filterContext.HttpContext.Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase) && filterContext.Result is ViewResult)
+            if (filterContext.HttpContext.Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase))
             {
-                filterContext.Result = ResultData(null, false, "该URL仅支持Get请求方式", false, HttpStatusCode.MethodNotAllowed);
+                if (filterContext.Result is ViewResult)
+                {
+                    filterContext.Result = ResultData(null, false, "该URL仅支持Get请求方式", false, HttpStatusCode.MethodNotAllowed);
+                }
                 return;
             }
 

+ 3 - 3
src/Masuit.MyBlogs.Core/Controllers/CommentController.cs

@@ -66,7 +66,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             UserInfoOutputDto user = HttpContext.Session.Get<UserInfoOutputDto>(SessionKey.UserInfo);
             comment.Content = comment.Content.Trim().Replace("<p><br></p>", string.Empty);
 
-            if (comment.Content.RemoveHtml().Trim().Equals(HttpContext.Session.Get<string>("comment" + comment.PostId)))
+            if (comment.Content.RemoveHtmlTag().Trim().Equals(HttpContext.Session.Get<string>("comment" + comment.PostId)))
             {
                 return ResultData(null, false, "您刚才已经在这篇文章发表过一次评论了,换一篇文章吧,或者换一下评论内容吧!");
             }
@@ -87,14 +87,14 @@ namespace Masuit.MyBlogs.Core.Controllers
                     comment.IsMaster = true;
                 }
             }
-            comment.Content = Regex.Replace(comment.Content.HtmlSantinizerStandard().ConvertImgSrcToRelativePath(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>");
+            comment.Content = comment.Content.HtmlSantinizerStandard().ClearImgAttributes();
             comment.CommentDate = DateTime.Now;
             comment.Browser = comment.Browser ?? Request.Headers[HeaderNames.UserAgent];
             comment.IP = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
             Comment com = CommentService.AddEntitySaved(comment.Mapper<Comment>());
             if (com != null)
             {
-                HttpContext.Session.Set("comment" + comment.PostId, comment.Content.RemoveHtml().Trim());
+                HttpContext.Session.Set("comment" + comment.PostId, comment.Content.RemoveHtmlTag().Trim());
                 var emails = new List<string>();
                 var email = CommonHelper.SystemSettings["ReceiveEmail"]; //站长邮箱
                 emails.Add(email);

+ 2 - 2
src/Masuit.MyBlogs.Core/Controllers/MiscController.cs

@@ -133,7 +133,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [Authority]
         public async Task<ActionResult> Write(Misc model)
         {
-            model.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(model.Content?.Trim(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/");
+            model.Content = await _imagebedClient.ReplaceImgSrc(model.Content.Trim().ClearImgAttributes());
             var e = MiscService.AddEntitySaved(model);
             if (e != null)
             {
@@ -185,7 +185,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             var entity = MiscService.GetById(misc.Id);
             entity.ModifyDate = DateTime.Now;
             entity.Title = misc.Title;
-            entity.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(misc.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/");
+            entity.Content = await _imagebedClient.ReplaceImgSrc(misc.Content.ClearImgAttributes());
             bool b = MiscService.UpdateEntitySaved(entity);
             return ResultData(null, b, b ? "修改成功" : "修改失败");
         }

+ 3 - 3
src/Masuit.MyBlogs.Core/Controllers/MsgController.cs

@@ -130,7 +130,7 @@ namespace Masuit.MyBlogs.Core.Controllers
 
             UserInfoOutputDto user = HttpContext.Session.Get<UserInfoOutputDto>(SessionKey.UserInfo);
             msg.Content = msg.Content.Trim().Replace("<p><br></p>", string.Empty);
-            if (msg.Content.RemoveHtml().Trim().Equals(HttpContext.Session.Get<string>("msg")))
+            if (msg.Content.RemoveHtmlTag().Trim().Equals(HttpContext.Session.Get<string>("msg")))
             {
                 return ResultData(null, false, "您刚才已经发表过一次留言了!");
             }
@@ -151,13 +151,13 @@ namespace Masuit.MyBlogs.Core.Controllers
                 }
             }
             msg.PostDate = DateTime.Now;
-            msg.Content = Regex.Replace(msg.Content.HtmlSantinizerStandard().ConvertImgSrcToRelativePath(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>");
+            msg.Content = msg.Content.HtmlSantinizerStandard().ClearImgAttributes();
             msg.Browser = msg.Browser ?? Request.Headers[HeaderNames.UserAgent];
             msg.IP = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
             LeaveMessage msg2 = LeaveMessageService.AddEntitySaved(msg.Mapper<LeaveMessage>());
             if (msg2 != null)
             {
-                HttpContext.Session.Set("msg", msg.Content.RemoveHtml().Trim());
+                HttpContext.Session.Set("msg", msg.Content.RemoveHtmlTag().Trim());
                 var email = CommonHelper.SystemSettings["ReceiveEmail"];
                 string content = System.IO.File.ReadAllText(_hostingEnvironment.WebRootPath + "/template/notify.html").Replace("{{title}}", "网站留言板").Replace("{{time}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")).Replace("{{nickname}}", msg2.NickName).Replace("{{content}}", msg2.Content);
                 if (msg.Status == Status.Pended)

+ 2 - 2
src/Masuit.MyBlogs.Core/Controllers/NoticeController.cs

@@ -104,7 +104,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [Authority]
         public async Task<ActionResult> Write(Notice notice)
         {
-            notice.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(notice.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/");
+            notice.Content = await _imagebedClient.ReplaceImgSrc(notice.Content.ClearImgAttributes());
             Notice e = NoticeService.AddEntitySaved(notice);
             if (e != null)
             {
@@ -156,7 +156,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             Notice entity = NoticeService.GetById(notice.Id);
             entity.ModifyDate = DateTime.Now;
             entity.Title = notice.Title;
-            entity.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(notice.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/");
+            entity.Content = await _imagebedClient.ReplaceImgSrc(notice.Content.ClearImgAttributes());
             bool b = NoticeService.UpdateEntitySaved(entity);
             return ResultData(null, b, b ? "修改成功" : "修改失败");
         }

+ 12 - 9
src/Masuit.MyBlogs.Core/Controllers/PostController.cs

@@ -310,7 +310,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             }
             else
             {
-                post.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(post.Content.HtmlSantinizerStandard(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/");
+                post.Content = await _imagebedClient.ReplaceImgSrc(post.Content.HtmlSantinizerStandard().ClearImgAttributes());
             }
 
             ViewBag.CategoryId = new SelectList(CategoryService.LoadEntitiesNoTracking(c => c.Status == Status.Available), "Id", "Name", post.CategoryId);
@@ -771,7 +771,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [HttpPost, Authority]
         public async Task<ActionResult> Edit(PostInputDto post, bool notify = true, bool reserve = true)
         {
-            post.Content = await _imagebedClient.ReplaceImgSrc(Regex.Replace(post.Content.Trim(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"));
+            post.Content = await _imagebedClient.ReplaceImgSrc(post.Content.Trim().ClearImgAttributes());
             if (!CategoryService.Any(c => c.Id == post.CategoryId && c.Status == Status.Available))
             {
                 return ResultData(null, message: "请选择一个分类");
@@ -819,13 +819,16 @@ namespace Masuit.MyBlogs.Core.Controllers
                 tmp.ForEach(s =>
                 {
                     Seminar seminar = SeminarService.GetFirstEntity(e => e.Title.Equals(s));
-                    p.Seminar.Add(new SeminarPost()
+                    if (seminar != null)
                     {
-                        Post = p,
-                        Seminar = seminar,
-                        PostId = p.Id,
-                        SeminarId = seminar.Id
-                    });
+                        p.Seminar.Add(new SeminarPost()
+                        {
+                            Post = p,
+                            Seminar = seminar,
+                            PostId = p.Id,
+                            SeminarId = seminar.Id
+                        });
+                    }
                 });
             }
 
@@ -874,7 +877,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [Authority, HttpPost]
         public async Task<ActionResult> Write(PostInputDto post, DateTime? timespan, bool schedule = false)
         {
-            post.Content = (await _imagebedClient.ReplaceImgSrc(Regex.Replace(post.Content.Trim(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>"))).Replace("/thumb150/", "/large/"); //提取img标签,提取src属性并重新创建个只包含src属性的img标签
+            post.Content = await _imagebedClient.ReplaceImgSrc(post.Content.Trim().ClearImgAttributes());
             if (!CategoryService.Any(c => c.Id == post.CategoryId && c.Status == Status.Available))
             {
                 return ResultData(null, message: "请选择一个分类");

+ 1 - 41
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -16,13 +16,6 @@
     <DocumentationFile>.\Masuit.MyBlogs.Core.xml</DocumentationFile>
   </PropertyGroup>
 
-  <ItemGroup>
-    <Compile Remove="wwwroot\upload\**" />
-    <Content Remove="wwwroot\upload\**" />
-    <EmbeddedResource Remove="wwwroot\upload\**" />
-    <None Remove="wwwroot\upload\**" />
-  </ItemGroup>
-
   <ItemGroup>
     <Compile Remove="Controllers\TestController.cs" />
   </ItemGroup>
@@ -31,39 +24,6 @@
     <Content Remove="bundleconfig.json" />
   </ItemGroup>
 
-  <ItemGroup>
-    <None Include="bundleconfig.json" />
-    <None Include="Views\Shared\_Layout.cshtml" />
-    <None Include="wwwroot\Assets\highlight\js\highlight.js" />
-    <None Include="wwwroot\ng-views\controllers\analysis.js" />
-    <None Include="wwwroot\ng-views\controllers\analysis.min.js" />
-    <None Include="wwwroot\ng-views\controllers\comment.js" />
-    <None Include="wwwroot\ng-views\controllers\comment.min.js" />
-    <None Include="wwwroot\ng-views\controllers\dashboard.js" />
-    <None Include="wwwroot\ng-views\controllers\dashboard.min.js" />
-    <None Include="wwwroot\ng-views\controllers\donate.js" />
-    <None Include="wwwroot\ng-views\controllers\links.js" />
-    <None Include="wwwroot\ng-views\controllers\links.min.js" />
-    <None Include="wwwroot\ng-views\controllers\loginrecord.js" />
-    <None Include="wwwroot\ng-views\controllers\main.js" />
-    <None Include="wwwroot\ng-views\controllers\main.min.js" />
-    <None Include="wwwroot\ng-views\controllers\menu.js" />
-    <None Include="wwwroot\ng-views\controllers\menu.min.js" />
-    <None Include="wwwroot\ng-views\controllers\misc.js" />
-    <None Include="wwwroot\ng-views\controllers\misc.min.js" />
-    <None Include="wwwroot\ng-views\controllers\msg.js" />
-    <None Include="wwwroot\ng-views\controllers\msg.min.js" />
-    <None Include="wwwroot\ng-views\controllers\notice.js" />
-    <None Include="wwwroot\ng-views\controllers\notice.min.js" />
-    <None Include="wwwroot\ng-views\controllers\post.js" />
-    <None Include="wwwroot\ng-views\controllers\post.min.js" />
-    <None Include="wwwroot\ng-views\controllers\seminar.js" />
-    <None Include="wwwroot\ng-views\controllers\subscribe.js" />
-    <None Include="wwwroot\ng-views\controllers\system.js" />
-    <None Include="wwwroot\ng-views\controllers\system.min.js" />
-  </ItemGroup>
-
-
   <ItemGroup>
     <PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.9.1" />
     <PackageReference Include="Aspose.Words" Version="18.11.0" />
@@ -73,7 +33,7 @@
     <PackageReference Include="CacheManager.Microsoft.Extensions.Caching.Memory" Version="1.2.0" />
     <PackageReference Include="CacheManager.Serialization.Json" Version="1.2.0" />
     <PackageReference Include="CSRedisCore" Version="3.0.60" />
-    <PackageReference Include="EFSecondLevelCache.Core" Version="2.3.0" />
+    <PackageReference Include="EFSecondLevelCache.Core" Version="2.3.1" />
     <PackageReference Include="Hangfire" Version="1.7.3" />
     <PackageReference Include="Hangfire.Autofac" Version="2.3.1" />
     <PackageReference Include="Hangfire.MemoryStorage" Version="1.6.0" />

+ 14 - 0
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.xml

@@ -89,6 +89,20 @@
             <param name="req"></param>
             <returns></returns>
         </member>
+        <member name="M:Masuit.MyBlogs.Core.Common.CommonHelper.ClearImgAttributes(System.String)">
+            <summary>
+            清理html的img标签的除src之外的其他属性
+            </summary>
+            <param name="html"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Masuit.MyBlogs.Core.Common.CommonHelper.ReplaceImgAttribute(System.String)">
+            <summary>
+            将html的img标签的src属性名替换成data-original
+            </summary>
+            <param name="html"></param>
+            <returns></returns>
+        </member>
         <member name="T:Masuit.MyBlogs.Core.Common.DocumentConvert">
             <summary>
             文档转换操作

+ 1 - 1
src/Masuit.MyBlogs.Core/Models/Validation/SubmitCheckAttribute.cs

@@ -55,7 +55,7 @@ namespace Masuit.MyBlogs.Core.Models.Validation
                 ErrorMessage = $"请输入有效的内容!提交的内容不能为空!";
                 return false;
             }
-            string content = (value as string).RemoveHtml().Trim();
+            string content = (value as string).RemoveHtmlTag().Trim();
             if (checkLength)
             {
                 if (string.IsNullOrEmpty(content) || content.Length < 2)

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Misc/Index.cshtml

@@ -53,7 +53,7 @@
 </div>
 <div class="container">
     <article class="content">
-        @Html.Raw(Regex.Replace(Model.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+        @Html.Raw(Model.Content.ReplaceImgAttribute())
     </article>
 </div>
 <script src="~/Assets/UEditor/third-party/SyntaxHighlighter/scripts/shCore.min.js"></script>

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Notice/Details.cshtml

@@ -66,7 +66,7 @@
                 <main>
                     <section>
                         <article class="article" id="article">
-                            @Html.Raw(Regex.Replace(Model.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                            @Html.Raw(Model.Content.ReplaceImgAttribute())
                         </article>
                     </section>
                 </main>

+ 2 - 2
src/Masuit.MyBlogs.Core/Views/Post/CompareVersion.cshtml

@@ -82,7 +82,7 @@
                                     </div>
                                 </header>
                                 <article class="article" id="article">
-                                    @Html.Raw(Regex.Replace(Model[1].Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                                    @Html.Raw(Model[1].Content.ReplaceImgAttribute())
                                 </article>
                             </section>
                         </main>
@@ -140,7 +140,7 @@
                                     </div>
                                 </header>
                                 <article class="article" id="article">
-                                    @Html.Raw(Regex.Replace(Model[2].Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                                    @Html.Raw(Model[2].Content.ReplaceImgAttribute())
                                 </article>
                             </section>
                         </main>

+ 2 - 3
src/Masuit.MyBlogs.Core/Views/Post/Details.cshtml

@@ -4,7 +4,6 @@
 @using Masuit.MyBlogs.Core.Models.Entity
 @using Masuit.MyBlogs.Core.Models.Enum
 @using Masuit.Tools.Core.Net
-@using Masuit.Tools.Win32
 @model Masuit.MyBlogs.Core.Models.Entity.Post
 @{
     ViewBag.Title = Model.Title;
@@ -82,7 +81,7 @@
                             </div>
                         </header>
                         <article class="article" id="article">
-                            @Html.Raw(Regex.Replace(Model.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                            @Html.Raw(Model.Content.ReplaceImgAttribute())
                             @if (!string.IsNullOrEmpty(Model.ProtectContent))
                             {
                                 <div class="row protected">
@@ -115,7 +114,7 @@
                                     else
                                     {
                                         <p class="text-red text-center size20">↓↓↓以下是文章加密部分↓↓↓</p>
-                                        @Html.Raw(Regex.Replace(Model.ProtectContent, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                                        @Html.Raw(Model.ProtectContent.ReplaceImgAttribute())
                                     }
                                 </div>
                             }

+ 2 - 2
src/Masuit.MyBlogs.Core/Views/Post/HistoryVersion.cshtml

@@ -70,7 +70,7 @@
                             </div>
                         </header>
                         <article class="article" id="article">
-                            @Html.Raw(Regex.Replace(Model.Content, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                            @Html.Raw(Model.Content.ReplaceImgAttribute())
                             @if (!string.IsNullOrEmpty(Model.ProtectContent))
                             {
                                 <div class="row protected">
@@ -110,7 +110,7 @@
                                     else
                                     {
                                         <p class="text-red text-center size20">↓↓↓以下是文章加密部分↓↓↓</p>
-                                        @Html.Raw(Regex.Replace(Model.ProtectContent, @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", $"<img data-original=\"$1\" alt='{CommonHelper.SystemSettings["Title"]}' title='{CommonHelper.SystemSettings["Title"]}'/>"))
+                                        @Html.Raw(Model.ProtectContent.ReplaceImgAttribute())
                                     }
                                 </div>
                             }

+ 2 - 20
src/Masuit.MyBlogs.Core/Views/Shared/_ArticleListItem.cshtml

@@ -1,10 +1,6 @@
-@using System.IO
-@using System.Text.RegularExpressions
-@using System.Web
+@using System.Web
 @using Masuit.MyBlogs.Core.Common
-@using Masuit.MyBlogs.Core.Models.Enum
 @using Masuit.Tools.Html
-@using Masuit.Tools.Win32
 @{
     string[] colors = { "success", "info", "primary", "warning", "danger", "default", "primary" };
 }
@@ -28,24 +24,10 @@
             @{
                 //随机取合适大小的图片
                 string imgSrc = Model.Content.MatchRandomImgSrc();
-                MatchCollection imgTags = Model.Content.MatchImgTags();
-                for (var i = 0; i < imgTags.Count; i++)
-                {
-                    string src = Model.Content.MatchRandomImgSrc();
-                    if (File.Exists(AppContext.BaseDirectory + "wwwroot" + src) && !src.StartsWith("http"))
-                    {
-                        var fileInfo = new FileInfo(AppContext.BaseDirectory + "wwwroot" + src);
-                        if (fileInfo.Length > 5000 && fileInfo.Length < 100000)
-                        {
-                            imgSrc = src;
-                            break;
-                        }
-                    }
-                }
                 if (!string.IsNullOrEmpty(imgSrc))
                 {
                     <div class="col-md-3">
-                        <img class="img-thumbnail img-responsive thumb" data-original="@imgSrc.Replace("/large/", "/thumb150/")" alt="@CommonHelper.SystemSettings["Title"]" title="@CommonHelper.SystemSettings["Title"] ">
+                        <img class="img-thumbnail img-responsive thumb" data-original="@imgSrc" alt="@CommonHelper.SystemSettings["Title"]" title="@CommonHelper.SystemSettings["Title"] ">
                     </div>
                 }
             }

+ 2 - 19
src/Masuit.MyBlogs.Core/Views/Shared/_ArticleListItem_Admin.cshtml

@@ -1,9 +1,6 @@
-@using System.IO
-@using System.Text.RegularExpressions
-@using System.Web
+@using System.Web
 @using Masuit.Tools.Html
 @using Masuit.Tools.Systems
-@using Masuit.Tools.Win32
 @{
     string[] colors = { "success", "info", "primary", "warning", "danger", "default", "primary" };
 }
@@ -27,24 +24,10 @@
             @{
                 //随机取合适大小的图片
                 string imgSrc = Model.Content.MatchRandomImgSrc();
-                MatchCollection imgTags = Model.Content.MatchImgTags();
-                for (var i = 0; i < imgTags.Count; i++)
-                {
-                    string src = Model.Content.MatchRandomImgSrc();
-                    if (File.Exists(AppContext.BaseDirectory + "wwwroot" + src) && !src.StartsWith("http"))
-                    {
-                        var fileInfo = new FileInfo(AppContext.BaseDirectory + "wwwroot" + src);
-                        if (fileInfo.Length > 5000 && fileInfo.Length < 100000)
-                        {
-                            imgSrc = src;
-                            break;
-                        }
-                    }
-                }
                 if (!string.IsNullOrEmpty(imgSrc))
                 {
                     <div class="col-sm-3">
-                        <img class="img-thumbnail img-responsive thumb" data-original="@imgSrc.Replace("/large/", "/thumb150/")" alt="@Model.Title">
+                        <img class="img-thumbnail img-responsive thumb" data-original="@imgSrc" alt="@Model.Title">
                     </div>
                 }
             }