Browse Source

文章列表页摘要优化

懒得勤快 5 years ago
parent
commit
cde2ad9b10

+ 18 - 0
src/Masuit.MyBlogs.Core/Common/CommonHelper.cs

@@ -279,5 +279,23 @@ namespace Masuit.MyBlogs.Core.Common
 
             return doc.DocumentNode.OuterHtml;
         }
+
+        /// <summary>
+        /// 获取文章摘要
+        /// </summary>
+        /// <param name="html"></param>
+        /// <returns></returns>
+        public static string GetSummary(this string html)
+        {
+            var doc = new HtmlDocument();
+            doc.LoadHtml(html);
+            var summary = doc.DocumentNode.Descendants("p").FirstOrDefault(n => n.InnerText.Length > 10)?.InnerText ?? "没有摘要";
+            if (summary.Length > 150)
+            {
+                return summary.Substring(0, 150) + "...";
+            }
+
+            return summary;
+        }
     }
 }

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

@@ -111,6 +111,13 @@
             <param name="title"></param>
             <returns></returns>
         </member>
+        <member name="M:Masuit.MyBlogs.Core.Common.CommonHelper.GetSummary(System.String)">
+            <summary>
+            获取文章摘要
+            </summary>
+            <param name="html"></param>
+            <returns></returns>
+        </member>
         <member name="T:Masuit.MyBlogs.Core.Common.HangfireHelper">
             <summary>
             HangfireHelper

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

@@ -39,7 +39,7 @@
                     </span>
                 </div>
                 <p>
-                    @Model.Content.RemoveHtmlTag(150) ...
+                    @Model.Content.GetSummary()
                 </p>
             </div>
 

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

@@ -1,4 +1,5 @@
-@using Masuit.Tools.Html
+@using Masuit.MyBlogs.Core.Common
+@using Masuit.Tools.Html
 @using Masuit.Tools.Systems
 @{
     string[] colors = { "success", "info", "primary", "warning", "danger", "default", "primary" };
@@ -40,7 +41,7 @@
                     </span>
                 </div>
                 <p>
-                    @Model.Content.RemoveHtmlTag(150) ...
+                    @Model.Content.GetSummary()
                 </p>
             </div>