Browse Source

Blogging module: Fix ShortContent generation

resolves https://github.com/abpframework/abp/issues/2865
pull/2869/head
Yunus Emre Kalkan 7 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;
using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using CommonMark; using CommonMark;
using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Localization; 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! public string GetShortContent(string content) //TODO: This should be moved to its own place!
{ {
var openingTag = "<p>";
var closingTag = "</p>";
var html = RenderMarkdownToString(content); var html = RenderMarkdownToString(content);
if (string.IsNullOrWhiteSpace(html)) var plainText = Regex.Replace(html, "/<[^>]*>/g", "");
if (string.IsNullOrWhiteSpace(plainText))
{ {
return ""; 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]; if (firsParag.Length <= MaxShortContentLength)
var paragraphStartIndex = firstHtmlPart.IndexOf(openingTag, StringComparison.Ordinal) + openingTag.Length;
if (firstHtmlPart.Length - paragraphStartIndex <= MaxShortContentLength)
{ {
return firstHtmlPart.Substring(paragraphStartIndex); return firsParag;
} }
return firstHtmlPart.Substring(paragraphStartIndex, MaxShortContentLength) + "..."; return firsParag.Substring(0, MaxShortContentLength) + "...";
} }
public IHtmlContent RenderMarkdownToHtml(string content) public IHtmlContent RenderMarkdownToHtml(string content)

Loading…
Cancel
Save