diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
index 1fe4639d25..0f0fd43fa0 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
@@ -39,7 +39,10 @@
@pageTitle
-
+ @if (ViewBag.Description!=null)
+ {
+
+ }
@await Component.InvokeAsync(typeof(WidgetStylesViewComponent))
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
index 6fcf402d70..b7db40f1fe 100644
--- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
+++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
@@ -19,6 +19,7 @@
ViewBag.FluidLayout = true;
Layout = ThemeManager.CurrentTheme.GetEmptyLayout();
PageLayout.Content.Title = Model.DocumentName?.Replace("-", " ");
+ ViewBag.Description = Model.GetDescription();
}
@section styles {
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
index b5bfbf0a8c..b3eceffdef 100644
--- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
+++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
@@ -2,7 +2,9 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
+using System.Text.RegularExpressions;
using System.Threading.Tasks;
+using System.Web;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.Extensions.Logging;
@@ -64,9 +66,10 @@ namespace Volo.Docs.Pages.Documents.Project
public DocumentParametersDto DocumentPreferences { get; set; }
public DocumentRenderParameters UserPreferences { get; set; } = new DocumentRenderParameters();
-
+
public bool FullSearchEnabled { get; set; }
+ private const int MaxDescriptionMetaTagLength = 200;
private readonly IDocumentAppService _documentAppService;
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
private readonly IProjectAppService _projectAppService;
@@ -591,5 +594,22 @@ namespace Volo.Docs.Pages.Documents.Project
}
}
}
+
+ public string GetDescription()
+ {
+ var firstParagraph = new Regex(@"(.*?)
");
+ var match = firstParagraph.Match(Document.Content);
+ if (!match.Success)
+ {
+ return null;
+ }
+
+ var description = HttpUtility.HtmlDecode(match.Value);
+
+ var htmlTagReplacer = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);
+ description = htmlTagReplacer.Replace(description, m => string.Empty);
+
+ return description.Truncate(MaxDescriptionMetaTagLength);
+ }
}
}