diff --git a/docs/.vuepress/notes/zh/theme-guide.ts b/docs/.vuepress/notes/zh/theme-guide.ts
index 0f35a093..00d95870 100644
--- a/docs/.vuepress/notes/zh/theme-guide.ts
+++ b/docs/.vuepress/notes/zh/theme-guide.ts
@@ -60,6 +60,7 @@ export const themeGuide = defineNoteConfig({
items: [
'intro',
'features',
+ 'copy-code',
'code-tabs',
'import',
'twoslash',
@@ -118,7 +119,6 @@ export const themeGuide = defineNoteConfig({
prefix: 'features',
items: [
'icon',
- 'copy-code',
'search',
'comments',
'bulletin',
diff --git a/docs/notes/theme/config/intro.md b/docs/notes/theme/config/intro.md
index 0de81d49..2ce59c03 100644
--- a/docs/notes/theme/config/intro.md
+++ b/docs/notes/theme/config/intro.md
@@ -36,7 +36,7 @@ VuePress 站点的基本配置文件是 `.vuepress/config.js` ,但也同样支
基础配置文件示例:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { viteBundler } from '@vuepress/bundler-vite'
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -64,7 +64,7 @@ export default defineUserConfig({
一般我们使用 `.vuepress/config.js` 或者 `.vuepress/config.ts` 来配置主题。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -122,7 +122,10 @@ export default defineUserConfig({
- **plume.config.ts**
:::
-```ts title="plume.config.ts"
+```ts title="plume.config.ts" twoslash
+// @filename: ./navbar.ts
+export default []
+// ---cut---
import { defineThemeConfig } from 'vuepress-theme-plume'
import navbar from './navbar'
@@ -149,7 +152,7 @@ export default defineThemeConfig({
如果你不希望按照 VuePress 默认的配置文件路径管理你的主题配置文件,
你也可以在 VuePress 配置文件中指定自己的主题配置文件路径。
-```ts
+```ts title=".vuepress/config.ts" twoslash
import path from 'node:path'
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/config/locales.md b/docs/notes/theme/config/locales.md
index 756f1e12..e1903438 100644
--- a/docs/notes/theme/config/locales.md
+++ b/docs/notes/theme/config/locales.md
@@ -30,7 +30,7 @@ permalink: /config/locales/
@tab .vuepress/config.ts
-```ts
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -48,7 +48,7 @@ export default defineUserConfig({
@tab .vuepress/plume.config.ts
-```ts
+```ts twoslash
import { defineThemeConfig } from 'vuepress-theme-plume'
export default defineThemeConfig({
diff --git a/docs/notes/theme/config/markdown.md b/docs/notes/theme/config/markdown.md
index 82446eec..93be6a43 100644
--- a/docs/notes/theme/config/markdown.md
+++ b/docs/notes/theme/config/markdown.md
@@ -11,7 +11,7 @@ badge:
Markdown 配置用于控制 Markdown 的行为。此配置聚合了主题为 markdown 增强的各种功能的配置。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -33,10 +33,13 @@ export default defineUserConfig({
**默认配置:**
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
export default defineUserConfig({
theme: plumeTheme({
- // [!code focus:9]
+ // [!code focus:11]
markdown: {
hint: true,
alert: true,
@@ -44,9 +47,9 @@ export default defineUserConfig({
plot: true,
icons: true,
math: { type: 'katex' },
- include: true,
- codeTabs: true,
- tabs: true,
+ include: {
+ // ...option
+ },
},
}),
})
diff --git a/docs/notes/theme/config/navbar.md b/docs/notes/theme/config/navbar.md
index 837f8925..80ed738c 100644
--- a/docs/notes/theme/config/navbar.md
+++ b/docs/notes/theme/config/navbar.md
@@ -15,7 +15,11 @@ permalink: /config/navigation/
默认配置如下:
-```ts
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -31,6 +35,23 @@ export default defineUserConfig({
})
```
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ navbar: [
+ { text: '首页', link: '/' },
+ { text: '博客', link: '/blog/' },
+ { text: '标签', link: '/blog/tags/' },
+ { text: '归档', link: '/blog/archives/' }
+ ]
+})
+```
+
+:::
+
当开启了 多语言配置,则会生成对应语言的导航栏的默认配置:
```ts
@@ -186,13 +207,13 @@ export default defineUserConfig({
## 配置帮助函数
-主题提供了 `defineNavbar(config)` 函数,为主题使用者提供导航栏配置的类型帮助。
+主题提供了 `defineNavbarConfig(config)` 函数,为主题使用者提供导航栏配置的类型帮助。
便于将 `navbar` 配置分离到独立的配置文件中。
-```ts title="navbar.ts"
-import { defineNavbar } from 'vuepress-theme-plume'
+```ts title="navbar.ts" twoslash
+import { defineNavbarConfig } from 'vuepress-theme-plume'
-export default defineNavbar([
+export default defineNavbarConfig([
{ text: '首页', link: '/' },
{ text: '博客', link: '/blog/' },
// ... more
diff --git a/docs/notes/theme/config/notes.md b/docs/notes/theme/config/notes.md
index 50a56345..ac5df591 100644
--- a/docs/notes/theme/config/notes.md
+++ b/docs/notes/theme/config/notes.md
@@ -14,7 +14,11 @@ permalink: /config/notes/
默认配置如下:
-```ts
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -25,6 +29,18 @@ export default defineUserConfig({
})
```
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ notes: { link: '/', dir: 'notes', notes: [] }, // [!code highlight]
+})
+```
+
+:::
+
如果启用了 多语言配置, 你 也可以在 `locales` 字段中 分别配置 `notes`
```ts
diff --git a/docs/notes/theme/config/plugins/README.md b/docs/notes/theme/config/plugins/README.md
index 92f04147..529c5386 100644
--- a/docs/notes/theme/config/plugins/README.md
+++ b/docs/notes/theme/config/plugins/README.md
@@ -10,7 +10,7 @@ permalink: /config/plugins/
所有主题内部使用的插件, 均在 `plugins` 字段中进行配置。
-``` js title=".vuepress/config.ts"
+``` js title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/config/plugins/reading-time.md b/docs/notes/theme/config/plugins/reading-time.md
index 3fee1029..46959bc7 100644
--- a/docs/notes/theme/config/plugins/reading-time.md
+++ b/docs/notes/theme/config/plugins/reading-time.md
@@ -12,7 +12,7 @@ permalink: /config/plugins/reading-time/
默认配置:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/config/plugins/search.md b/docs/notes/theme/config/plugins/search.md
index d2f00371..579ec846 100644
--- a/docs/notes/theme/config/plugins/search.md
+++ b/docs/notes/theme/config/plugins/search.md
@@ -16,7 +16,7 @@ permalink: /config/plugins/search/
默认配置:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -81,7 +81,7 @@ interface SearchBoxLocale {
### 启用
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/config/plugins/shiki.md b/docs/notes/theme/config/plugins/shiki.md
index 840632b9..0596a2e2 100644
--- a/docs/notes/theme/config/plugins/shiki.md
+++ b/docs/notes/theme/config/plugins/shiki.md
@@ -30,7 +30,7 @@ Shiki 支持多种编程语言。
默认配置:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/config/plugins/watermark.md b/docs/notes/theme/config/plugins/watermark.md
index 5b676463..1188b6f2 100644
--- a/docs/notes/theme/config/plugins/watermark.md
+++ b/docs/notes/theme/config/plugins/watermark.md
@@ -12,7 +12,7 @@ permalink: /config/watermark/
## 使用
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -22,7 +22,6 @@ export default defineUserConfig({
watermark: {
// enabled: false, // boolean 类型控制是否全局启用
enabled: page => true, // function 类型 过滤哪些页面启用水印
- delay: 500, // 添加水印的延时。以毫秒为单位。
/**
* 是否全屏水印,默认为 `true`,
@@ -76,18 +75,6 @@ export default defineUserConfig({
默认插入到 body 中,可以指定插入到页面的某个元素中。
-### delay
-
-- 类型: `number`
-
-- 默认值: `500`
-
-- 详情:添加水印的延时。以毫秒为单位。
-
- 延迟时间取决于页面过渡动画时间,可以根据实际情况调整。
-
- 如果水印的父元素在切换页面时被重新渲染,那么延迟时间应该比页面过渡时间长一些。
-
## Frontmatter
### watermark
diff --git a/docs/notes/theme/config/sidebar.md b/docs/notes/theme/config/sidebar.md
index 64ac1873..a4af622c 100644
--- a/docs/notes/theme/config/sidebar.md
+++ b/docs/notes/theme/config/sidebar.md
@@ -21,11 +21,15 @@ permalink: /config/sidebar/
你可以在 `notes` 目录下创建多个 `note` ,在每一个 `note` 中单独配置 `sidebar`:
-```ts title=".vuepress/config.ts"
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { defineNoteConfig, plumeTheme } from 'vuepress-theme-plume'
-// [!code ++:9]
+// [!code ++:8]
const noteA = defineNoteConfig({
dir: 'note A',
link: '/note-a/',
@@ -46,6 +50,32 @@ export default defineUserConfig({
})
```
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineNoteConfig, defineThemeConfig } from 'vuepress-theme-plume'
+
+// [!code ++:8]
+const noteA = defineNoteConfig({
+ dir: 'note A',
+ link: '/note-a/',
+ sidebar: [
+ { text: 'one item', link: 'one' },
+ { text: 'two item', link: 'two' },
+ ]
+})
+
+export default defineThemeConfig({
+ notes: {
+ link: '/',
+ dir: 'notes',
+ notes: [noteA], // [!code ++]
+ },
+})
+```
+
+:::
+
主题提供了 `defineNoteConfig` 来帮助你配置 note , 你可以参考 [这里](./notes.md)来查看如何配置。
## 通用 Sidebar 配置
@@ -53,7 +83,11 @@ export default defineUserConfig({
如果你不想使用 `notes` 的方式来管理系列文章,但又期望通过侧边栏来导航到不同的文章,
可以通过 [sidebar](../config/theme.md#sidebar) 通用配置来实现。
-```ts title=".vuepress/config.ts"
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -70,4 +104,22 @@ export default defineUserConfig({
})
```
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ notes: false,
+ sidebar: {
+ '/config/': [
+ { text: '侧边栏配置', link: 'sidebar-1' },
+ { text: '侧边栏配置', link: 'sidebar-2' },
+ ]
+ }
+})
+```
+
+:::
+
完整侧边栏使用说明,请查看 [此文档](../guide/quick-start/document.md) 。
diff --git a/docs/notes/theme/config/theme.md b/docs/notes/theme/config/theme.md
index ab692a7a..26e46d7b 100644
--- a/docs/notes/theme/config/theme.md
+++ b/docs/notes/theme/config/theme.md
@@ -24,7 +24,7 @@ permalink: /config/theme/
@tab .vuepress/config.ts
-```ts
+```ts twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -37,7 +37,7 @@ export default defineUserConfig({
@tab .vuepress/plume.config.ts
-```ts
+```ts twoslash
import { defineThemeConfig } from 'vuepress-theme-plume'
export default defineThemeConfig({
diff --git a/docs/notes/theme/guide/chart/echarts.md b/docs/notes/theme/guide/chart/echarts.md
index 5f69fa25..cde65228 100644
--- a/docs/notes/theme/guide/chart/echarts.md
+++ b/docs/notes/theme/guide/chart/echarts.md
@@ -88,7 +88,7 @@ const option = {
你可以在 [客户端配置文件](https://vuejs.press/zh/guide/configuration.html##使用脚本) 中导入并使用 `defineEchartsConfig` 来自定义 Echarts:
```ts
-import { defineEchartsConfig } from 'vuepress-theme-plume/client'
+import { defineEchartsConfig } from 'vuepress-plugin-md-enhance/client'
import { defineClientConfig } from 'vuepress/client'
defineEchartsConfig({
diff --git a/docs/notes/theme/guide/chart/mermaid.md b/docs/notes/theme/guide/chart/mermaid.md
index c432357e..cf601856 100644
--- a/docs/notes/theme/guide/chart/mermaid.md
+++ b/docs/notes/theme/guide/chart/mermaid.md
@@ -90,7 +90,7 @@ export default defineUserConfig({
中导入并使用 `defineMermaidConfig` 来自定义 Mermaid 配置:
```ts
-import { defineMermaidConfig } from 'vuepress-theme-plume/client'
+import { defineMermaidConfig } from 'vuepress-plugin-md-enhance/client'
import { defineClientConfig } from 'vuepress/client'
defineMermaidConfig({
diff --git a/docs/notes/theme/guide/code/copy-code.md b/docs/notes/theme/guide/code/copy-code.md
new file mode 100644
index 00000000..5fcc4d7e
--- /dev/null
+++ b/docs/notes/theme/guide/code/copy-code.md
@@ -0,0 +1,102 @@
+---
+title: 代码复制
+icon: ph:code
+createTime: 2024/03/04 09:59:29
+permalink: /guide/code/copy-code/
+---
+
+## 概述
+
+该功能由 [@vuepress/plugin-copy-code](https://ecosystem.vuejs.press/zh/plugins/features/copy-code.html) 提供支持。
+
+主题默认启用了代码复制功能。支持 一键复制 在 文章中 展示的代码。
+
+默认情况下, 主题会为每一个 代码块 添加一个复制按钮。该按钮仅在桌面端显示。
+
+当鼠标悬停在 代码块 上时,在右上角会出现一个复制按钮。
+
+## 配置
+
+在 `.vuepress/config.ts` 配置文件中,修改 代码复制的行为:
+
+```ts title=".vuepress/config.ts"
+export default defineUserConfig({
+ theme: plumeTheme({
+ // copyCode: false // 禁用代码复制
+ copyCode: {
+ // ...更多配置
+ }
+ })
+})
+```
+
+### showInMobile
+
+- **类型:** `boolean`
+- **默认值:** `false`
+
+是否在移动端显示复制按钮。
+
+### ignoreSelector
+
+- **类型:** `string | string[]`
+- **默认值:** `[]`
+
+代码块中的元素选择器,用于在复制时忽略相关元素。
+
+例如: `['.token.comment']` 将忽略代码块中类名为 `.token.comment` 的节点 (这会在 prismjs 中忽略注释)。
+
+### inlineSelector
+
+- **类型:** `string | string[] | boolean`
+- **默认值:** `false`
+
+是否在双击时复制行内代码内容。
+
+`boolean`: 是否在双击时复制行内代码内容。
+
+`string[] | string`: 选择器,表示需要复制的行内代码内容。
+
+### transform
` 中代码块内容进行修改。该选项仅在使用 `useCopyCode()` 时有效。
+
+## 组合式 API
+
+该功能的组合式 API 可以在 `.vuepress/client.ts` 中配置:
+
+```ts title=".vuepress/client.ts"
+import { defineClientConfig } from '@vuepress/client'
+import { useCopyCode } from '@vuepress/plugin-copy-code/client'
+
+export default defineClientConfig({
+ setup() {
+ useCopyCode({
+ // ...
+ })
+ },
+})
+```
+
+### 示例
+
+代码复制时,添加 copyright 信息
+
+```ts title=".vuepress/client.ts"
+import { defineClientConfig } from '@vuepress/client'
+import { useCopyCode } from '@vuepress/plugin-copy-code/client'
+
+export default defineClientConfig({
+ setup() {
+ useCopyCode({
+ transform: (preElement) => {
+ // 插入版权信息
+ pre.innerHTML += `\n Copied by vuepress-theme-plume`
+ },
+ })
+ },
+})
+```
diff --git a/docs/notes/theme/guide/features/copy-code.md b/docs/notes/theme/guide/features/copy-code.md
deleted file mode 100644
index ffe4d884..00000000
--- a/docs/notes/theme/guide/features/copy-code.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: 代码复制
-icon: ph:code
-createTime: 2024/03/04 09:59:29
-permalink: /guide/features/copy-code/
----
-
-## 使用
-
-主题默认启用了代码复制功能。支持 一键复制 在 文章中 展示的代码。
-
-默认情况下, 主题会为每一个 代码块 添加一个复制按钮。该按钮仅在桌面端显示。
-
-当鼠标悬停在 代码块 上时,在右上角会出现一个复制按钮。
-
-## 效果
-
-### 代码块
-
-```js
-const a = 1
-
-export default a
-```
-
-### 代码组
-
-::: code-tabs
-@tab foo.js
-
-```js
-const a = 1
-
-export default a
-```
-
-@tab bar.js
-
-```js
-const b = 1
-
-export default b
-```
-
-:::
diff --git a/docs/notes/theme/guide/quick-start/blog.md b/docs/notes/theme/guide/quick-start/blog.md
index 5bedf428..44819dd7 100644
--- a/docs/notes/theme/guide/quick-start/blog.md
+++ b/docs/notes/theme/guide/quick-start/blog.md
@@ -22,7 +22,10 @@ tags:
主题默认启用 博客功能,通常您无需进行额外的配置。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
export default defineUserConfig({
theme: plumeTheme({
// 禁用博客功能
@@ -66,7 +69,10 @@ export default defineUserConfig({
你可以通过 `profile` 属性来设置博主头像等相关信息。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
export default defineUserConfig({
theme: plumeTheme({
profile: {
@@ -277,7 +283,10 @@ coverStyle:
虽然主题支持为每个文章的封面图使用不同的配置,出于整体布局风格的考虑,以及简化配置的目的,
主题还支持为封面图预设配置:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
export default defineUserConfig({
theme: plumeTheme({
@@ -438,7 +447,7 @@ config:
(还可以重新修改 分类页/标签页/归档页的链接地址)
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/guide/quick-start/document.md b/docs/notes/theme/guide/quick-start/document.md
index c5dedc0f..abc48c70 100644
--- a/docs/notes/theme/guide/quick-start/document.md
+++ b/docs/notes/theme/guide/quick-start/document.md
@@ -38,7 +38,7 @@ tags:
接下来,在配置文件中配置 `notes`:
-```js title=".vuepress/config.ts"
+```js title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -91,7 +91,7 @@ export default defineUserConfig({
@tab .vuepress/notes.ts
-```ts
+```ts twoslash
import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'
/**
@@ -121,7 +121,11 @@ export default defineNotesConfig({
@tab .vuepress/config.ts
-```ts
+```ts twoslash
+// @filename: ./notes.ts
+export default {}
+
+// ---cut---
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
import notes from './notes' // [!code ++]
@@ -314,10 +318,7 @@ interface SidebarItem {
当 传入类型为 `string` 时,表示 markdown 文件的路径:
-::: code-tabs
-@tab .vuepress/notes.ts
-
-```ts
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -334,14 +335,12 @@ const typescript = defineNoteConfig({
// ... other code
```
-:::
-
你也可以省略 `.md` 文件后缀,简写为 `/guide/intro` 。主题会解析 对应的文件,获取 **标题** 和 **页面链接地址**
并将其转换为 `{ text: string, link: string }` 的数据形式。
当传入类型为 `SidebarItem` 时:
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -359,7 +358,7 @@ const typescript = defineNoteConfig({
也可以进行多层嵌套:
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -393,7 +392,7 @@ const typescript = defineNoteConfig({
需要注意的是,`items` 中的链接 仅有 相对路径的链接才会与 `prefix` 拼接,而绝对路径则不进行处理。
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -423,7 +422,7 @@ const typescript = defineNoteConfig({
则会与 上一层的 `prefix` 拼接,再与 当前层级 `items` 内的 `link` 拼接,如果 `prefix` 是绝对路径,则不与
上一层级 `prefix` 拼接。
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -465,7 +464,7 @@ const typescript = defineNoteConfig({
为侧边栏添加 图标 有助于 侧边栏更好的呈现。得益于 [iconify](https://iconify.design/) 这个强大的开源图标库,
你可以使用超过 `200k` 的图标,仅需要添加 `icon` 配置即可。
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -486,7 +485,7 @@ const typescript = defineNoteConfig({
也可以使用本地图标,或者本地图片:
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
@@ -535,7 +534,7 @@ icon: ep:guide
在组内对 项 进行分隔 是一个相对小众的需求,它在组的项比较多,但又不适合拆分为多个组,或者组内拆分多组的情况下,
可能会比较适用,它提供了一个平级的,使用辅助文本颜色显示一个分隔项名 的方式,对项进行简单的分隔。
-```ts title=".vuepress/notes.ts"
+```ts title=".vuepress/notes.ts" twoslash
import { defineNoteConfig } from 'vuepress-theme-plume'
const typescript = defineNoteConfig({
diff --git a/docs/notes/theme/guide/quick-start/locales.md b/docs/notes/theme/guide/quick-start/locales.md
index 529ef8a0..2d66c2c0 100644
--- a/docs/notes/theme/guide/quick-start/locales.md
+++ b/docs/notes/theme/guide/quick-start/locales.md
@@ -42,7 +42,7 @@ tags:
在 `.vuepress/config.ts` 中,声明默认的语言:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
export default defineUserConfig({
@@ -65,7 +65,7 @@ export default defineUserConfig({
在 `.vuepress/config.ts` 中配置:
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
export default defineUserConfig({
@@ -98,9 +98,9 @@ export default defineUserConfig({
`locales` 支持 所有主题配置项。
-```ts title=".vuepress/config.ts"
-import { plumeTheme } from '@vuepress-plume/vuepress-theme-plume'
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
lang: 'zh-CN',
diff --git a/docs/notes/theme/guide/quick-start/project-structure.md b/docs/notes/theme/guide/quick-start/project-structure.md
index 23e6aed0..3cd8c39e 100644
--- a/docs/notes/theme/guide/quick-start/project-structure.md
+++ b/docs/notes/theme/guide/quick-start/project-structure.md
@@ -94,7 +94,7 @@ export default defineClientConfig({
为 VuePress 配置文件,你需要在这里进行一些必要的配置,比如 主题、插件、构建工具等。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { viteBundler } from '@vuepress/bundler-vite'
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
@@ -117,7 +117,17 @@ export default defineUserConfig({
::: code-tabs
@tab .vuepress/plume.config.ts
-```ts
+```ts twoslash
+// @filename: ./navbar.ts
+export default []
+
+// @filename: ./notes.ts
+export default {
+ dir: '/notes/',
+ link: '/',
+ notes: [],
+}
+// ---cut---
import { defineThemeConfig } from 'vuepress-theme-plume'
import navbar from './navbar'
import notes from './notes'
@@ -135,7 +145,7 @@ export default defineThemeConfig({
@tab .vuepress/navbar.ts
-```ts
+```ts twoslash
import { defineNavbarConfig } from 'vuepress-theme-plume'
export default defineNavbarConfig([
@@ -145,11 +155,13 @@ export default defineNavbarConfig([
@tab .vuepress/notes.ts
-```ts
+```ts twoslash
import { defineNotesConfig } from 'vuepress-theme-plume'
export default defineNotesConfig({
- // ...
+ dir: '/notes/',
+ link: '/',
+ notes: [],
})
```
diff --git a/docs/notes/theme/guide/quick-start/usage.md b/docs/notes/theme/guide/quick-start/usage.md
index 2049567c..14be08be 100644
--- a/docs/notes/theme/guide/quick-start/usage.md
+++ b/docs/notes/theme/guide/quick-start/usage.md
@@ -159,7 +159,7 @@ cd open-source # 进入 D: 分区下的 open-source 目录
- ### 在 `docs/.vuepress/config.{js,ts}` 中配置主题
- ``` ts title="docs/.vuepress/config.ts"
+ ``` ts title="docs/.vuepress/config.ts" twoslash
import { viteBundler } from '@vuepress/bundler-vite'
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
diff --git a/docs/notes/theme/guide/quick-start/write.md b/docs/notes/theme/guide/quick-start/write.md
index bde7ca6e..a4493aa6 100644
--- a/docs/notes/theme/guide/quick-start/write.md
+++ b/docs/notes/theme/guide/quick-start/write.md
@@ -86,7 +86,7 @@ __永久链接__ 指的是,文章发布后的 访问地址,这个地址一
你可能不想主题做额外的自动生成,希望由自己完全掌控。这完全没问题,主题支持通过配置来控制 自动生成 frontmatter 的行为。
通过 [主题配置 > autoFrontmatter](../../config/theme.md#autofrontmatter) 即可轻松做到。
-```ts title=".vuepress/config.ts"
+```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'