From 22b98065f072f6fc2a7a2eb2e7c75b108bc038a0 Mon Sep 17 00:00:00 2001 From: luooooob Date: Tue, 17 Oct 2023 16:32:24 +0800 Subject: [PATCH] Fix api sidebar --- docs/.vitepress/config.mjs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 718a357a1..af1e1768e 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -28,10 +28,19 @@ function docsToItems(dirnames) { const sidebarItemsDocs = docsToItems(['docs']) function tocToItems(arr) { - if (arr.length > 1 && !arr[0].href) { - return tocToItems([{ ...arr[0], items: arr.slice(1) }]) - } - return arr.map(obj => { + const [head, tail] = arr.reduce(([head, tail], x) => { + if (!x.href) { + return [[...head, tail], x] + } + if (tail.name) { + return [head, { ...tail, items: [...(tail.items || []), x] }] + } + return [[...head, x], {}] + }, [[], {}]) + + const foldArr = [...head, tail] + + return foldArr.map(obj => { let item = { text: obj.name, } @@ -56,6 +65,8 @@ try { const sidebarItemsApi = tocToItems(apiObj) +console.log(JSON.stringify(sidebarItemsApi)) + function findFirst(items) { if (items.length > 0) { if (items[0].link) {