diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 8ca147a3dbd..85d2546b58d 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -487,7 +487,8 @@ }, { "text": "Exception Handling", - "path": "framework/fundamentals/exception-handling.md" + "path": "framework/fundamentals/exception-handling.md", + "keywords": ["Error"] }, { "text": "Localization", diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs index f19b9f41df9..015f7118506 100644 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs @@ -21,6 +21,9 @@ public class NavigationNode [JsonPropertyName("isIndex")] public bool IsIndex { get; set; } + + [JsonPropertyName("keywords")] + public string[] Keywords { get; set; } public bool IsLeaf => !HasChildItems; diff --git a/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs b/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs index e6c75d01618..3aa9b85777d 100644 --- a/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs +++ b/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.AspNetCore.Razor.TagHelpers; @@ -23,7 +24,7 @@ public class TreeTagHelper : TagHelper private const string LiItemTemplateWithLink = @"
  • {2}{3}
  • "; - private const string ListItemAnchor = @"{2}"; + private const string ListItemAnchor = @"{3}"; private const string ListItemSpan = @"{1}"; @@ -155,7 +156,8 @@ private string GetLeafNode(NavigationNode node, string content) sb.Clear(); - listInnerItem = string.Format(ListItemAnchor, NormalizePath(node.Path), textCss, + var additionalAttributes = node.Keywords.IsNullOrEmpty() ? "" : "data-keywords=\"" + node.Keywords.JoinAsString(",") + "\""; + listInnerItem = string.Format(ListItemAnchor, NormalizePath(node.Path), additionalAttributes ,textCss, node.Text.IsNullOrEmpty() ? "?" : sb.Append(node.Text).Append(badgeStringBuilder.ToString()).ToString()); diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js index 6636787f339..23eca169b5e 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js @@ -29,7 +29,8 @@ var doc = doc || {}; var $ul = $(``); var $li = $(`
  • `); - $li.append(` ${node.text}`) + var dataKeywords = node.keywords ? `data-keywords="${node.keywords}"` : ""; + $li.append(` ${node.text}`) if(node.isLazyExpandable){ $li.addClass("lazy-expand"); @@ -111,12 +112,17 @@ var doc = doc || {}; var filteredItems = $navigation .find('li > a') .filter(function () { - return ( - $(this) - .text() - .toUpperCase() - .indexOf(filterText.toUpperCase()) > -1 - ); + var keywords = ($(this).data('keywords') || "").split(","); + var text = $(this).text(); + + if(text.toUpperCase().indexOf(filterText.toUpperCase()) > -1) + { + return true; + } + + return keywords.some(function(keyword){ + return keyword.toUpperCase().indexOf(filterText.toUpperCase()) > -1; + }); }); filteredItems.each(function () {