From f1bab28732d3610e5489a736e77abddf487754af Mon Sep 17 00:00:00 2001 From: luckyasme <807254037@qq.com> Date: Mon, 30 Jun 2025 14:09:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BB=93=E5=BA=93=E5=88=87=E6=8D=A2=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- app/.vitepress/src/@types/type-doc-menu.ts | 2 + app/.vitepress/src/api/api-common.ts | 15 + app/.vitepress/src/api/api-feedback.ts | 6 +- app/.vitepress/src/api/api-user.ts | 2 +- .../src/assets/style/theme/message.scss | 2 +- app/.vitepress/src/components/AppFooter.vue | 4 +- .../src/components/CookieNotice.vue | 2 +- .../src/components/FloatingButtonDocs.vue | 9 +- .../src/components/GiteeViewSource.vue | 13 +- .../src/components/doc/DocBugDialog.vue | 48 +- app/.vitepress/src/components/doc/DocMenu.vue | 22 +- .../src/components/doc/DocSearch.vue | 4 +- app/.vitepress/src/components/doc/DocType.vue | 62 +- .../src/components/doc/DocTypeMobile.vue | 55 +- .../src/components/doc/DocVersion.vue | 35 +- .../src/components/doc/DocVersionMobile.vue | 47 +- .../components/feedback/FeedbackSlider.vue | 4 +- .../src/components/header/AppHeader.vue | 3 +- .../src/components/header/HeaderLanguage.vue | 22 +- .../src/components/header/HeaderLogin.vue | 4 +- .../src/components/header/HeaderNav.vue | 2 +- .../src/components/header/HeaderNavMoblie.vue | 4 +- .../src/components/header/HeaderTheme.vue | 11 +- .../src/components/header/NavContent.vue | 2 + .../src/components/header/NavLink.vue | 3 - .../src/components/markdown/MarkdownTitle.vue | 2 +- .../src/components/menu/RecursionMenuItem.vue | 17 +- .../src/composables/useClipboard.ts | 15 +- app/.vitepress/src/config/dsl.ts | 4 +- app/.vitepress/src/config/menu.ts | 7 - app/.vitepress/src/config/toc.ts | 7 + app/.vitepress/src/config/version.ts | 268 ++++++-- app/.vitepress/src/layouts/LayoutDoc.vue | 40 +- .../src/shared/analytics/directives.ts | 4 +- app/.vitepress/src/shared/analytics/setup.ts | 3 +- app/.vitepress/src/shared/login.ts | 2 +- app/.vitepress/src/stores/node.ts | 4 +- app/.vitepress/src/utils/common.ts | 40 +- app/.vitepress/src/utils/scroll-to.ts | 6 +- app/.vitepress/src/utils/tree.ts | 8 +- app/.vitepress/src/views/docs/TheDocsNode.vue | 2 +- app/.vitepress/src/views/home/TheHome.vue | 4 +- deploy/nginx/nginx.conf | 3 + deploy/nginx/nginx.portal.conf | 36 +- eslint.config.js | 32 + package.json | 11 +- pnpm-lock.yaml | 645 +++++++++++------- scripts/config/new-version.js | 1 + scripts/gen-toc.js | 102 +-- scripts/merge-upstream.js | 22 +- scripts/merge.js | 89 ++- scripts/pre-build-check.js | 135 ---- scripts/pre-dev.js | 190 +++++- scripts/utils/common.js | 7 + 55 files changed, 1394 insertions(+), 699 deletions(-) create mode 100644 app/.vitepress/src/api/api-common.ts delete mode 100644 app/.vitepress/src/config/menu.ts create mode 100644 app/.vitepress/src/config/toc.ts create mode 100644 eslint.config.js create mode 100644 scripts/config/new-version.js delete mode 100644 scripts/pre-build-check.js create mode 100644 scripts/utils/common.js diff --git a/.gitignore b/.gitignore index 83563d75f..e59aab703 100644 --- a/.gitignore +++ b/.gitignore @@ -119,6 +119,7 @@ dist .DS_Store temp-docs +.cache app/zh/docs/**/* app/en/docs/**/* @@ -128,6 +129,7 @@ app/.vitepress/.cache app/.vitepress/dist app/.vitepress/cache app/.vitepress/public/menu/**/* +app/.vitepress/public/toc/**/* app/.vitepress/public/dsl/**/* -.env.development \ No newline at end of file +.env.development diff --git a/app/.vitepress/src/@types/type-doc-menu.ts b/app/.vitepress/src/@types/type-doc-menu.ts index 6ca938ee8..a33b24f80 100644 --- a/app/.vitepress/src/@types/type-doc-menu.ts +++ b/app/.vitepress/src/@types/type-doc-menu.ts @@ -5,5 +5,7 @@ export interface DocMenuT { description?: string; type: string; isManual?: boolean; + upstream?: string; + path?: string; sections?: Array; } diff --git a/app/.vitepress/src/api/api-common.ts b/app/.vitepress/src/api/api-common.ts new file mode 100644 index 000000000..b8461a60c --- /dev/null +++ b/app/.vitepress/src/api/api-common.ts @@ -0,0 +1,15 @@ +import { request } from '@/shared/axios'; + +/** + * 检测页面是否存在 + * @param {string} path string + * @return {boolean} + */ +export async function isPageExist(path: string) { + try { + await request.head(path, { showError: false }); + return true; + } catch { + return false; + } +} \ No newline at end of file diff --git a/app/.vitepress/src/api/api-feedback.ts b/app/.vitepress/src/api/api-feedback.ts index 674ca0a5c..946b7feaa 100644 --- a/app/.vitepress/src/api/api-feedback.ts +++ b/app/.vitepress/src/api/api-feedback.ts @@ -29,7 +29,7 @@ export function postFeedback(params: FeedBackQueryT): Promise<{ update_at: string; }> { const url = '/api-dsapi/query/nps?community=openeuler'; - return request.post(url, params).then((res: AxiosResponse) => res.data); + return request.post(url, params, { showError: false }).then((res: AxiosResponse) => res.data); } /** @@ -44,7 +44,7 @@ export function postArticleFeedback(params: FeedBackDataT): Promise<{ update_at: string; }> { const url = '/api-dsapi/query/doc/nps/openeuler'; - return request.post(url, params).then((res: AxiosResponse) => res.data); + return request.post(url, params, { showError: false }).then((res: AxiosResponse) => res.data); } /** @@ -55,7 +55,7 @@ export function postArticleFeedback(params: FeedBackDataT): Promise<{ */ export function submitDocsBug(lang: string, params: DocsBugParamsT) { const url = `/api-dsapi/query/add/bugquestionnaire?community=openeuler&lang=${lang}`; - return request.post(url, params).then((res) => { + return request.post(url, params, { showError: false }).then((res) => { return res.data; }); } diff --git a/app/.vitepress/src/api/api-user.ts b/app/.vitepress/src/api/api-user.ts index ca328fc23..7c25fc3c4 100644 --- a/app/.vitepress/src/api/api-user.ts +++ b/app/.vitepress/src/api/api-user.ts @@ -14,5 +14,5 @@ interface UserPermissionResponseT { */ export function queryUserInfo() { const url = '/api-id/oneid/personal/center/user?community=openeuler'; - return request.get(url).then((res) => res.data.data); + return request.get(url, { showError: false }).then((res) => res.data.data); } diff --git a/app/.vitepress/src/assets/style/theme/message.scss b/app/.vitepress/src/assets/style/theme/message.scss index fe6ba2c2c..6d52e02d3 100644 --- a/app/.vitepress/src/assets/style/theme/message.scss +++ b/app/.vitepress/src/assets/style/theme/message.scss @@ -1,5 +1,5 @@ .o-message-list { - z-index: 1008; + z-index: 2147483647 !important; --app-header-height: 64px; --app-footer-height: 300px; diff --git a/app/.vitepress/src/components/AppFooter.vue b/app/.vitepress/src/components/AppFooter.vue index 68e26dceb..4007380a2 100644 --- a/app/.vitepress/src/components/AppFooter.vue +++ b/app/.vitepress/src/components/AppFooter.vue @@ -68,12 +68,12 @@ const baseUrl = import.meta.env.VITE_MAIN_DOMAIN_URL;