Skip to content

要将上述 Vue 代码嵌入到 VitePress 的主页模板中,可以按照以下步骤操作。我们需要在 VitePress 的配置文件中添加 Vue 组件,然后引用这个组件使其显示在页面顶端。

首先,创建一个新的 Vue 组件文件,例如 CurrentTime.vue,并将 Vue 代码放入其中:

CurrentTime.vue

vue
<template>
  <div id="app">
    <h3>当前时间: {{ now }}</h3>
    <p>自上学以来已经过了: {{ count }} 天</p>
  </div>
</template>

<script>
import { ref, onMounted } from "vue";

export default {
  setup() {
    const now = ref(new Date().toLocaleString());
    const count = ref(0);

    onMounted(() => {
      const startDay = new Date("2022-09-01").getTime();
      const nowDay = new Date().getTime();
      count.value = Math.floor((nowDay - startDay) / (1000 * 60 * 60 * 24)) + 1;
      setInterval(() => {
        now.value = new Date().toLocaleString();
      }, 1000);
    });

    return {
      now,
      count
    };
  }
};
</script>

然后,在 VitePress 的配置文件(通常是 docs/.vitepress/theme/index.jsdocs/.vitepress/theme/index.ts)中,注册这个组件。

index.jsindex.ts

js
import DefaultTheme from 'vitepress/theme'
import CurrentTime from './CurrentTime.vue' // 假设 CurrentTime.vue 与 index.js 位于同一目录

export default {
  ...DefaultTheme,
  enhanceApp({ app }) {
    app.component('CurrentTime', CurrentTime)
  }
}

接下来,在 docs/index.md 文件中,引用并使用这个组件:

docs/index.md

markdown
---
layout: home
hero:
  name: "游晓竹知识库"
  text: Focus-Insight-Share
  tagline: 个人技术知识库,记录 & 分享个人碎片化、结构化、体系化的技术知识内容。
  image:
    src: img/logo.png
    alt: 背景图
  actions:
    - theme: brand
      text: 快速开始
      link: /markdown-examples
    - theme: alt
      text: 在GitHub查看
      link: https://github.com/Cunninger/docs-vite

features:
  - icon:
      src: img/focus.png
    title: 保持专注
    details: “简单比复杂更难,你必须努力让你的想法变得清晰明了,让它变得简单。一旦你做到了简单,你就能搬动大山。” -- 乔布斯
  - icon:
      src: img/insight.png
    title: 善于洞察
    details: “我既没有突出的理解力,也没有过人的机智。只在觉察那些稍纵即逝的事物并对其进行精细观察的能力上,我可能在普通人之上。” -- 达尔文
  - icon:
      src: img/knowledge.png
    title: 乐于分享
    details: 关于分享,有形的物品越分越少,无形的知识越分越多。在记录与分享的过程中, 梳理所学, 交流所得, 必有所获。
---

<CurrentTime />

<div class="image-container">
  <img src="https://ghchart.rshah.org/cunninger" alt="cunninger 's Github chart"  class="styled-image" />
  <figcaption class="image-caption">我的 GitHub 代码贡献表</figcaption>
</div>

<style scoped>
.image-container {
  margin-top: 40px;
  margin-left: 250px
}

.styled-image {
  border: 2px solid #ccc;
  border-radius: 10px;
  max-width: 100%;
  height: auto;
}

.image-caption {
  margin-top: 10px;
  margin-left:250px;
  font-size: 14px;
  color: #666;
}
</style>