Refactor getting description field

pull/3488/head
Alper Ebicoglu 6 years ago
parent e25b844aca
commit d6a0caf16f

@ -69,6 +69,7 @@ namespace Volo.Docs.Pages.Documents.Project
public bool FullSearchEnabled { get; set; } public bool FullSearchEnabled { get; set; }
private const int MaxDescriptionMetaTagLength = 200;
private readonly IDocumentAppService _documentAppService; private readonly IDocumentAppService _documentAppService;
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory; private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
private readonly IProjectAppService _projectAppService; private readonly IProjectAppService _projectAppService;
@ -596,14 +597,19 @@ namespace Volo.Docs.Pages.Documents.Project
public string GetDescription() public string GetDescription()
{ {
var startIndex = Document.Content.IndexOf("<p>", StringComparison.Ordinal); var firstParagraph = new Regex(@"<p>(.*?)</p>");
var lastIndex = Document.Content.IndexOf("</p>", StringComparison.Ordinal); var match = firstParagraph.Match(Document.Content);
var description = Document.Content.Substring(startIndex,lastIndex); if (!match.Success)
{
return null;
}
var description = HttpUtility.HtmlDecode(match.Value);
Regex rx = new Regex("<[^>]*>"); var htmlTagReplacer = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);
description = rx.Replace(description, ""); description = htmlTagReplacer.Replace(description, m => string.Empty);
return description.Truncate(200); return description.Truncate(MaxDescriptionMetaTagLength);
} }
} }
} }

Loading…
Cancel
Save