Fixes #6023 : Ellipsize can spilt an HTML encoded character

This commit is contained in:
Thierry Fleury
2015-11-18 19:33:18 +01:00
parent 500255c3b1
commit ccaa47b200
3 changed files with 5 additions and 6 deletions

View File

@@ -52,7 +52,7 @@ namespace Orchard.Tests.Utility.Extensions {
[Test]
public void Ellipsize_LongStringTruncatedToNearestWord() {
const string toEllipsize = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed purus quis purus orci aliquam.";
Assert.That(toEllipsize.Ellipsize(46), Is.StringMatching("Lorem ipsum dolor sit amet, consectetur …"));
Assert.That(toEllipsize.Ellipsize(46), Is.StringMatching("Lorem ipsum dolor sit amet, consectetur"));
}
[Test]

View File

@@ -175,11 +175,11 @@ namespace Orchard.Mvc.Html {
#region Ellipsize
public static IHtmlString Ellipsize(this HtmlHelper htmlHelper, string text, int characterCount) {
return new HtmlString(htmlHelper.Encode(text).Ellipsize(characterCount));
return new HtmlString(htmlHelper.Encode(text.Ellipsize(characterCount)));
}
public static IHtmlString Ellipsize(this HtmlHelper htmlHelper, string text, int characterCount, string ellipsis) {
return new HtmlString(htmlHelper.Encode(text).Ellipsize(characterCount, ellipsis));
return new HtmlString(htmlHelper.Encode(text.Ellipsize(characterCount, ellipsis)));
}
#endregion
@@ -187,8 +187,7 @@ namespace Orchard.Mvc.Html {
#region Excerpt
public static MvcHtmlString Excerpt(this HtmlHelper html, string markup, int length) {
return MvcHtmlString.Create(markup.RemoveTags().Ellipsize(length));
return MvcHtmlString.Create(html.Encode(HttpUtility.HtmlDecode(markup.RemoveTags()).Ellipsize(length)));
}
#endregion

View File

@@ -26,7 +26,7 @@ namespace Orchard.Utility.Extensions {
}
public static string Ellipsize(this string text, int characterCount) {
return text.Ellipsize(characterCount, " …");
return text.Ellipsize(characterCount, "");
}
public static string Ellipsize(this string text, int characterCount, string ellipsis, bool wordBoundary = false) {