diff --git a/src/Orchard/Utility/Extensions/StringExtensions.cs b/src/Orchard/Utility/Extensions/StringExtensions.cs index 826d34ede..ead033eff 100644 --- a/src/Orchard/Utility/Extensions/StringExtensions.cs +++ b/src/Orchard/Utility/Extensions/StringExtensions.cs @@ -20,14 +20,20 @@ namespace Orchard.Utility.Extensions { return text.Ellipsize(characterCount, " …"); } - public static string Ellipsize(this string text, int characterCount, string ellipsis) { + public static string Ellipsize(this string text, int characterCount, string ellipsis, bool wordBoundary = false) { if (string.IsNullOrWhiteSpace(text)) return ""; if (characterCount < 0 || text.Length <= characterCount) return text; - return Regex.Replace(text.Substring(0, characterCount + 1), @"\s+\S*$", "") + ellipsis; + var trimmed = Regex.Replace(text.Substring(0, characterCount + 1), @"\s+\S*$", "") ; + + if(wordBoundary) { + trimmed = Regex.Replace(trimmed + ".", @"\W*\w*$", ""); + } + + return trimmed + ellipsis; } public static string HtmlClassify(this string text) {