一个极简的VitePress demo卡片插件

1,089 阅读1分钟

🔥 VitePress文档组件展示的血泪史 vs 插件优雅解决方案

💔 传统方式完整案例 - 看看你中了几枪?

📜 传统实现方式(痛苦版):

假设我们要在文档展示一个Button组件

1️⃣ 第一步:配置注册组件

// .vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
import MyButton from '../components/MyButton.vue'

export default {
  extends: DefaultTheme,
  enhanceApp({ app }) {
    app.component('MyButton', MyButton) // 手动注册组件
  }
}

2️⃣ 第二步:在md文件中双重编写

### 基础用法
```vue
<template>
  <MyButton @click="handleClick">点击我</MyButton>
</template>

<script setup>
const handleClick = () => alert('点击事件')
</script>
```

实际效果:
<MyButton @click="handleClick">点击我</MyButton>

<script setup>
// 这里要重复写一遍逻辑!
const handleClick = () => alert('点击事件')
</script>

3️⃣ 第三步:处理样式问题

/* 手动适配暗黑模式 */
.vitepress-dark .demo-container {
  background: #222;
  border-color: #444;
}

用vitepress-democard-plugin后:

  1. 无需注册组件
  2. 无需重复编写
  3. 自动主题适配
<$./components/MyButton.vue$>

🎨 效果如下

  • demo卡片折叠 1.jpeg

  • deme卡片展开 2.jpeg

  • 暗色主题 3.jpeg

💣 传统方式的致命缺陷:

  • ✖️ 每次新增组件都要修改theme配置
  • ✖️ 相同逻辑要写两遍(演示+源码)
  • ✖️ 暗黑模式要手动维护
  • ✖️ 无法代码折叠/复制
  • ✖️ 组件更新不会自动热重载

插件带来的革命性改变:

  • 自动扫描组件无需注册
  • 真正的"所见即所得"
  • 智能主题切换
  • 内置代码高亮/复制
  • 组件修改即时热更新

🛠️ 完整对比表格:

功能传统方式插件方案
组件注册手动自动
代码重复2份1份
主题适配手动自动
代码交互折叠/复制
开发体验痛苦流畅

👉 现在体验现代文档开发方式:\

pnpm add vitepress-democard-plugin -D

GitHubgithub.com/qianyuanjia…
npmwww.npmjs.com/package/i18…

🆓 如果你有更多idea,可以fork二开,或者提PRS 🙏