Browse Source

Update docs-nav.json to add isLazyExpandable

pull/21689/head
liangshiwei 1 year ago
parent
commit
9362bdd5c6
  1. 173
      docs/en/docs-nav.json
  2. 19
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js
  3. 42
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js

173
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",

19
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 = $(`<ul class="nav nav-list tree"></ul>`);
var textCss = node.path ? "": "tree-toggle";
var uiCss = isRootLazyNode ? "" : "style='display: none;'";
var $ul = $(`<ul class="nav nav-list tree" ${uiCss}></ul>`);
var $li = $(`<li class="${node.hasChildItems ? 'nav-header' : 'last-link'}"></li>`);
$li.append(`<span class="plus-icon"> <i class="fa fa-${node.hasChildItems ? 'chevron-right' : node.path ? 'has-link' : 'no-link'}"></i></span><a href="${normalPath(node.path)}">${node.text}</a>`)
$li.append(`<span class="plus-icon"> <i class="fa fa-${node.hasChildItems ? 'chevron-right' : node.path ? 'has-link' : 'no-link'}"></i></span><a href="${normalPath(node.path)}" class="${textCss}">${node.text}</a>`)
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');

42
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;

Loading…
Cancel
Save