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 () {