Browse Source

Blogging module: Fix ShortContent generation

resolves https://github.com/abpframework/abp/issues/2865
pull/2869/head
Yunus Emre Kalkan 6 years ago
parent
commit
1f6375eb2f
  1. 25
      modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPage.cs

25
modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPage.cs

@ -1,5 +1,7 @@
using System;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using CommonMark;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Localization;
@ -30,30 +32,27 @@ namespace Volo.Blogging.Pages.Blog
public string GetShortContent(string content) //TODO: This should be moved to its own place!
{
var openingTag = "<p>";
var closingTag = "</p>";
var html = RenderMarkdownToString(content);
if (string.IsNullOrWhiteSpace(html))
var plainText = Regex.Replace(html, "/<[^>]*>/g", "");
if (string.IsNullOrWhiteSpace(plainText))
{
return "";
}
var splittedHtml = html.Split(closingTag);
if (splittedHtml.Length < 1)
var firsParag = plainText.Split(Environment.NewLine).FirstOrDefault(s => !string.IsNullOrWhiteSpace(s));
if (firsParag == null)
{
return "";
return plainText;
}
var firstHtmlPart = splittedHtml[0];
var paragraphStartIndex = firstHtmlPart.IndexOf(openingTag, StringComparison.Ordinal) + openingTag.Length;
if (firstHtmlPart.Length - paragraphStartIndex <= MaxShortContentLength)
if (firsParag.Length <= MaxShortContentLength)
{
return firstHtmlPart.Substring(paragraphStartIndex);
return firsParag;
}
return firstHtmlPart.Substring(paragraphStartIndex, MaxShortContentLength) + "...";
return firsParag.Substring(0, MaxShortContentLength) + "...";
}
public IHtmlContent RenderMarkdownToHtml(string content)

Loading…
Cancel
Save