`, // 赞赏内容,支持 HTML
expand: false, // 是否默认展开,默认 false
// ... 更多配置请看配置系列文章
},
},
});
export default {
extends: DefaultTheme,
Layout: () =>
h(DefaultTheme.Layout, null, {
"doc-after": () => h(TkDocAfterAppreciation),
}),
};
```
## 大纲栏底部赞赏
```ts
import DefaultTheme from "vitepress/theme";
import { AsideBottomAppreciation, teekConfigContext } from "vitepress-theme-teek";
import { h } from "vue";
provide(teekConfigContext, {
appreciation: {
options: {
title: "打赏支持", // 赞赏标题,支持 HTML
content: `
`, // 赞赏内容,支持 HTML
},
},
});
export default {
extends: DefaultTheme,
Layout: () =>
h(DefaultTheme.Layout, null, {
"aside-bottom": () => h(AsideBottomAppreciation),
}),
};
```
---
---
url: /30.生态/04.主题组件/ArticleBanner 文章页 Banner.md
---
# ArticleBanner 文章页 Banner
文章页顶部的 Banner 组件,仅在没有侧边栏的文章页生效,可以添加封面图或者背景色。
## 基础使用
```ts
import { h } from "vue";
import DefaultTheme from "vitepress/theme";
import { TkArticleBanner, teekConfigContext } from "vitepress-theme-teek";
import "vitepress-theme-teek/theme-chalk/tk-article-update.css";
provide(teekConfigContext, {
articleBanner: {
enabled: true, // 是否启用单文章页 Banner
showCategory: true, // 是否展示分类
showTag: true, // 是否展示标签
defaultCoverImg: "", // 默认封面图
defaultCoverBgColor: "", // 默认封面背景色,优先级低于 defaultCoverImg
},
});
// 是否显示 Article Banner(使用条件:开启该功能、没有侧边栏的文章页)
const showArticleBanner = computed(
() =>
frontmatter.value.articleBanner !== false &&
teekConfig.value.articleBanner.enabled &&
!hasSidebar.value &&
frontmatter.value.article !== false &&
(!frontmatter.value.layout || frontmatter.value.layout === "doc") &&
teekConfig.value.pageStyle === "default"
);
export default {
extends: DefaultTheme,
Layout: () =>
h(DefaultTheme.Layout, null, {
"layout-top": () => (showArticleBanner.value ? h(TkArticleBanner) : null),
}),
};
```
---
---
url: /@fragment/coverImg.md
---
# ArticleBanner 测试
我是一个测试 `ArticleBanner` 功能的文档,仅在没有侧边栏的文章中出现。
---
---
url: /30.生态/04.主题组件/ArticleHeadingHighlight 标题高亮.md
---
# ArticleHeadingHighlight 标题高亮
使用标题高亮组件,可以在点击标题时,高亮标题,方便快速定位在哪个位置。
## 基础使用
```ts
import { h } from "vue";
import DefaultTheme from "vitepress/theme";
import { TkArticleHeadingHighlight } from "vitepress-theme-teek";
export default {
extends: DefaultTheme,
Layout: () => h("div", null, [h(TkArticleHeadingHighlight), h(DefaultTheme.Layout)]),
};
```
---
---
url: /30.生态/04.主题组件/ArticleImagePreview 文章页图片预览.md
---
# ArticleImagePreview 文章页图片预览
使用文章页图片预览组件可以在文章页进行图片预览。
## 基础使用
```ts
import { h } from "vue";
import DefaultTheme from "vitepress/theme";
import { TkArticleImagePreview, teekConfigContext } from "vitepress-theme-teek";
provide(teekConfigContext, {
appreciation: {
article: {
imageViewer: {
hideOnClickModal: true, // 点击图片时隐藏预览
// ... 更多配置请看配置系列文章
},
},
},
});
export default {
extends: DefaultTheme,
Layout: () =>
h(DefaultTheme.Layout, null, {
"doc-before": () => h(TkArticleImagePreview),
}),
};
```
更多 `imageViewer` 配置项请看 [ImageViewer 图片预览](/ecosystem/components/image-viewer)。
---
---
url: /30.生态/04.主题组件/ArticleOverviewPage 清单页.md
---
# ArticleOverviewPage 清单页
::: warning 🚧 施工中
很高兴见到你!但很抱歉,这个页面还在施工中,如果没有找到你感兴趣的信息,你可以先在侧边栏的导航中寻找你感兴趣的内容来开始阅读
::::
## 基础使用
将清单页注册到全局里:
```ts
import DefaultTheme from "vitepress/theme";
import { ArticleOverviewPage } from "vitepress-theme-teek";
import "vitepress-theme-teek/theme-chalk/tk-article-overview-page.css";
export default {
extends: DefaultTheme,
enhanceApp({ app, siteData }) {
app.component("TkArticleOverviewPage", ArticleOverviewPage);
},
};
```
创建一个 Markdown 文件,在 `frontmatter` 添加如下内容:
```yaml
---
layout: TkArticleOverviewPage
---
```
此时访问该 Markdown 文件,即可看到效果。
---
---
url: /30.生态/03.公共组件/ArticlePage 文章页.md
---
# ArticlePage 文章页
当在 Markdown 文档将 `frontmatter.layout` 设置为 `page`,VitePress 不会对该 Markdown 生成的文章页应用任何样式,这对于需要创建一个完全自定义的页面时很有用。
**ArticlePage 文章页** 是一个快速构建自定义页面的组件,Teek 提供的 `目录页`、`归档页`、`清单页` 都是基于该组件构建的。
## 基础用法
::: demo 构建一个基础的文章页框架
articlePage/basic
:::
## 使用文章页样式
::: demo 使用 `doc` 配置项来加载 VitePress 的默认文档样式。
```yaml
effect: articlePage/doc-iframe
file: articlePage/doc
```
:::
## 使用大纲栏
::: demo 当存在 h1 到 h6 标题标签时,可以使用 `aside` 配置项来自动生成一个大纲栏。
```yaml
effect: articlePage/aside-iframe
file: articlePage/aside
```
:::
## API
### 配置项
| 名称 | 说明 | 类型 | 默认值 |
| :---- | :-------------------------------------- | :-------- | :----- |
| doc | 是否是文档页(使用 VitePress 文档样式) | `boolean` | false |
| aside | 是否使用大纲栏 | `boolean` | false |
使用 `aside` 配置项的前提是要有 `h1` 到 `h6` 标题标签,且标题标签里要有 `a` 标签,如:
```vue
Teek 是一个轻量、简洁高效、灵活配置的 VitePress 主题
pnpm add vitepress-theme-teek vitepress 以从 NPM 下载 Teek 主题。
- title: 现有模板:运行 git clone https://github.com/Kele-Bingtang/vitepress-theme-teek-docs-template.git 以下载当前文档模板。
- title: 拥有丰富的 Features,并持续更新
details: 满足大部分开发场景。
image: /feature/features.svg
features:
- title: 最新流行稳定技术栈
icon: icon-github
details: 基于 Vue3.2、TypeScript、Vite4、Pinia、Element-Plus 等最新技术栈开发
link: /guide/intro
- title: 简单上手 & 学习
icon:
details: 项目结构清晰,代码简单、易读。
- title: 规范工程化工作流
icon: /teek-logo-mini.svg
details: 配置 Eslint、Prettier、Husky、Commitlint、Lint-staged 规范前端工程代码规范。
- title: 完善的打包优化方案
icon: icon-github
details: 内置规范的打包目录,提供打包压缩功能,减少打包体积。
- title: 丰富的组件
icon: /teek-logo-mini.svg
details: 提供丰富的通用组件、业务组件。
link: /ecosystem/components
- title: 常用 Hook 函数
icon: icon-gitee
details: 提供丰富的组件、常用 Hooks 封装,实现复用思想,减少重复开发,提高效率。
- title: 个性化主题配置
icon: icon-xiangce
details: 提供主题颜色配置,暗黑、灰色、色弱等模式切换。
link: /guide/theme-enhance
- title: 多种布局配置
icon: /teek-logo-mini.svg
details: 提供多种布局、标签栏切换,布局显隐,满足大部分场景。
- title: 项目权限管控
icon: /teek-logo-mini.svg
details: 采用 RBAC 权限管控,提供菜单、路由及按钮粗细粒度权限管理方案
- title: 国际化
icon: /teek-logo-mini.svg
details: 内置常用国际化转换函数,支持自定义国际化切换,
- title: IFrame 嵌入
icon: /teek-logo-mini.svg
details: 提供 IFrame 嵌入、缓存功能,支持门户 Portal 布局。
- title: 自定义指令
icon: /teek-logo-mini.svg
details: 内置多种 Vue 自定义指令,提供傻瓜式指令一键注册功能。
- title: Axios 封装
icon: /teek-logo-mini.svg
details: 基于 Axios 封装常用请求模块,内置业务拦截器、异常拦截器。
- title: 多种图标类型
icon: /teek-logo-mini.svg
details: 支持 IconFont、SVG、Iconify 等多种图标类型渲染。
link: /guide/icon-use
- title: 布局
details: 多种布局、标签栏切换,布局组件显隐
image: /feature/layout.svg
highlights:
- title: 六大布局
icon: /teek-logo-mini.svg
details: 内置纵向、经典、横向、分栏、混合、子系统六大布局切换
- title: 深色模式
icon: /teek-logo-mini.svg
details: 可以自由切换浅色模式与深色模式
- title: 主题色切换
icon: /teek-logo-mini.svg
details: 支持自定义主题色并允许用户在预设的主题颜色之间切换
- title: 布局组件
icon: /teek-logo-mini.svg
details: 支持图标、面包屑、导航栏等组件显隐,内置缓存功能,记住用户的布局配置
```
```yaml [博客风格]
---
layout: home
tk:
features:
- title: 指南
details: Hd Security 使用指南说明
link: /01.指南/
images: /img/web.png
- title: 设计
description: Hd Security 设计思路说明
link: /design/
images: /img/ui.png
- title: API
description: Hd Security 所有的 API 介绍
link: /07.API/01.API - 登录/
images: /img/other.png
---
```
:::
### 主题配置
在首页 `index.md` 的 `frontmatter`,可以覆盖 `config` 主题配置的首页相关选项:
* `banner` 横幅
* `topArticle` 精选文章
* `category` 分类
* `tag` 标签
* `friendLink` 友情链接
* `docAnalysis` 站点分析
* `post` 文章列表
* `article` 文章信息(作者、创建时间、分类、标签等)
* `page` 分页
* ...
在首页 `index.md` 的 `frontmatter` 中配置时,建议以 `tk` 开头,然后是主题配置的选项,举个示例:
```yaml
---
tk:
banner:
enabled: true
bgStyle: fullImg
imgSrc:
- /img/bg1.jpg
- /img/bg2.jpg
category:
enabled: true
limit: 7
article:
showIcon: false
page:
pageSize: 20
---
```
这些配置将会覆盖 `config` 主题配置中的对应选项。
::: tip
不以 `tk` 开头也是可以的,Teek 支持的 frontmatter 既可以是 `tk.xx.xx`,也可以是 `xx.xx`,其中 `tk.xx.xx` 优先级更高。
:::
## 文章页配置
在文章页的 `frontmatter`,可以覆盖 `config` 主题配置的文章页相关选项:
* `author` 作者信息
* `article` 文章信息(作者、创建时间、分类、标签等)
* `breadcrumb` 面包屑
* `articleShare` 文章分享
* `appreciation` 赞赏
* ...
在文章页的 `frontmatter` 中配置时,直接填写 `config` 主题配置的对应选项,举个示例:
```yaml
---
author:
name: TianKe
link: https://github.com/Kele-Bingtang/vitepress-theme-teek
article:
showCategory: true
breadcrumb:
separator: -
---
```
## 文章配置
除了支持覆盖主题配置的选项,Teek 还提供了以下额外的选项:
```yaml
---
title: 标题
date: 2025-03-07 01:16:28
permalink: /pages/b1ad26
categories:
- 分类 1
- 分类 2
tags:
- 标签 1
titleTag: 原创
top: true
sticky: 1
sidebar: true
article: true
comment: true
description: 文章摘要
coverImg: /img/web.png
docAnalysis: true
inCatalogue: true
autoTitle: true
articleUpdate: true
inHomePost: true
sidebarSort: 9999
sidebarPrefix: "侧边栏前缀"
sidebarSuffix: "侧边栏后缀"
articleBanner: true
coverBgColor: "#395AE3"
---
```
### title
* 类型:`string`
页面标题,将作为一级标题显示在页面上。
支持填写 HTML 标签 :
::: code-group
```yaml [基础 HTML]
---
title: frontmatter 配置 原创
---
```
```yaml [Badge 组件]
---
title: frontmatter 配置