diff --git a/modules/docs/src/Volo.Docs.Web/HtmlConverting/IDocumentToHtmlConverter.cs b/modules/docs/src/Volo.Docs.Web/HtmlConverting/IDocumentToHtmlConverter.cs index 9346fdfb99..efe145cac2 100644 --- a/modules/docs/src/Volo.Docs.Web/HtmlConverting/IDocumentToHtmlConverter.cs +++ b/modules/docs/src/Volo.Docs.Web/HtmlConverting/IDocumentToHtmlConverter.cs @@ -5,6 +5,6 @@ namespace Volo.Docs.HtmlConverting { public interface IDocumentToHtmlConverter { - string Convert(ProjectDto project, DocumentWithDetailsDto document, string version, string languageCode); + string Convert(ProjectDto project, DocumentWithDetailsDto document, string version, string languageCode, string projectShortName = null); } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs b/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs index c01417fdad..7e5f416ab0 100644 --- a/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs +++ b/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs @@ -33,7 +33,7 @@ namespace Volo.Docs.Markdown private const string AnchorLinkRegExp = @"]+href=\""(.*?)\""[^>]*>(.*)?"; public virtual string Convert(ProjectDto project, DocumentWithDetailsDto document, string version, - string languageCode) + string languageCode, string projectShortName = null) { if (document.Content.IsNullOrEmpty()) { @@ -42,7 +42,7 @@ namespace Volo.Docs.Markdown var content = NormalizeLinks( document.Content, - project.ShortName, + _uiOptions.SingleProjectMode.Enable ? projectShortName : projectShortName ?? project.ShortName, version, document.LocalDirectory, languageCode diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index f216b0cc20..68e93c1d61 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -262,7 +262,10 @@ { + { nameof(Model.LanguageCode), Model.LanguageCode }, + { nameof(Model.Version), Model.Version }, + { nameof(Model.ProjectName), Model.ProjectName }})" placeholder="@L["FullSearch"].Value" aria-label="Filter"> diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 455899d479..2c66e5cecf 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -549,7 +549,7 @@ namespace Volo.Docs.Pages.Documents.Project } var converter = _documentToHtmlConverterFactory.Create(Document.Format ?? Project.Format); - var content = converter.Convert(Project, Document, GetSpecificVersionOrLatest(), LanguageCode); + var content = converter.Convert(Project, Document, GetSpecificVersionOrLatest(), LanguageCode, ProjectName); content = HtmlNormalizer.ReplaceImageSources( content, diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml index 7056af34cb..051dc6070f 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml @@ -29,7 +29,7 @@
-
+ { { nameof(Model.LanguageCode), Model.LanguageCode }, { nameof(Model.Version), Model.Version }, { nameof(Model.ProjectName), Model.ProjectName } })" class="mt-4">

@L["FullSearch"]

@@ -68,7 +68,12 @@ } }
- + { + { nameof(Volo.Docs.Pages.Documents.Project.IndexModel.LanguageCode), Model.LanguageCode }, + { nameof(Volo.Docs.Pages.Documents.Project.IndexModel.Version), Model.Version }, + { nameof(Volo.Docs.Pages.Documents.Project.IndexModel.ProjectName), Model.ProjectName }, + { nameof(Volo.Docs.Pages.Documents.Project.IndexModel.DocumentName), RemoveFileExtensionFromPath(docs.Name) } + })"> @RemoveFileExtensionFromPath(docs.Name)
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs index 64df5e8dc2..943c7cd28c 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Web; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination; using Volo.Docs.Documents; using Volo.Docs.GitHub.Documents.Version; @@ -35,14 +36,16 @@ namespace Volo.Docs.Pages.Documents private readonly IProjectAppService _projectAppService; private readonly IDocumentAppService _documentAppService; private readonly HtmlEncoder _encoder; + private readonly DocsUiOptions _uiOptions; public SearchModel(IProjectAppService projectAppService, IDocumentAppService documentAppService, - HtmlEncoder encoder) + HtmlEncoder encoder, IOptions uiOptions) { _projectAppService = projectAppService; _documentAppService = documentAppService; _encoder = encoder; + _uiOptions = uiOptions.Value; } public List SearchOutputs { get; set; } = new List(); @@ -61,7 +64,7 @@ namespace Volo.Docs.Pages.Documents KeyWord = keyword; - Project = await _projectAppService.GetAsync(ProjectName); + await SetProjectAsync(); var output = await _projectAppService.GetVersionsAsync(Project.ShortName); @@ -117,5 +120,27 @@ namespace Volo.Docs.Pages.Documents return Page(); } + + private async Task SetProjectAsync() + { + if (!_uiOptions.SingleProjectMode.Enable) + { + Project = await _projectAppService.GetAsync(ProjectName); + return; + } + + var singleProjectName = ProjectName ?? _uiOptions.SingleProjectMode.ProjectName; + if (!singleProjectName.IsNullOrWhiteSpace()) + { + Project = await _projectAppService.GetAsync(singleProjectName); + return; + } + + var listResult = await _projectAppService.GetListAsync(); + if (listResult.Items.Count == 1) + { + Project = listResult.Items[0]; + } + } } }