From fb89e74cdeb46c1064b815ec590fe9197514ff5a Mon Sep 17 00:00:00 2001 From: Nexisato <978452096@qq.com> Date: Tue, 1 Sep 2026 19:38:57 +0800 Subject: [PATCH 1/9] feat: add cannlab promo component --- .../theme/components/HomePromoSection.vue | 270 ++++++++++++++++++ .vitepress/theme/index.ts | 3 + public/vendor/CANNlogo.svg | 44 +++ public/vendor/background-line.png | Bin 0 -> 439233 bytes public/vendor/gitcode.svg | 1 + public/vendor/github.svg | 1 + public/vendor/swanlab-logo.svg | 1 + zh/index.md | 3 + 8 files changed, 323 insertions(+) create mode 100644 .vitepress/theme/components/HomePromoSection.vue create mode 100644 public/vendor/CANNlogo.svg create mode 100644 public/vendor/background-line.png create mode 100644 public/vendor/gitcode.svg create mode 100644 public/vendor/github.svg create mode 100644 public/vendor/swanlab-logo.svg diff --git a/.vitepress/theme/components/HomePromoSection.vue b/.vitepress/theme/components/HomePromoSection.vue new file mode 100644 index 00000000..c0ac10e2 --- /dev/null +++ b/.vitepress/theme/components/HomePromoSection.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 1b04c0a7..49983a6b 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -20,6 +20,8 @@ import CopyOrDownloadAsMarkdownButtons from "./components/CopyOrDownloadAsMarkdo import VersionBadge from "./components/VersionBadge.vue"; import BadgeRow from "./components/BadgeRow.vue"; import MermaidDiagram from "./components/MermaidDiagram.vue"; +// 首页合作推广区(可选组件,组件内 enabled=false 即可整区下线) +import HomePromoSection from "./components/HomePromoSection.vue"; import { useVersionSync } from "./version-sync"; import { useLogoLinkFix } from "./logo-link"; @@ -50,6 +52,7 @@ export default { ctx.app.component("VersionBadge", VersionBadge); ctx.app.component("BadgeRow", BadgeRow); ctx.app.component("MermaidDiagram", MermaidDiagram); + ctx.app.component("HomePromoSection", HomePromoSection); VoidZeroTheme.enhanceApp(ctx); }, setup() { diff --git a/public/vendor/CANNlogo.svg b/public/vendor/CANNlogo.svg new file mode 100644 index 00000000..a81e4e5a --- /dev/null +++ b/public/vendor/CANNlogo.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/vendor/background-line.png b/public/vendor/background-line.png new file mode 100644 index 0000000000000000000000000000000000000000..73d00825fcc2fcaf776e9f8e65bcd7ba1d401e25 GIT binary patch literal 439233 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