From 914f5f8abd00ba05e2644e6bad7bf87f2758c065 Mon Sep 17 00:00:00 2001 From: luckyasme <807254037@qq.com> Date: Thu, 22 May 2025 10:28:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E9=A6=96=E9=A1=B5=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=BB=8E=E9=85=8D=E7=BD=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 +- app/.env.development | 0 app/.vitepress/src/@types/type-home.ts | 38 ++ app/.vitepress/src/components/doc/DocType.vue | 98 ++++-- .../src/components/doc/DocTypeMobile.vue | 91 +++-- .../src/components/doc/DocVersion.vue | 4 + app/.vitepress/src/config/dsl.ts | 10 + app/.vitepress/src/config/home.ts | 329 ------------------ app/.vitepress/src/layouts/LayoutDoc.vue | 4 +- app/.vitepress/src/utils/common.ts | 10 + app/.vitepress/src/views/home/TheHome.vue | 265 +++----------- .../views/home/components/HomeBannerCard.vue | 96 +++++ .../views/home/components/HomeSectionCard.vue | 106 ++++++ scripts/merge.js | 15 +- 14 files changed, 450 insertions(+), 625 deletions(-) delete mode 100644 app/.env.development create mode 100644 app/.vitepress/src/@types/type-home.ts create mode 100644 app/.vitepress/src/config/dsl.ts delete mode 100644 app/.vitepress/src/config/home.ts create mode 100644 app/.vitepress/src/views/home/components/HomeBannerCard.vue create mode 100644 app/.vitepress/src/views/home/components/HomeSectionCard.vue diff --git a/.gitignore b/.gitignore index e5434d923..b4bb14b83 100644 --- a/.gitignore +++ b/.gitignore @@ -120,11 +120,12 @@ dist temp-docs +app/zh/docs/**/* +app/en/docs/**/* + app/.vitepress/.temp app/.vitepress/.cache app/.vitepress/dist app/.vitepress/cache -app/.vitepress/public/menu/menu.json -app/.vitepress/public/menu/menu-en.json -app/zh/docs/**/* -app/en/docs/**/* \ No newline at end of file +app/.vitepress/public/menu/**/* +app/.vitepress/public/dsl/**/* diff --git a/app/.env.development b/app/.env.development deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/.vitepress/src/@types/type-home.ts b/app/.vitepress/src/@types/type-home.ts new file mode 100644 index 000000000..d3f762a17 --- /dev/null +++ b/app/.vitepress/src/@types/type-home.ts @@ -0,0 +1,38 @@ +export interface HomeBannerItemT { + title: string; + desc: string; + href: string; + bg_light: string; + bg_dark: string; + bg_mb_light: string; + bg_mb_dark: string; + dropdown?: string; +} + +export interface HomeRecommendT { + title: string; + columns: number; + columns_mb: number; + items: HomeBannerItemT[]; +} + +export interface HomeSectionItemT { + title: string; + desc: string; + href: string; + icon?: string; + bg?: string; +} + +export interface HomeSectionT { + title: string; + columns: number; + columns_mb: number; + items: HomeSectionItemT[]; +} + +export interface HomeConfig { + hots: string[]; + recommend: HomeRecommendT; + sections: HomeSectionT[]; +} diff --git a/app/.vitepress/src/components/doc/DocType.vue b/app/.vitepress/src/components/doc/DocType.vue index a34e81be7..7a0a16472 100644 --- a/app/.vitepress/src/components/doc/DocType.vue +++ b/app/.vitepress/src/components/doc/DocType.vue @@ -1,20 +1,34 @@ - -
{{ t('home.businessScenario') }}
-
- {{ item.title[locale] }} -
- - -
{{ t('home.tool') }}
-
- {{ item.title[locale] }} -
+ + + +
diff --git a/app/.vitepress/src/components/doc/DocVersion.vue b/app/.vitepress/src/components/doc/DocVersion.vue index 2a7a108f4..c9f01df5e 100644 --- a/app/.vitepress/src/components/doc/DocVersion.vue +++ b/app/.vitepress/src/components/doc/DocVersion.vue @@ -72,6 +72,10 @@ const changeVersion = (item: { href?: string }) => { .version-scroller { max-height: 200px; + + :deep(.o-scrollbar-y) { + --scrollbar-y-right: -4px; + } } .version-dropdown-active { diff --git a/app/.vitepress/src/config/dsl.ts b/app/.vitepress/src/config/dsl.ts new file mode 100644 index 000000000..cd262b6ec --- /dev/null +++ b/app/.vitepress/src/config/dsl.ts @@ -0,0 +1,10 @@ +// @ts-ignore +import HOME_CONFIG_RAW from '/dsl/zh/home.json?url&raw'; +// @ts-ignore +import HOME_CONFIG_RAW_EN from '/dsl/en/home.json?url&raw'; + +import type { HomeConfig } from '@/@types/type-home'; + +// 首页相关配置 +export const HOME_CONFIG = JSON.parse(HOME_CONFIG_RAW) as HomeConfig; +export const HOME_CONFIG_EN = JSON.parse(HOME_CONFIG_RAW_EN) as HomeConfig; diff --git a/app/.vitepress/src/config/home.ts b/app/.vitepress/src/config/home.ts deleted file mode 100644 index b2469dc92..000000000 --- a/app/.vitepress/src/config/home.ts +++ /dev/null @@ -1,329 +0,0 @@ -import BgStarted from '@/assets/category/home/started-bg.png'; -import BgStartedMo from '@/assets/category/home/started-mo-bg.png'; -import BgInstallGuide from '@/assets/category/home/install-guide-bg.png'; -import BgInstallGuideMo from '@/assets/category/home/started-mo-bg.png'; -import BgX2 from '@/assets/category/home/x2-bg.png'; -import BgX2Mo from '@/assets/category/home/x2-mo-bg.png'; -import BgQa from '@/assets/category/home/qa-bg.png'; -import BgQaMo from '@/assets/category/home/qa-mo-bg.png'; - -import BgStartedDark from '@/assets/category/home/started-bg-dark.png'; -import BgStartedMoDark from '@/assets/category/home/started-mo-bg-dark.png'; -import BgInstallGuideDark from '@/assets/category/home/install-guide-bg-dark.png'; -import BgInstallGuideMoDark from '@/assets/category/home/install-mo-bg-dark.png'; -import BgX2Dark from '@/assets/category/home/x2-bg-dark.png'; -import BgX2MoDark from '@/assets/category/home/x2-mo-bg-dark.png'; -import BgQaDark from '@/assets/category/home/qa-bg-dark.png'; -import BgQaMoDark from '@/assets/category/home/qa-mo-bg-dark.png'; - -import IconServer from '~icons/home/server.svg'; -import BgServer from '@/assets/category/home/server-bg.png'; -import IconVirtualization from '~icons/home/virtualization.svg'; -import BgVirtualization from '@/assets/category/home/virtualization-bg.png'; -import IconCloud from '~icons/home/cloud.svg'; -import BgCloud from '@/assets/category/home/cloud-bg.png'; -import IconEdgeComputing from '~icons/home/edge-computing.svg'; -import BgEdgeComputing from '@/assets/category/home/edge-computing-bg.png'; -import IconEmbedded from '~icons/home/embedded.svg'; -import BgEmbedded from '@/assets/category/home/embedded-bg.png'; -import IconDevStation from '~icons/home/dev-station.svg'; -import BgDevStation from '@/assets/category/home/dev-station-bg.svg'; - -// 热门搜索 -export const hotSearchList = { - zh: ['安装指南', '管理员指南', 'x2openEuler迁移专区', '应用开发指南', 'UKUI用户指南'], - en: ['Installation guide', 'Administrator guide', 'x2openEuler migration', 'Application development guide', 'UKUI user guide'], -}; - -// 卡片 -export const cardList = [ - { - background: { - light: BgStarted, - dark: BgStartedDark, - }, - backgroundMo: { - light: BgStartedMo, - dark: BgStartedMoDark, - }, - title: { - zh: '新手入门', - en: 'Quick Start', - }, - desc: { - zh: '10分钟玩转社区,快速构建与成长', - en: 'Learn the community essentials in 10 minutes, build and grow quickly.', - }, - href: { - zh: '/zh/docs/25.03/server/quickstart/quickstart/quick-start.html', - en: '/en/docs/25.03/server/quickstart/quickstart/quick-start.html', - }, - }, - { - background: { - light: BgInstallGuide, - dark: BgInstallGuideDark, - }, - backgroundMo: { - light: BgInstallGuideMo, - dark: BgInstallGuideMoDark, - }, - title: { - zh: '安装指南', - en: 'Installation Guide', - }, - desc: { - zh: '安装 openEuler 操作系统', - en: 'Step-by-step instructions for installing openEuler.', - }, - href: { - zh: '/zh/docs/25.03/server/installation_upgrade/installation/installation-preparations.html', - en: '/en/docs/25.03/server/installation_upgrade/installation/installation-preparations.html', - }, - }, - { - background: { - light: BgQa, - dark: BgQaDark, - }, - backgroundMo: { - light: BgQaMo, - dark: BgQaMoDark, - }, - title: { - zh: '常见问题', - en: 'FAQ', - }, - desc: { - zh: '常见问题与解决方法', - en: 'Solutions to common issues and troubleshooting tips.', - }, - href: { - zh: '/zh/docs/common/faq/general/general_faq.html', - en: '', - }, - }, - { - background: { - light: BgX2, - dark: BgX2Dark, - }, - backgroundMo: { - light: BgX2Mo, - dark: BgX2MoDark, - }, - title: { - zh: '文档开发指南', - en: 'Documentation Guide', - }, - desc: { - zh: '参与文档开发的方式', - en: 'Explore ways to participate in document development.', - }, - href: { - zh: '/zh/docs/common/contribute/directory_structure_introductory.html', - en: '', - }, - }, -]; - -// 业务场景 -export const businessScenarioList = [ - { - icon: IconServer, - background: BgServer, - title: { - zh: '服务器', - en: 'Server', - }, - desc: { - zh: '提供服务器场景的安装升级、管理运维、性能调优、应用开发等操作指南', - en: 'Explore guides for server installation, upgrades, management, performance tuning, and application development.', - }, - href: { - zh: '/zh/docs/25.03/server/index.html', - en: '/en/docs/25.03/server/index.html', - }, - }, - { - icon: IconVirtualization, - background: BgVirtualization, - title: { - zh: '虚拟化', - en: 'Virtualization', - }, - desc: { - zh: '帮助用户了解、安装和使用虚拟化', - en: 'Learn, install, and use virtualization technologies.', - }, - href: { - zh: '/zh/docs/25.03/virtualization/index.html', - en: '/en/docs/25.03/virtualization/index.html', - }, - }, - { - icon: IconCloud, - background: BgCloud, - title: { - zh: '云原生', - en: 'Cloud', - }, - desc: { - zh: '帮助用户安装和使用容器,部署集群等', - en: 'Deploy containers and clusters with the comprehensive guides.', - }, - href: { - zh: '/zh/docs/25.03/cloud/index.html', - en: '/en/docs/25.03/cloud/index.html', - }, - }, - { - icon: IconEdgeComputing, - background: BgEdgeComputing, - title: { - zh: '边缘计算', - en: 'Edge', - }, - desc: { - zh: '提供 KubeEdge、K3S 的安装和使用介绍', - en: 'Get started with KubeEdge and K3S installation and usage.', - }, - href: { - zh: '/zh/docs/25.03/edge_computing/index.html', - en: '/en/docs/25.03/edge_computing/index.html', - }, - }, - { - icon: IconEmbedded, - background: BgEmbedded, - title: { - zh: '嵌入式', - en: 'Embedded', - }, - desc: { - zh: '提供嵌入式场景的镜像构建、应用开发、系统管理等操作指南', - en: 'Build images, develop applications, and manage embedded systems.', - }, - href: { - zh: '/zh/docs/25.03/embedded/index.html', - en: '/en/docs/25.03/embedded/index.html', - }, - }, - { - icon: IconDevStation, - background: BgDevStation, - title: { - zh: 'DevStation', - en: 'DevStation', - }, - desc: { - zh: '帮助⽤户了解 openEuler 社区⼀站式开发者⼯作站 DevStation', - en: 'Learn about openEuler DevStation, a comprehensive developer workstation designed to streamline your workflow.', - }, - href: { - zh: '/zh/docs/25.03/devstation/index.html', - en: '', - }, - }, -]; - -export const toolList = [ - { - title: { - zh: '社区工具', - en: 'Community Tools', - }, - desc: { - zh: '提供镜像构建、编译、性能优化、迁移、虚拟化、epkg 软件包工具使用指南', - en: 'Discover guides for image building, compilation, performance optimization, migration, virtualization, and epkg package manager.', - }, - href: { - zh: '/zh/docs/25.03/tools/community_tools/index.html', - en: '/en/docs/25.03/tools/community_tools/index.html', - }, - }, - { - title: { - zh: 'DevOps(社区服务)', - en: 'Community DevOps Services', - }, - desc: { - zh: '帮助用户使用源码管理、包管理服务', - en: 'Leverage source code and package management services.', - }, - href: { - zh: '/zh/docs/25.03/tools/devops/index.html', - en: '/en/docs/25.03/tools/devops/index.html', - }, - }, - { - title: { - zh: 'AI', - en: 'AI', - }, - desc: { - zh: '提供 openEuler 大模型智能交互平台,AI 大模型服务镜像等使用指南', - en: 'Access guides for the openEuler Intelligent Interaction Platform and container images for AI model services.', - }, - href: { - zh: '/zh/docs/25.03/tools/ai/index.html', - en: '/en/docs/25.03/tools/ai/index.html', - }, - }, - { - title: { - zh: '图形桌面使用', - en: 'Desktop', - }, - desc: { - zh: '帮助用户安装和使用桌面环境', - en: 'Set up and use graphical desktop environments.', - }, - href: { - zh: '/zh/docs/25.03/tools/desktop/index.html', - en: '/en/docs/25.03/tools/desktop/index.html', - }, - }, - { - title: { - zh: '云原生工具', - en: 'Cloud', - }, - desc: { - zh: '提供云原生常用工具用户指南,包含 CTinspector、CPDS 等', - en: 'Explore user guides for CTinspector, CPDS and other essential tools.', - }, - href: { - zh: '/zh/docs/25.03/tools/cloud/index.html', - en: '/en/docs/25.03/tools/cloud/index.html', - }, - }, - { - title: { - zh: '系统运维', - en: 'System Operations', - }, - desc: { - zh: '提供热补丁制作、系统监控工具使用指南', - en: 'Create hot patches and monitor your system with specialized tools.', - }, - href: { - zh: '/zh/docs/25.03/tools/maintenance/index.html', - en: '/en/docs/25.03/tools/maintenance/index.html', - }, - }, - { - title: { - zh: '安全', - en: 'Security', - }, - desc: { - zh: '提供安全配置常用工具使用指南', - en: 'Implement security configurations with our recommended tools.', - }, - href: { - zh: '/zh/docs/25.03/tools/security/index.html', - en: '/en/docs/25.03/tools/security/index.html', - }, - }, -]; diff --git a/app/.vitepress/src/layouts/LayoutDoc.vue b/app/.vitepress/src/layouts/LayoutDoc.vue index 256969e27..76bbc124c 100644 --- a/app/.vitepress/src/layouts/LayoutDoc.vue +++ b/app/.vitepress/src/layouts/LayoutDoc.vue @@ -228,7 +228,7 @@ onUnmounted(() => {