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] [Test]
public void Ellipsize_LongStringTruncatedToNearestWord() { public void Ellipsize_LongStringTruncatedToNearestWord() {
const string toEllipsize = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed purus quis purus orci aliquam."; 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] [Test]

View File

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

View File

@@ -26,7 +26,7 @@ namespace Orchard.Utility.Extensions {
} }
public static string Ellipsize(this string text, int characterCount) { 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) { public static string Ellipsize(this string text, int characterCount, string ellipsis, bool wordBoundary = false) {