From 5885f782945c711ba0eafd48a7dde08fdd5728c9 Mon Sep 17 00:00:00 2001 From: HuangSJ Date: Tue, 19 Nov 2024 17:15:57 +0800 Subject: [PATCH 1/2] t MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: 调整导航布局及快捷链接样式 fix: 导航新增EulerPublisher入口 fix: 使用mixin --- .../src-new/components/header/HeaderNav.vue | 120 +++++++----------- .../components/header/HeaderNavMoblie.vue | 46 ++++++- .../src-new/components/header/NavContent.vue | 28 +--- .../src-new/i18n/header/header-en.ts | 85 ++++++------- .../src-new/i18n/header/header-zh.ts | 91 ++++++------- 5 files changed, 169 insertions(+), 201 deletions(-) diff --git a/app/.vitepress/src-new/components/header/HeaderNav.vue b/app/.vitepress/src-new/components/header/HeaderNav.vue index 7edab3b1d..4eb7507d7 100644 --- a/app/.vitepress/src-new/components/header/HeaderNav.vue +++ b/app/.vitepress/src-new/components/header/HeaderNav.vue @@ -120,9 +120,9 @@ const linkClick = () => { /> - {{ - subNavContent.NAME - }} + {{ + subNavContent.NAME + }}
{ :nav-content="subNavContent?.CHILDREN" @link-click="linkClick" /> +
+
+ + {{ extra.NAME }} + + + + + +
+
-
+
{{ @@ -188,12 +209,6 @@ const linkClick = () => {

{{ shortcut.NAME }}

-

- {{ shortcut.DESCRIPTION }} -

{{ shortcut.REMARK }}
@@ -365,7 +380,7 @@ const linkClick = () => { .nav-drop-content { max-width: 1416px; - width: calc(100vw - 64px); + width: calc(100vw - 2*var(--layout-content-padding)); display: flex; } @@ -468,7 +483,7 @@ const linkClick = () => { .content-left { flex: 1; - padding: 32px 24px 24px 32px; + padding: 32px 24px 32px 32px; @include respond-to('pad_h') { padding: var(--o-gap-6) var(--o-gap-4); @@ -490,25 +505,22 @@ const linkClick = () => { width: 16px; padding-left: 6px; } + .extra { + margin-top: var(--o-gap-5); + } } .content-right { - width: 298px; + width: 358px; padding-top: var(--o-gap-6); padding-bottom: var(--o-gap-5); padding-left: var(--o-gap-4); - @media screen and (max-width: 1780px) { - width: 384px; - } - @include respond-to('laptop') { - width: 354px; - } @include respond-to('pad_h') { width: 224px; } .shortcut { - width: 282px; + width: 342px; min-height: 42px; background: var(--o-color-fill3); border-radius: var(--o-radius_control-xs); @@ -519,12 +531,6 @@ const linkClick = () => { cursor: pointer; @include tip1; - @media screen and (max-width: 1780px) { - width: 362px; - } - @include respond-to('laptop') { - width: 334px; - } @include respond-to('pad_h') { width: 204px; } @@ -548,17 +554,11 @@ const linkClick = () => { } .review { - width: 410px; + width: 342px; display: flex; align-items: unset; position: relative; - @media screen and (max-width: 1780px) { - width: 360px; - } - @include respond-to('laptop') { - width: 300px; - } @include respond-to('pad_h') { width: 200px; &:not(:last-child) { @@ -579,47 +579,32 @@ const linkClick = () => { } .review-picture { - width: 160px; + width: 120px; height: auto; display: block; object-fit: contain; - @media screen and (max-width: 1780px) { - max-width: 150px; - } - @include respond-to('laptop') { - width: 120px; - height: 68px; - } @include respond-to('pad_h') { display: none; } } .review-content { - margin-left: var(--o-gap-4); + margin-left: var(--o-gap-2); flex: 1; - max-width: 224px; + max-width: 212px; + height: 68px; display: flex; flex-direction: column; justify-content: space-between; - @media screen and (max-width: 1780px) { - max-width: 200px; - } - @include respond-to('laptop') { - margin-left: var(--o-gap-2); - height: 68px; - } @include respond-to('pad_h') { margin-left: unset; - height: 68px; } .review-title { @include text1; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + @include text-truncate(2); + max-height: 48px; color: var(--o-color-info1); font-weight: 500; cursor: pointer; @@ -627,25 +612,8 @@ const linkClick = () => { @include hover { color: var(--o-color-primary1); } - - @include respond-to('<=laptop') { - white-space: wrap; - } - } - - .review-desc { - @include tip2; - overflow: hidden; - flex: 1; - color: var(--o-color-info2); - margin-top: var(--o-gap-1); - margin-bottom: var(--o-gap-2); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - - @include respond-to('<=laptop') { - display: none; + @include respond-to('pad_v-laptop') { + max-height: 44px; } } diff --git a/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue b/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue index 195a077c5..c912a3491 100644 --- a/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue +++ b/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue @@ -116,6 +116,28 @@ const linkClick = () => {
+
+
+ + {{ extra.NAME }} + + + + + +
+
-
+
{{ system.NAME }} @@ -106,13 +106,6 @@ const descMouseenter = (e: MouseEvent) => { margin-left: var(--o-gap-2); } -@mixin hidden { - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; -} - .content-container { display: flex; margin: 0; @@ -135,17 +128,11 @@ const descMouseenter = (e: MouseEvent) => { } .content-item { - @include respond-to('>laptop') { - width: calc((100% - 96px) / 3); - min-width: 230px; - } - - @include respond-to('laptop') { + width: calc((100% - 96px) / 3); + @media (min-width: 1300px) and (max-width: 1440px) { width: calc((100% - 48px) / 3); - min-width: 184px; } - - @include respond-to('pad_h') { + @media (max-width: 1300px) { width: calc((100% - 24px) / 2); } } @@ -168,20 +155,19 @@ const descMouseenter = (e: MouseEvent) => { .desc-container { overflow: hidden; position: relative; - padding-bottom: var(--o-gap-3); .item-desc { color: var(--o-color-info2); margin: 0; - white-space: pre-line; @include tip2; - @include hidden; + @include text-truncate(2); } } .system-container { display: flex; flex-wrap: wrap; + padding-top: var(--o-gap-3); .system { font-weight: 500; @@ -229,7 +215,7 @@ const descMouseenter = (e: MouseEvent) => { margin-bottom: var(--o-gap-1); text-align: justify; @include text1; - @include hidden; + @include text-truncate(2); } } diff --git a/app/.vitepress/src-new/i18n/header/header-en.ts b/app/.vitepress/src-new/i18n/header/header-en.ts index e08b01b56..045aa8478 100644 --- a/app/.vitepress/src-new/i18n/header/header-en.ts +++ b/app/.vitepress/src-new/i18n/header/header-en.ts @@ -18,54 +18,6 @@ export default { NAME: 'Download', ID: 'download', CHILDREN: [ - { - NAME: 'Get openEuler OS', - CHILDREN: [ - { - NAME: 'openEuler Is Everywhere', - DESCRIPTION: 'Get openEuler for public clouds, containers, and Windows.', - TAG: TAG_TYPE.HOT, - URL: '/download/get-os/', - MOBILE_SHOW_CHILD: false, - CHILDREN: [ - { - NAME: 'Cloud Images', - URL: '/wiki/install/cloud/', - }, - { - NAME: 'Container Images', - URL: '/wiki/install/image/', - }, - { - NAME: 'Windows', - URL: '/wiki/install/wsl/', - }, - { - NAME: 'Virtualization', - URL: '/wiki/install/virtualization/', - }, - { - NAME: 'Raspberry Pi', - URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', - }, - ], - } - ], - SHORTCUT: [ - { - NAME: 'openEuler 24.03 LTS', - URL: '/download/?version=openEuler 24.03 LTS', - }, - { - NAME: 'openEuler repo', - URL: 'https://repo.openeuler.openatom.cn/', - }, - { - NAME: 'Mirrors', - URL: '/mirror/list/', - }, - ], - }, { NAME: 'Community Releases', CHILDREN: [ @@ -166,7 +118,42 @@ export default { NAME: 'Historical Releases', URL: '/download/archive/', }, - ], + ], + EXTRAS: [ + { + NAME: 'Get openEuler', + URL: '/download/get-os/', + ICON: ArrowRight, + CHILDREN: [ + { + NAME: 'Cloud Images', + DESCRIPTION: 'openEuler has released official images on mainstream public cloud platforms', + URL: '/wiki/install/cloud/', + }, + { + NAME: 'Container Images', + DESCRIPTION: 'openEuler provides official container images', + URL: '/wiki/install/image/', + }, + { + NAME: 'Windows', + DESCRIPTION: 'Running openEuler on Windows', + URL: '/wiki/install/wsl/', + }, + { + NAME: 'Virtualization', + DESCRIPTION: 'Running openEuler on VMs', + URL: '/wiki/install/virtualization/', + }, + { + NAME: 'Raspberry Pi', + DESCRIPTION: 'Installing openEuler on Raspberry Pi', + ICON: OutLink, + URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', + }, + ], + }, + ] }, { NAME: 'Other Releases', diff --git a/app/.vitepress/src-new/i18n/header/header-zh.ts b/app/.vitepress/src-new/i18n/header/header-zh.ts index d5304f98c..f30ebfaf4 100644 --- a/app/.vitepress/src-new/i18n/header/header-zh.ts +++ b/app/.vitepress/src-new/i18n/header/header-zh.ts @@ -21,54 +21,6 @@ export default { NAME: '下载', ID: 'download', CHILDREN: [ - { - NAME: '获取方式', - CHILDREN: [ - { - NAME: '获取openEuler操作系统', - DESCRIPTION: '提供获取openEuler的不同方式公有云、容器镜像、windows等', - TAG: TAG_TYPE.HOT, - URL: '/download/get-os/', - MOBILE_SHOW_CHILD: false, - CHILDREN: [ - { - NAME: '公有云', - URL: '/wiki/install/cloud/', - }, - { - NAME: '容器镜像', - URL: '/wiki/install/image/', - }, - { - NAME: 'Windows', - URL: '/wiki/install/wsl/', - }, - { - NAME: 'Virtualization', - URL: '/wiki/install/virtualization/', - }, - { - NAME: 'Raspberry Pi', - URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', - }, - ], - } - ], - SHORTCUT: [ - { - NAME: 'openEuler 24.03 LTS', - URL: '/download/?version=openEuler 24.03 LTS', - }, - { - NAME: 'openEuler repo 源', - URL: 'https://repo.openeuler.openatom.cn/', - }, - { - NAME: '镜像仓列表', - URL: '/mirror/list/', - }, - ], - }, { NAME: '社区发行版', CHILDREN: [ @@ -170,6 +122,41 @@ export default { URL: '/download/archive/', }, ], + EXTRAS: [ + { + NAME: '其他获取方式', + URL: '/download/get-os/', + ICON: ArrowRight, + CHILDREN: [ + { + NAME: '公有云', + DESCRIPTION: 'openEuler官方镜像在以下主流平台正式发布', + URL: '/wiki/install/cloud/', + }, + { + NAME: '容器镜像', + DESCRIPTION: 'openEuler提供官方容器镜像', + URL: '/wiki/install/image/', + }, + { + NAME: 'Windows', + DESCRIPTION: '在Windows上运行openEuler', + URL: '/wiki/install/wsl/', + }, + { + NAME: 'Virtualization', + DESCRIPTION: '在虚拟机上运行openEuler', + URL: '/wiki/install/virtualization/', + }, + { + NAME: 'Raspberry Pi', + DESCRIPTION: '在树莓派上安装openEuler', + ICON: OutLink, + URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', + }, + ], + }, + ] }, { NAME: '其他版本', @@ -183,7 +170,7 @@ export default { SHORTCUT: [], }, { - NAME: '下载服务', + NAME: '下载资源', CHILDREN: [ { NAME: '软件中心', @@ -416,6 +403,12 @@ export default { { NAME: '发布', CHILDREN: [ + { + NAME: 'EulerPublisher', + DESCRIPTION: 'openEuler云原生发布工具', + URL: 'https://gitee.com/openeuler/eulerpublisher', + ICON: OutLink + }, { NAME: 'EulerLauncher', DESCRIPTION: '跨平台openEuler虚拟机管理工具', -- Gitee From 3a245353bed1670716bcad0973775bc9002ae9d8 Mon Sep 17 00:00:00 2001 From: HuangSJ Date: Tue, 19 Nov 2024 17:15:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E5=AF=BC=E8=88=AA=E6=A0=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=B8=83=E5=B1=80=E5=8F=8A=E6=96=B0=E5=A2=9E=E5=85=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src-new/components/header/HeaderNav.vue | 120 +++++++----------- .../components/header/HeaderNavMoblie.vue | 46 ++++++- .../src-new/components/header/NavContent.vue | 28 +--- .../src-new/i18n/header/header-en.ts | 85 ++++++------- .../src-new/i18n/header/header-zh.ts | 91 ++++++------- 5 files changed, 169 insertions(+), 201 deletions(-) diff --git a/app/.vitepress/src-new/components/header/HeaderNav.vue b/app/.vitepress/src-new/components/header/HeaderNav.vue index 7edab3b1d..4eb7507d7 100644 --- a/app/.vitepress/src-new/components/header/HeaderNav.vue +++ b/app/.vitepress/src-new/components/header/HeaderNav.vue @@ -120,9 +120,9 @@ const linkClick = () => { /> - {{ - subNavContent.NAME - }} + {{ + subNavContent.NAME + }}
{ :nav-content="subNavContent?.CHILDREN" @link-click="linkClick" /> +
+
+ + {{ extra.NAME }} + + + + + +
+
-
+
{{ @@ -188,12 +209,6 @@ const linkClick = () => {

{{ shortcut.NAME }}

-

- {{ shortcut.DESCRIPTION }} -

{{ shortcut.REMARK }}
@@ -365,7 +380,7 @@ const linkClick = () => { .nav-drop-content { max-width: 1416px; - width: calc(100vw - 64px); + width: calc(100vw - 2*var(--layout-content-padding)); display: flex; } @@ -468,7 +483,7 @@ const linkClick = () => { .content-left { flex: 1; - padding: 32px 24px 24px 32px; + padding: 32px 24px 32px 32px; @include respond-to('pad_h') { padding: var(--o-gap-6) var(--o-gap-4); @@ -490,25 +505,22 @@ const linkClick = () => { width: 16px; padding-left: 6px; } + .extra { + margin-top: var(--o-gap-5); + } } .content-right { - width: 298px; + width: 358px; padding-top: var(--o-gap-6); padding-bottom: var(--o-gap-5); padding-left: var(--o-gap-4); - @media screen and (max-width: 1780px) { - width: 384px; - } - @include respond-to('laptop') { - width: 354px; - } @include respond-to('pad_h') { width: 224px; } .shortcut { - width: 282px; + width: 342px; min-height: 42px; background: var(--o-color-fill3); border-radius: var(--o-radius_control-xs); @@ -519,12 +531,6 @@ const linkClick = () => { cursor: pointer; @include tip1; - @media screen and (max-width: 1780px) { - width: 362px; - } - @include respond-to('laptop') { - width: 334px; - } @include respond-to('pad_h') { width: 204px; } @@ -548,17 +554,11 @@ const linkClick = () => { } .review { - width: 410px; + width: 342px; display: flex; align-items: unset; position: relative; - @media screen and (max-width: 1780px) { - width: 360px; - } - @include respond-to('laptop') { - width: 300px; - } @include respond-to('pad_h') { width: 200px; &:not(:last-child) { @@ -579,47 +579,32 @@ const linkClick = () => { } .review-picture { - width: 160px; + width: 120px; height: auto; display: block; object-fit: contain; - @media screen and (max-width: 1780px) { - max-width: 150px; - } - @include respond-to('laptop') { - width: 120px; - height: 68px; - } @include respond-to('pad_h') { display: none; } } .review-content { - margin-left: var(--o-gap-4); + margin-left: var(--o-gap-2); flex: 1; - max-width: 224px; + max-width: 212px; + height: 68px; display: flex; flex-direction: column; justify-content: space-between; - @media screen and (max-width: 1780px) { - max-width: 200px; - } - @include respond-to('laptop') { - margin-left: var(--o-gap-2); - height: 68px; - } @include respond-to('pad_h') { margin-left: unset; - height: 68px; } .review-title { @include text1; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + @include text-truncate(2); + max-height: 48px; color: var(--o-color-info1); font-weight: 500; cursor: pointer; @@ -627,25 +612,8 @@ const linkClick = () => { @include hover { color: var(--o-color-primary1); } - - @include respond-to('<=laptop') { - white-space: wrap; - } - } - - .review-desc { - @include tip2; - overflow: hidden; - flex: 1; - color: var(--o-color-info2); - margin-top: var(--o-gap-1); - margin-bottom: var(--o-gap-2); - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - - @include respond-to('<=laptop') { - display: none; + @include respond-to('pad_v-laptop') { + max-height: 44px; } } diff --git a/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue b/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue index 195a077c5..c912a3491 100644 --- a/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue +++ b/app/.vitepress/src-new/components/header/HeaderNavMoblie.vue @@ -116,6 +116,28 @@ const linkClick = () => {
+
+
+ + {{ extra.NAME }} + + + + + +
+
-
+
{{ system.NAME }} @@ -106,13 +106,6 @@ const descMouseenter = (e: MouseEvent) => { margin-left: var(--o-gap-2); } -@mixin hidden { - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; -} - .content-container { display: flex; margin: 0; @@ -135,17 +128,11 @@ const descMouseenter = (e: MouseEvent) => { } .content-item { - @include respond-to('>laptop') { - width: calc((100% - 96px) / 3); - min-width: 230px; - } - - @include respond-to('laptop') { + width: calc((100% - 96px) / 3); + @media (min-width: 1300px) and (max-width: 1440px) { width: calc((100% - 48px) / 3); - min-width: 184px; } - - @include respond-to('pad_h') { + @media (max-width: 1300px) { width: calc((100% - 24px) / 2); } } @@ -168,20 +155,19 @@ const descMouseenter = (e: MouseEvent) => { .desc-container { overflow: hidden; position: relative; - padding-bottom: var(--o-gap-3); .item-desc { color: var(--o-color-info2); margin: 0; - white-space: pre-line; @include tip2; - @include hidden; + @include text-truncate(2); } } .system-container { display: flex; flex-wrap: wrap; + padding-top: var(--o-gap-3); .system { font-weight: 500; @@ -229,7 +215,7 @@ const descMouseenter = (e: MouseEvent) => { margin-bottom: var(--o-gap-1); text-align: justify; @include text1; - @include hidden; + @include text-truncate(2); } } diff --git a/app/.vitepress/src-new/i18n/header/header-en.ts b/app/.vitepress/src-new/i18n/header/header-en.ts index e08b01b56..045aa8478 100644 --- a/app/.vitepress/src-new/i18n/header/header-en.ts +++ b/app/.vitepress/src-new/i18n/header/header-en.ts @@ -18,54 +18,6 @@ export default { NAME: 'Download', ID: 'download', CHILDREN: [ - { - NAME: 'Get openEuler OS', - CHILDREN: [ - { - NAME: 'openEuler Is Everywhere', - DESCRIPTION: 'Get openEuler for public clouds, containers, and Windows.', - TAG: TAG_TYPE.HOT, - URL: '/download/get-os/', - MOBILE_SHOW_CHILD: false, - CHILDREN: [ - { - NAME: 'Cloud Images', - URL: '/wiki/install/cloud/', - }, - { - NAME: 'Container Images', - URL: '/wiki/install/image/', - }, - { - NAME: 'Windows', - URL: '/wiki/install/wsl/', - }, - { - NAME: 'Virtualization', - URL: '/wiki/install/virtualization/', - }, - { - NAME: 'Raspberry Pi', - URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', - }, - ], - } - ], - SHORTCUT: [ - { - NAME: 'openEuler 24.03 LTS', - URL: '/download/?version=openEuler 24.03 LTS', - }, - { - NAME: 'openEuler repo', - URL: 'https://repo.openeuler.openatom.cn/', - }, - { - NAME: 'Mirrors', - URL: '/mirror/list/', - }, - ], - }, { NAME: 'Community Releases', CHILDREN: [ @@ -166,7 +118,42 @@ export default { NAME: 'Historical Releases', URL: '/download/archive/', }, - ], + ], + EXTRAS: [ + { + NAME: 'Get openEuler', + URL: '/download/get-os/', + ICON: ArrowRight, + CHILDREN: [ + { + NAME: 'Cloud Images', + DESCRIPTION: 'openEuler has released official images on mainstream public cloud platforms', + URL: '/wiki/install/cloud/', + }, + { + NAME: 'Container Images', + DESCRIPTION: 'openEuler provides official container images', + URL: '/wiki/install/image/', + }, + { + NAME: 'Windows', + DESCRIPTION: 'Running openEuler on Windows', + URL: '/wiki/install/wsl/', + }, + { + NAME: 'Virtualization', + DESCRIPTION: 'Running openEuler on VMs', + URL: '/wiki/install/virtualization/', + }, + { + NAME: 'Raspberry Pi', + DESCRIPTION: 'Installing openEuler on Raspberry Pi', + ICON: OutLink, + URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', + }, + ], + }, + ] }, { NAME: 'Other Releases', diff --git a/app/.vitepress/src-new/i18n/header/header-zh.ts b/app/.vitepress/src-new/i18n/header/header-zh.ts index d5304f98c..f30ebfaf4 100644 --- a/app/.vitepress/src-new/i18n/header/header-zh.ts +++ b/app/.vitepress/src-new/i18n/header/header-zh.ts @@ -21,54 +21,6 @@ export default { NAME: '下载', ID: 'download', CHILDREN: [ - { - NAME: '获取方式', - CHILDREN: [ - { - NAME: '获取openEuler操作系统', - DESCRIPTION: '提供获取openEuler的不同方式公有云、容器镜像、windows等', - TAG: TAG_TYPE.HOT, - URL: '/download/get-os/', - MOBILE_SHOW_CHILD: false, - CHILDREN: [ - { - NAME: '公有云', - URL: '/wiki/install/cloud/', - }, - { - NAME: '容器镜像', - URL: '/wiki/install/image/', - }, - { - NAME: 'Windows', - URL: '/wiki/install/wsl/', - }, - { - NAME: 'Virtualization', - URL: '/wiki/install/virtualization/', - }, - { - NAME: 'Raspberry Pi', - URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', - }, - ], - } - ], - SHORTCUT: [ - { - NAME: 'openEuler 24.03 LTS', - URL: '/download/?version=openEuler 24.03 LTS', - }, - { - NAME: 'openEuler repo 源', - URL: 'https://repo.openeuler.openatom.cn/', - }, - { - NAME: '镜像仓列表', - URL: '/mirror/list/', - }, - ], - }, { NAME: '社区发行版', CHILDREN: [ @@ -170,6 +122,41 @@ export default { URL: '/download/archive/', }, ], + EXTRAS: [ + { + NAME: '其他获取方式', + URL: '/download/get-os/', + ICON: ArrowRight, + CHILDREN: [ + { + NAME: '公有云', + DESCRIPTION: 'openEuler官方镜像在以下主流平台正式发布', + URL: '/wiki/install/cloud/', + }, + { + NAME: '容器镜像', + DESCRIPTION: 'openEuler提供官方容器镜像', + URL: '/wiki/install/image/', + }, + { + NAME: 'Windows', + DESCRIPTION: '在Windows上运行openEuler', + URL: '/wiki/install/wsl/', + }, + { + NAME: 'Virtualization', + DESCRIPTION: '在虚拟机上运行openEuler', + URL: '/wiki/install/virtualization/', + }, + { + NAME: 'Raspberry Pi', + DESCRIPTION: '在树莓派上安装openEuler', + ICON: OutLink, + URL: 'https://gitee.com/openeuler/raspberrypi/blob/master/README.md', + }, + ], + }, + ] }, { NAME: '其他版本', @@ -183,7 +170,7 @@ export default { SHORTCUT: [], }, { - NAME: '下载服务', + NAME: '下载资源', CHILDREN: [ { NAME: '软件中心', @@ -416,6 +403,12 @@ export default { { NAME: '发布', CHILDREN: [ + { + NAME: 'EulerPublisher', + DESCRIPTION: 'openEuler云原生发布工具', + URL: 'https://gitee.com/openeuler/eulerpublisher', + ICON: OutLink + }, { NAME: 'EulerLauncher', DESCRIPTION: '跨平台openEuler虚拟机管理工具', -- Gitee