
00:00:00
外卖卷:非常划算 扫码领劵 省点小钱钱
文章发布较早,内容可能过时,阅读注意甄别。
Teek 提供了很多的插槽,能够被用来在页面的特定位置注入内容,下面这个例子展示了将一个组件注入到首页右侧卡片栏底部:
// .vitepress/theme/index.ts
import Teek from "vitepress-theme-teek";
import MyLayout from "./MyLayout.vue";
import "vitepress-theme-teek/index.css";
export default {
extends: Teek,
// 使用注入插槽的包装组件覆盖 Layout
Layout: MyLayout,
};<!-- .vitepress/theme/MyLayout.vue -->
<script setup>
import Teek from "vitepress-theme-teek";
const { Layout } = Teek;
</script>
<template>
<Layout>
<template #teek-home-info-after>自定义卡片栏</template>
</Layout>
</template>也可以使用 h 渲染函数。
// .vitepress/theme/index.ts
import Teek from "vitepress-theme-teek";
import "vitepress-theme-teek/index.css";
import { h } from "vue";
import MyComponent from "./components/MyComponent.vue";
export default {
extends: Teek,
Layout() {
return h(Teek.Layout, null, {
"teek-home-info-after": () => h(MyComponent),
});
},
};Teek 主题的全部插槽如下:
当 layout: 'home' 在 frontmatter 中被启用时:
teek-home-before:等于 VitePress 的 home-hero-before 插槽teek-home-afterteek-home-banner-beforeteek-home-banner-afterteek-home-banner-content-beforeteek-home-banner-content-afterteek-home-banner-feature-beforeteek-home-banner-feature-afterteek-home-post-beforeteek-home-post-afterteek-home-post-list v1.2.0Teek 默认实现了列表风格和卡片风格的文章列表,如果您需要定制自己的文章列表风格,可以通过 teek-home-post-list 插槽将会覆盖 Teek 的文章列表,该插槽返回了当前的文章列表数量 currentPosts。
<script setup lang="ts">
import Teek from "vitepress-theme-teek";
</script>
<template>
<Teek.Layout>
<template #teek-home-post-list="{ currentPosts, transitionName }">
<TransitionGroup tag="ul" :name="transitionName">
<li v-for="post in currentPosts" :key="post.url">
<span>文章地址:{{ post.url }}</span>
<span>文章 frontmatter 数据:{{ post.frontmatter }}</span>
<span>文章摘要:{{ post.excerpt }}</span>
<span>文章作者:{{ post.author }}</span>
<span>文章 frontmatter.title:{{ post.title }}</span>
<span>文章 frontmatter.date:{{ post.date }}</span>
<span>文章前 300 个文字:{{ post.capture }}</span>
</li>
</TransitionGroup>
</template>
</Teek.Layout>
</template>v-bind 返回的 transitionName 为 post 配置项的 transitionName,具体可以查看 Teek 的列表风格和卡片风格的代码实现。
teek-home-card-beforeteek-home-card v1.3.1teek-home-card-afterteek-home-card-my-beforeteek-home-card-my v1.3.1teek-home-card-my-afterteek-home-card-top-article-beforeteek-home-card-top-article v1.3.1teek-home-card-top-article-afterteek-home-card-category-beforeteek-home-card-category v1.3.1teek-home-card-category-afterteek-home-card-tag-beforeteek-home-card-tag v1.3.1teek-home-card-tag-afterteek-home-card-friend-link-beforeteek-home-card-friend-link v1.3.1teek-home-card-friend-link-afterteek-home-card-doc-analysis-beforeteek-home-card-doc-analysis v1.3.1teek-home-card-doc-analysis-after移动端插槽:
teek-home-card-my-screen-before v1.3.1teek-home-card-my-screen v1.3.1teek-home-card-my-screen-after v1.3.1不带 -before 和 -after 的插槽是直接覆盖卡片本身。
teek-footer-info-beforeteek-footer-info-after:等于 VitePress 的 layout-bottom 插槽当 layout: 'doc' 在 frontmatter 中被启用时:
teek-article-analyze-before:等于 VitePress 的 doc-before 插槽teek-article-analyze-afterteek-article-share-beforeteek-article-share-after:等于 VitePress 的 aside-outline-before 插槽teek-doc-after-appreciation-before:等于 VitePress 的 doc-after 插槽teek-doc-after-appreciation-after:等于 Teek 的 teek-comment-before 插槽teek-comment-beforeteek-comment-afterteek-aside-bottom-appreciation-before:等于 VitePress 的 aside-bottom 插槽teek-aside-bottom-appreciation-afterteek-doc-update-before v1.2.0teek-doc-update-after v1.2.0当 layout: 'page' 在 frontmatter 中被启用时:
teek-page-top-before:等于 VitePress 的 page-top 插槽teek-page-top-after归档页插槽:
teek-archives-top-beforeteek-archives-top-after目录页插槽:
teek-catalogue-top-beforeteek-catalogue-top-after登录页插槽:
teek-login-page v1.3.0:覆盖 Teek 的登录页,适用于自己实现一个登录页风险链接提示页:
teek-risk-link-page v1.3.0:覆盖 Teek 的风险链接提示页,适用于自己实现一个风险链接提示页右下角按钮组插槽:
teek-right-bottom-beforeteek-right-bottom-afterteek-theme-enhance-topteek-theme-enhance-bottom
评论