From 9362bdd5c63ea1bb702edeaa71ed254228ba7632 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 20 Dec 2024 11:40:53 +0800 Subject: [PATCH] Update docs-nav.json to add isLazyExpandable --- docs/en/docs-nav.json | 173 +++++++++++++++++- .../Pages/Documents/Project/index.js | 19 +- .../Pages/Documents/Shared/Scripts/vs.js | 42 +++-- 3 files changed, 208 insertions(+), 26 deletions(-) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index d2a928561d..5f6ca79b55 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -53,6 +53,8 @@ }, { "text": "TODO Application", + "isLazyExpandable": true, + "path": "tutorials/todo", "items": [ { "text": "Overview", @@ -153,6 +155,8 @@ }, { "text": "Modular Monolith Application", + "isLazyExpandable": true, + "path": "tutorials/modular-crm/index.md", "items": [ { "text": "Overview", @@ -1823,7 +1827,170 @@ }, { "text": "Microservice Solution", - "path": "solution-templates/microservice" + "isLazyExpandable": true, + "path": "solution-templates/microservice", + "items":[ + { + "text": "Overview", + "path": "solution-templates/microservice" + }, + { + "text": "Solution Structure", + "path": "solution-templates/microservice/solution-structure.md" + }, + { + "text": "Main Components", + "items": [ + { + "text": "Overview", + "path": "solution-templates/microservice/main-components" + }, + { + "text": "Microservices", + "path": "solution-templates/microservice/microservices.md" + }, + { + "text": "API Gateways", + "path": "solution-templates/microservice/api-gateways.md" + }, + { + "text": "Web Applications", + "path": "solution-templates/microservice/web-applications.md" + }, + { + "text": "Mobile Applications", + "path": "solution-templates/microservice/mobile-applications.md" + } + ] + }, + { + "text": "Built-In Features", + "items": [ + { + "text": "Overview", + "path": "solution-templates/microservice/built-in-features" + }, + { + "text": "Authentication", + "path": "solution-templates/microservice/authentication.md" + }, + { + "text": "Database configurations", + "path": "solution-templates/microservice/database-configurations.md" + }, + { + "text": "Logging (with Serilog and Elasticsearch)", + "path": "solution-templates/microservice/logging.md" + }, + { + "text": "Monitoring (with Prometheus and Grafana)", + "path": "solution-templates/microservice/monitoring.md" + }, + { + "text": "Swagger integration", + "path": "solution-templates/microservice/swagger.md" + }, + { + "text": "Permission management", + "path": "solution-templates/microservice/permission-management.md" + }, + { + "text": "Feature management", + "path": "solution-templates/microservice/feature-management.md" + }, + { + "text": "Localization system", + "path": "solution-templates/microservice/localization-system.md" + }, + { + "text": "Background Jobs", + "path": "solution-templates/microservice/background-jobs.md" + }, + { + "text": "Background Workers", + "path": "solution-templates/microservice/background-workers.md" + }, + { + "text": "Distributed Locking", + "path": "solution-templates/microservice/distributed-locking.md" + }, + { + "text": "Distributed Cache", + "path": "solution-templates/microservice/distributed-cache.md" + }, + { + "text": "Multi-Tenancy", + "path": "solution-templates/microservice/multi-tenancy.md" + }, + { + "text": "BLOB Storing", + "path": "solution-templates/microservice/blob-storing.md" + }, + { + "text": "CORS configuration", + "path": "solution-templates/microservice/cors-configuration.md" + } + ] + }, + { + "text": "Communication", + "items":[ + { + "text": "Overview", + "path": "solution-templates/microservice/communication" + }, + { + "text": "HTTP API Calls", + "path": "solution-templates/microservice/communication/http-api-calls.md" + }, + { + "text": "gRPC Calls", + "path": "solution-templates/microservice/communication/grpc-calls.md" + }, + { + "text": "Distributed Events", + "path": "solution-templates/microservice/communication/distributed-events.md" + } + ] + }, + { + "text": "Helm Charts and Kubernetes", + "path": "solution-templates/microservice/helm-charts-and-kubernetes.md" + }, + { + "text": "Guides", + "items": [ + { + "text": "Overview", + "path": "solution-templates/microservice/guides" + }, + { + "text": "Adding new microservices", + "path": "solution-templates/microservice/guides/adding-new-microservices.md" + }, + { + "text": "Adding new applications", + "path": "solution-templates/microservice/guides/adding-new-applications.md" + }, + { + "text": "Adding new API gateways", + "path": "solution-templates/microservice/guides/adding-new-api-gateways.md" + }, + { + "text": "Mono-repo vs multiple repository approaches", + "path": "solution-templates/microservice/guides/mono-repo-vs-multiple-repository-approaches.md" + }, + { + "text": "Authoring unit and integration tests", + "path": "solution-templates/microservice/guides/authoring-unit-and-integration-tests.md" + }, + { + "text": "How to use with ABP Suite", + "path": "solution-templates/microservice/guides/how-to-use-with-abp-suite.md" + } + ] + } + ] }, { "text": "Application Module", @@ -1911,6 +2078,8 @@ }, { "text": "IdentityServer", + "isLazyExpandable": true, + "path": "modules/identity-server", "items": [ { "text": "Overview", @@ -1933,6 +2102,8 @@ }, { "text": "OpenIddict", + "isLazyExpandable": true, + "path": "modules/openiddict", "items": [ { "text": "Overview", 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 4d8e036a71..22993a0c4f 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 @@ -21,27 +21,30 @@ var doc = doc || {}; } return null; }, - renderNodeAsHtml : function($lazyLiElement, node){ + renderNodeAsHtml : function($lazyLiElement, node, isRootLazyNode){ if(node.isEmpty){ return; } - - var $ul = $(``); + + var textCss = node.path ? "": "tree-toggle"; + var uiCss = isRootLazyNode ? "" : "style='display: none;'"; + var $ul = $(``); var $li = $(`
  • `); - $li.append(` ${node.text}`) + $li.append(` ${node.text}`) if(node.isLazyExpandable){ $li.addClass("lazy-expand"); }else if(node.hasChildItems){ node.items.forEach(function(item){ - doc.lazyExpandableNavigation.renderNodeAsHtml($li, item); + doc.lazyExpandableNavigation.renderNodeAsHtml($li, item, false); }); } $ul.append($li); $lazyLiElement.append($ul) - + + window.Toc.helpers.initNavEvent(); function normalPath(path){ var pathWithoutFileExtension = removeFileExtensionFromPath(path); @@ -94,7 +97,7 @@ var doc = doc || {}; if($li.has("ul").length === 0){ var node = doc.lazyExpandableNavigation.findNode($li.find("a").text(), doc.project.navigation); node.items.forEach(item => { - doc.lazyExpandableNavigation.renderNodeAsHtml($li, item); + doc.lazyExpandableNavigation.renderNodeAsHtml($li, item, true); }) } @@ -404,7 +407,7 @@ var doc = doc || {}; var node = doc.lazyExpandableNavigation.findNode($this.find("a").text(), doc.project.navigation); node.items.forEach(item => { - doc.lazyExpandableNavigation.renderNodeAsHtml($this, item); + doc.lazyExpandableNavigation.renderNodeAsHtml($this, item, true); }) $("li .lazy-expand").off('click'); diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js index 74767bf56b..5208ac99c0 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js @@ -1,23 +1,7 @@ (function ($) { $(function () { - $('li:not(.last-link) a.tree-toggle').click(function () { - $(this).parent().children('ul.tree').toggle(100); - $(this).closest('li').toggleClass('selected-tree'); - }); - - $('li:not(.last-link) span.plus-icon i.fa-chevron-right').click( - function () { - var $element = $(this).parent(); - var $filter = $('.docs-version #filter'); - if ($filter && $filter.val() != ''){ - return; - } - - $element.parent().children('ul.tree').toggle(100); - $element.closest('li').toggleClass('selected-tree'); - } - ); + window.Toc.helpers.initNavEvent(); var scrollTopBtn = $('.scroll-top-btn'); var enoughHeight = $('.docs-sidebar-wrapper > .docs-top').height(); @@ -159,6 +143,30 @@ $li.append($a); return $li; }; + + window.Toc.helpers.initNavEvent = function () { + $('li:not(.last-link) a.tree-toggle').off('click'); + $('li:not(.last-link) span.plus-icon i.fa-chevron-right').off('click'); + + $('li:not(.last-link) a.tree-toggle').click(function () { + $(this).parent().children('ul.tree').toggle(100); + $(this).closest('li').toggleClass('selected-tree'); + }); + + $('li:not(.last-link) span.plus-icon i.fa-chevron-right').click( + function () { + var $element = $(this).parent(); + var $filter = $('.docs-version #filter'); + + if ($filter && $filter.val() != ''){ + return; + } + + $element.parent().children('ul.tree').toggle(100); + $element.closest('li').toggleClass('selected-tree'); + } + ); + } function docsCriteria() { var docsContentWidth = $('.docs-content').width() - 74;