|
|
|
@ -2,7 +2,9 @@ using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Web;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
@ -64,9 +66,10 @@ namespace Volo.Docs.Pages.Documents.Project
|
|
|
|
|
public DocumentParametersDto DocumentPreferences { get; set; }
|
|
|
|
|
|
|
|
|
|
public DocumentRenderParameters UserPreferences { get; set; } = new DocumentRenderParameters();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool FullSearchEnabled { get; set; }
|
|
|
|
|
|
|
|
|
|
private const int MaxDescriptionMetaTagLength = 200;
|
|
|
|
|
private readonly IDocumentAppService _documentAppService;
|
|
|
|
|
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
|
|
|
|
|
private readonly IProjectAppService _projectAppService;
|
|
|
|
@ -591,5 +594,22 @@ namespace Volo.Docs.Pages.Documents.Project
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GetDescription()
|
|
|
|
|
{
|
|
|
|
|
var firstParagraph = new Regex(@"<p>(.*?)</p>");
|
|
|
|
|
var match = firstParagraph.Match(Document.Content);
|
|
|
|
|
if (!match.Success)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var description = HttpUtility.HtmlDecode(match.Value);
|
|
|
|
|
|
|
|
|
|
var htmlTagReplacer = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);
|
|
|
|
|
description = htmlTagReplacer.Replace(description, m => string.Empty);
|
|
|
|
|
|
|
|
|
|
return description.Truncate(MaxDescriptionMetaTagLength);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|