diff --git a/cli/package.json b/cli/package.json
index f03d5303..b35715c4 100644
--- a/cli/package.json
+++ b/cli/package.json
@@ -40,8 +40,8 @@
},
"plume-deps": {
"vuepress": "2.0.0-rc.24",
- "vue": "^3.5.21",
+ "vue": "^3.5.22",
"http-server": "^14.1.1",
- "typescript": "^5.9.2"
+ "typescript": "^5.9.3"
}
}
diff --git a/cli/templates/.vuepress/collections.ts.handlebars b/cli/templates/.vuepress/collections.ts.handlebars
new file mode 100644
index 00000000..e2df950c
--- /dev/null
+++ b/cli/templates/.vuepress/collections.ts.handlebars
@@ -0,0 +1,124 @@
+/**
+ * @see https://theme-plume.vuejs.press/guide/collection/ 查看文档了解配置详情。
+ *
+ * Collections 配置文件,它在 `.vuepress/plume.config.{{#if useTs}}ts{{else}}js{{/if}}` 中被导入。
+ *
+ * 请注意,你应该先在这里配置好 Collections,然后再启动 vuepress,主题会在启动 vuepress 时,
+ * 读取这里配置的 Collections,然后在与 Collection 相关的 Markdown 文件中,自动生成 permalink。
+ *
+ * collection 的 type 为 `post` 时,表示为 文档列表类型(即没有侧边导航栏,有文档列表页)
+ * 可用于实现如 博客、专栏 等以文章列表聚合形式的文档集合 (内容相对碎片化的)
+ *
+ * collection 的 type 为 `doc` 时,表示为文档类型(即有侧边导航栏)
+ * 可用于实现如 笔记、知识库、文档等以侧边导航栏形式的文档集合 (内容强关联、成体系的)
+ * 如果发现 侧边栏没有显示,那么请检查你的配置是否正确,以及 Markdown 文件中的 permalink
+ * 是否是以对应的 Collection 配置的 link 的前缀开头。 是否展示侧边栏是根据 页面链接 的前缀 与 `collection.link`
+ * 的前缀是否匹配来决定。
+ */
+
+/**
+ * 在受支持的 IDE 中会智能提示配置项。
+ *
+ * - `defineCollections` 是用于定义 collection 集合的帮助函数
+ * - `defineCollection` 是用于定义单个 collection 配置的帮助函数
+ *
+ * 通过 `defineCollection` 定义的 collection 配置,应该填入 `defineCollections` 中
+ */
+import { defineCollection, defineCollections } from 'vuepress-theme-plume'
+
+{{#if multiLanguage}}
+{{#each locales}}
+/* =================== locale: {{ lang }} ======================= */
+
+const {{ prefix }}Blog = defineCollection({
+ // post 类型,这里用于实现 博客功能
+ type: 'post',
+ // 文档集合所在目录,相对于 `docs{{ path }}`
+ dir: 'blog',
+ // 文档标题,它将用于在页面的面包屑导航中显示
+ title: 'Blog',
+ // 文章列表页的链接,如果 `linkPrefix` 未定义,它也将作为 相关的文章的 permalink 的前缀
+ link: '/blog/',
+ // linkPrefix: '/article/', // 相关文章的链接前缀
+ // postList: true, // 是否启用文章列表页
+ // tags: true, // 是否启用标签页
+ // archives: true, // 是否启用归档页
+ // categories: true, // 是否启用分类页
+ // postCover: 'right', // 文章封面位置
+ // pagination: 15, // 每页显示文章数量
+})
+
+const {{ prefix }}DemoDoc = defineCollection({
+ // doc 类型,该类型带有侧边栏
+ type: 'doc',
+ // 文档集合所在目录,相对于 `docs{{ path }}`
+ dir: 'demo',
+ // `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `linkPrefix` 配置作为前缀
+ // 如果 前缀不一致,则无法生成侧边栏。
+ // 所以请确保 markdown 文件的 permalink 都以 `{{ path }}` + `linkPrefix` 开头
+ linkPrefix: '/demo',
+ // 文档标题,它将用于在页面的面包屑导航中显示
+ title: 'Demo',
+ // 手动配置侧边栏结构
+ sidebar: ['', 'foo', 'bar'],
+ // 根据文件结构自动生成侧边栏
+ // sidebar: 'auto',
+})
+
+/**
+ * 导出所有的 collections
+ * ({{ prefix }}Blog 为博客示例,如果不需要博客功能,请删除)
+ * ({{ prefix }}DemoDoc 为参考示例,如果不需要它,请删除)
+ */
+export const {{ prefix }}Collections = defineCollections([
+ {{ prefix }}Blog,
+ {{ prefix }}DemoDoc,
+])
+
+{{/each}}
+{{else}}
+const blog = defineCollection({
+ // post 类型,这里用于实现 博客功能
+ type: 'post',
+ // 文档集合所在目录,相对于 `docs{{ path }}`
+ dir: 'blog',
+ // 文档标题,它将用于在页面的面包屑导航中显示
+ title: 'Blog',
+ // 文章列表页的链接,如果 `linkPrefix` 未定义,它也将作为 相关的文章的 permalink 的前缀
+ link: '/blog/',
+ // linkPrefix: '/article/', // 相关文章的链接前缀
+ // postList: true, // 是否启用文章列表页
+ // tags: true, // 是否启用标签页
+ // archives: true, // 是否启用归档页
+ // categories: true, // 是否启用分类页
+ // postCover: 'right', // 文章封面位置
+ // pagination: 15, // 每页显示文章数量
+})
+
+const demoDoc = defineCollection({
+ // doc 类型,该类型带有侧边栏
+ type: 'doc',
+ // 文档集合所在目录,相对于 `docs{{ path }}`
+ dir: 'demo',
+ // `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `linkPrefix` 配置作为前缀
+ // 如果 前缀不一致,则无法生成侧边栏。
+ // 所以请确保 markdown 文件的 permalink 都以 `linkPrefix` 开头
+ linkPrefix: '/demo',
+ // 文档标题,它将用于在页面的面包屑导航中显示
+ title: 'Demo',
+ // 手动配置侧边栏结构
+ sidebar: ['', 'foo', 'bar'],
+ // 根据文件结构自动生成侧边栏
+ // sidebar: 'auto',
+})
+
+/**
+ * 导出所有的 collections
+ * (blog 为博客示例,如果不需要博客功能,请删除)
+ * (demoDoc 为参考示例,如果不需要它,请删除)
+ */
+export default defineCollection([
+ blog,
+ demoDoc,
+])
+{{/if}}
diff --git a/cli/templates/.vuepress/config.ts.handlebars b/cli/templates/.vuepress/config.ts.handlebars
index d7946e49..9f8f658f 100644
--- a/cli/templates/.vuepress/config.ts.handlebars
+++ b/cli/templates/.vuepress/config.ts.handlebars
@@ -54,23 +54,6 @@ export default defineUserConfig({
// contributors: true,
// changelog: false,
- /**
- * 博客
- * @see https://theme-plume.vuejs.press/config/basic/#blog
- */
- // blog: false, // 禁用博客
- // blog: {
- // postList: true, // 是否启用文章列表页
- // tags: true, // 是否启用标签页
- // archives: true, // 是否启用归档页
- // categories: true, // 是否启用分类页
- // postCover: 'right', // 文章封面位置
- // pagination: 15, // 每页显示文章数量
- // },
-
- /* 博客文章页面链接前缀 */
- article: '/article/',
-
/**
* 编译缓存,加快编译速度
* @see https://theme-plume.vuejs.press/config/basic/#cache
@@ -116,9 +99,9 @@ export default defineUserConfig({
// readingTime: true,
/**
- * markdown
- * @see https://theme-plume.vuejs.press/config/markdown/
- */
+ * markdown
+ * @see https://theme-plume.vuejs.press/config/markdown/
+ */
// markdown: {
// abbr: true, // 启用 abbr 语法 *[label]: content
// annotation: true, // 启用 annotation 语法 [+label]: content
diff --git a/cli/templates/.vuepress/navbar.ts.handlebars b/cli/templates/.vuepress/navbar.ts.handlebars
index 18071fc1..b51db15d 100644
--- a/cli/templates/.vuepress/navbar.ts.handlebars
+++ b/cli/templates/.vuepress/navbar.ts.handlebars
@@ -15,7 +15,7 @@ export const {{prefix}}Navbar = defineNavbarConfig([
{ text: '{{#if isEn}}Archives{{else}}归档{{/if}}', link: '{{ path }}blog/archives/' },
{
text: '{{#if isEn}}Notes{{else}}笔记{{/if}}',
- items: [{ text: '{{#if isEn}}Demo{{else}}示例{{/if}}', link: '{{ path }}notes/demo/README.md' }]
+ items: [{ text: '{{#if isEn}}Demo{{else}}示例{{/if}}', link: '{{ path }}demo/README.md' }]
},
])
@@ -28,7 +28,7 @@ export default defineNavbarConfig([
{ text: '{{#if isEn}}Archives{{else}}归档{{/if}}', link: '/blog/archives/' },
{
text: '{{#if isEn}}Notes{{else}}笔记{{/if}}',
- items: [{ text: '{{#if isEn}}Demo{{else}}示例{{/if}}', link: '/notes/demo/README.md' }]
+ items: [{ text: '{{#if isEn}}Demo{{else}}示例{{/if}}', link: '/demo/README.md' }]
},
])
{{/if}}
diff --git a/cli/templates/.vuepress/notes.ts.handlebars b/cli/templates/.vuepress/notes.ts.handlebars
deleted file mode 100644
index c13e4e43..00000000
--- a/cli/templates/.vuepress/notes.ts.handlebars
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * @see https://theme-plume.vuejs.press/guide/document/ 查看文档了解配置详情。
- *
- * Notes 配置文件,它在 `.vuepress/plume.config.{{#if useTs}}ts{{else}}js{{/if}}` 中被导入。
- *
- * 请注意,你应该先在这里配置好 Notes,然后再启动 vuepress,主题会在启动 vuepress 时,
- * 读取这里配置的 Notes,然后在与 Note 相关的 Markdown 文件中,自动生成 permalink。
- *
- * 如果你发现 侧边栏没有显示,那么请检查你的配置是否正确,以及 Markdown 文件中的 permalink
- * 是否是以对应的 note 配置的 link 的前缀开头。 是否展示侧边栏是根据 页面链接 的前缀 与 `note.link`
- * 的前缀是否匹配来决定。
- */
-
-/**
- * 在受支持的 IDE 中会智能提示配置项。
- *
- * - `defineNoteConfig` 是用于定义单个 note 配置的帮助函数
- * - `defineNotesConfig` 是用于定义 notes 集合的帮助函数
- *
- * 通过 `defineNoteConfig` 定义的 note 配置,应该填入 `defineNotesConfig` 的 notes 数组中
- */
-import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'
-
-{{#if multiLanguage}}
-{{#each locales}}
-/* =================== locale: {{ lang }} ======================= */
-
-const {{ prefix }}DemoNote = defineNoteConfig({
- dir: 'demo',
- // `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `link` 配置作为前缀
- // 如果 前缀不一致,则无法生成侧边栏。
- // 所以请确保 markdown 文件的 permalink 都以 `link` 开头
- link: '/demo',
- // 手动配置侧边栏结构
- sidebar: ['', 'foo', 'bar'],
- // 根据文件结构自动生成侧边栏
- // sidebar: 'auto',
-})
-
-/**
- * 导出所有的 note
- * 每一个 note 都应该填入到 `notes.notes` 数组中
- * ({{ prefix }}DemoNote 为参考示例,如果不需要它,请删除)
- */
-export const {{ prefix }}Notes = defineNotesConfig({
- dir: '{{ removeLeadingSlash path }}notes',
- link: '{{ path }}',
- notes: [{{ prefix }}DemoNote],
-})
-
-{{/each}}
-{{else}}
-const demoNote = defineNoteConfig({
- dir: 'demo',
- // `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `link` 配置作为前缀
- // 如果 前缀不一致,则无法生成侧边栏。
- // 所以请确保 markdown 文件的 permalink 都以 `link` 开头
- link: '/demo',
- // 手动配置侧边栏结构
- sidebar: ['', 'foo', 'bar'],
- // 根据文件结构自动生成侧边栏
- // sidebar: 'auto',
-})
-
-/**
- * 导出所有的 note
- * 每一个 note 都应该填入到 `notes.notes` 数组中
- * (DemoNote 为参考示例,如果不需要它,请删除)
- */
-export default defineNotesConfig({
- dir: 'notes',
- link: '/',
- notes: [demoNote],
-})
-{{/if}}
diff --git a/cli/templates/.vuepress/plume.config.ts.handlebars b/cli/templates/.vuepress/plume.config.ts.handlebars
index fb5684af..49ca144c 100644
--- a/cli/templates/.vuepress/plume.config.ts.handlebars
+++ b/cli/templates/.vuepress/plume.config.ts.handlebars
@@ -12,11 +12,11 @@
import { defineThemeConfig } from 'vuepress-theme-plume'
{{#if multiLanguage}}
+import { enCollections, zhCollections } from './collections'
import { enNavbar, zhNavbar } from './navbar'
-import { enNotes, zhNotes } from './notes'
{{else}}
import navbar from './navbar'
-import notes from './notes'
+import collections from './collections'
{{/if}}
/**
@@ -64,7 +64,7 @@ export default defineThemeConfig({
},
navbar,
- notes,
+ collections,
/**
* 公告板
@@ -102,7 +102,7 @@ export default defineThemeConfig({
},
navbar: {{ prefix }}Navbar,
- notes: {{ prefix }}Notes,
+ collections: {{ prefix }}Collections,
/**
* 公告板
diff --git a/cli/templates/docs/en/preview/custom-component.example.md b/cli/templates/docs/en/blog/preview/custom-component.example.md
similarity index 100%
rename from cli/templates/docs/en/preview/custom-component.example.md
rename to cli/templates/docs/en/blog/preview/custom-component.example.md
diff --git a/cli/templates/docs/en/preview/markdown.md b/cli/templates/docs/en/blog/preview/markdown.md
similarity index 100%
rename from cli/templates/docs/en/preview/markdown.md
rename to cli/templates/docs/en/blog/preview/markdown.md
diff --git a/cli/templates/docs/en/notes/demo/README.md b/cli/templates/docs/en/demo/README.md
similarity index 100%
rename from cli/templates/docs/en/notes/demo/README.md
rename to cli/templates/docs/en/demo/README.md
diff --git a/cli/templates/docs/en/notes/demo/bar.md b/cli/templates/docs/en/demo/bar.md
similarity index 100%
rename from cli/templates/docs/en/notes/demo/bar.md
rename to cli/templates/docs/en/demo/bar.md
diff --git a/cli/templates/docs/en/notes/demo/foo.md b/cli/templates/docs/en/demo/foo.md
similarity index 100%
rename from cli/templates/docs/en/notes/demo/foo.md
rename to cli/templates/docs/en/demo/foo.md
diff --git a/cli/templates/docs/zh/preview/custom-component.example.md b/cli/templates/docs/zh/blog/preview/custom-component.example.md
similarity index 100%
rename from cli/templates/docs/zh/preview/custom-component.example.md
rename to cli/templates/docs/zh/blog/preview/custom-component.example.md
diff --git a/cli/templates/docs/zh/preview/markdown.md b/cli/templates/docs/zh/blog/preview/markdown.md
similarity index 100%
rename from cli/templates/docs/zh/preview/markdown.md
rename to cli/templates/docs/zh/blog/preview/markdown.md
diff --git a/cli/templates/docs/zh/notes/demo/README.md b/cli/templates/docs/zh/demo/README.md
similarity index 100%
rename from cli/templates/docs/zh/notes/demo/README.md
rename to cli/templates/docs/zh/demo/README.md
diff --git a/cli/templates/docs/zh/notes/demo/bar.md b/cli/templates/docs/zh/demo/bar.md
similarity index 100%
rename from cli/templates/docs/zh/notes/demo/bar.md
rename to cli/templates/docs/zh/demo/bar.md
diff --git a/cli/templates/docs/zh/notes/demo/foo.md b/cli/templates/docs/zh/demo/foo.md
similarity index 100%
rename from cli/templates/docs/zh/notes/demo/foo.md
rename to cli/templates/docs/zh/demo/foo.md
diff --git a/docs/.vuepress/client.ts b/docs/.vuepress/client.ts
index 62615b1b..174c20d7 100644
--- a/docs/.vuepress/client.ts
+++ b/docs/.vuepress/client.ts
@@ -2,6 +2,7 @@ import type { ClientConfig } from 'vuepress/client'
import { defineMermaidConfig } from '@vuepress/plugin-markdown-chart/client'
import { h } from 'vue'
import { Layout } from 'vuepress-theme-plume/client'
+import VPPostItem from 'vuepress-theme-plume/components/Posts/VPPostItem.vue'
import { defineClientConfig } from 'vuepress/client'
import AsideNav from '~/components/AsideNav.vue'
import { setupThemeColors } from '~/composables/theme-colors.js'
@@ -14,6 +15,9 @@ defineMermaidConfig({
})
export default defineClientConfig({
+ enhance({ app }) {
+ app.component('VPPostItem', VPPostItem)
+ },
setup() {
setupThemeColors()
},
diff --git a/docs/.vuepress/collections/en/index.ts b/docs/.vuepress/collections/en/index.ts
new file mode 100644
index 00000000..470db265
--- /dev/null
+++ b/docs/.vuepress/collections/en/index.ts
@@ -0,0 +1,8 @@
+import { defineCollections, type ThemeCollections } from 'vuepress-theme-plume'
+import { themeConfig } from './theme-config.js'
+import { themeGuide } from './theme-guide.js'
+
+export const enCollections: ThemeCollections = defineCollections([
+ themeGuide,
+ themeConfig,
+])
diff --git a/docs/.vuepress/notes/en/theme-config.ts b/docs/.vuepress/collections/en/theme-config.ts
similarity index 55%
rename from docs/.vuepress/notes/en/theme-config.ts
rename to docs/.vuepress/collections/en/theme-config.ts
index 0f34ec4f..7703a50f 100644
--- a/docs/.vuepress/notes/en/theme-config.ts
+++ b/docs/.vuepress/collections/en/theme-config.ts
@@ -1,9 +1,11 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
+import type { ThemeCollectionItem } from 'vuepress-theme-plume'
+import { defineCollection } from 'vuepress-theme-plume'
-export const themeConfig: ThemeNote = defineNoteConfig({
- dir: 'theme/config',
- link: '/config/',
+export const themeConfig: ThemeCollectionItem = defineCollection({
+ type: 'doc',
+ dir: 'config',
+ title: 'Config',
+ linkPrefix: '/config/',
sidebar: [
{
text: 'Config',
diff --git a/docs/.vuepress/notes/en/theme-guide.ts b/docs/.vuepress/collections/en/theme-guide.ts
similarity index 82%
rename from docs/.vuepress/notes/en/theme-guide.ts
rename to docs/.vuepress/collections/en/theme-guide.ts
index 91637f65..aa12d876 100644
--- a/docs/.vuepress/notes/en/theme-guide.ts
+++ b/docs/.vuepress/collections/en/theme-guide.ts
@@ -1,9 +1,11 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
+import type { ThemeCollectionItem } from 'vuepress-theme-plume'
+import { defineCollection } from 'vuepress-theme-plume'
-export const themeGuide: ThemeNote = defineNoteConfig({
- dir: 'theme/guide',
- link: '/guide/',
+export const themeGuide: ThemeCollectionItem = defineCollection({
+ type: 'doc',
+ dir: 'guide',
+ title: 'Guide',
+ linkPrefix: '/guide/',
sidebar: [
{
text: 'Quick Start',
diff --git a/docs/.vuepress/notes/index.ts b/docs/.vuepress/collections/index.ts
similarity index 100%
rename from docs/.vuepress/notes/index.ts
rename to docs/.vuepress/collections/index.ts
diff --git a/docs/.vuepress/collections/zh/index.ts b/docs/.vuepress/collections/zh/index.ts
new file mode 100644
index 00000000..9ec13e7a
--- /dev/null
+++ b/docs/.vuepress/collections/zh/index.ts
@@ -0,0 +1,10 @@
+import { defineCollections, type ThemeCollections } from 'vuepress-theme-plume'
+import { themeConfig } from './theme-config.js'
+import { themeGuide } from './theme-guide.js'
+import { tools } from './tools.js'
+
+export const zhCollections: ThemeCollections = defineCollections([
+ themeGuide,
+ themeConfig,
+ tools,
+])
diff --git a/docs/.vuepress/notes/zh/theme-config.ts b/docs/.vuepress/collections/zh/theme-config.ts
similarity index 72%
rename from docs/.vuepress/notes/zh/theme-config.ts
rename to docs/.vuepress/collections/zh/theme-config.ts
index f85b554b..d2ffce4f 100644
--- a/docs/.vuepress/notes/zh/theme-config.ts
+++ b/docs/.vuepress/collections/zh/theme-config.ts
@@ -1,9 +1,11 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
+import type { ThemeCollectionItem } from 'vuepress-theme-plume'
+import { defineCollection } from 'vuepress-theme-plume'
-export const themeConfig: ThemeNote = defineNoteConfig({
- dir: 'theme/config',
- link: '/config/',
+export const themeConfig: ThemeCollectionItem = defineCollection({
+ type: 'doc',
+ title: '配置',
+ dir: 'config',
+ linkPrefix: '/config/',
sidebar: [
{
text: '配置',
@@ -13,8 +15,8 @@ export const themeConfig: ThemeNote = defineNoteConfig({
'theme',
'locales',
'navbar',
- 'notes',
'sidebar',
+ 'collections',
'markdown',
],
},
diff --git a/docs/.vuepress/notes/zh/theme-guide.ts b/docs/.vuepress/collections/zh/theme-guide.ts
similarity index 89%
rename from docs/.vuepress/notes/zh/theme-guide.ts
rename to docs/.vuepress/collections/zh/theme-guide.ts
index 49ecbe52..18f56c28 100644
--- a/docs/.vuepress/notes/zh/theme-guide.ts
+++ b/docs/.vuepress/collections/zh/theme-guide.ts
@@ -1,9 +1,11 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
+import type { ThemeCollectionItem } from 'vuepress-theme-plume'
+import { defineCollection } from 'vuepress-theme-plume'
-export const themeGuide: ThemeNote = defineNoteConfig({
- dir: 'theme/guide',
- link: '/guide/',
+export const themeGuide: ThemeCollectionItem = defineCollection({
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ linkPrefix: '/guide/',
sidebar: [
{
text: '从这里开始',
@@ -14,9 +16,13 @@ export const themeGuide: ThemeNote = defineNoteConfig({
'intro',
'usage',
'project-structure',
+ {
+ text: '集合',
+ link: 'collection',
+ items: ['collection-post', 'collection-doc'],
+ },
+ 'sidebar',
'write',
- 'blog',
- 'document',
'locales',
'deployment',
'optimize-build',
diff --git a/docs/.vuepress/collections/zh/tools.ts b/docs/.vuepress/collections/zh/tools.ts
new file mode 100644
index 00000000..6143cf10
--- /dev/null
+++ b/docs/.vuepress/collections/zh/tools.ts
@@ -0,0 +1,20 @@
+import type { ThemeCollectionItem } from 'vuepress-theme-plume'
+import { defineCollection } from 'vuepress-theme-plume'
+
+export const tools: ThemeCollectionItem = defineCollection({
+ type: 'doc',
+ dir: 'tools',
+ title: '工具',
+ linkPrefix: '/tools/',
+ sidebar: [
+ {
+ text: '工具',
+ icon: 'tabler:tools',
+ items: [
+ 'custom-theme',
+ 'home-hero-tint-plate',
+ 'caniuse',
+ ],
+ },
+ ],
+})
diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts
index 5463f312..c981be5e 100644
--- a/docs/.vuepress/config.ts
+++ b/docs/.vuepress/config.ts
@@ -28,7 +28,7 @@ export default defineUserConfig({
['meta', { name: 'google-site-verification', content: 'AaTP7bapCAcoO9ZGE67ilpy99GL6tYqtD30tRHjO9Ps' }],
],
- pagePatterns: ['**/*.md', '!**/*.snippet.md', '!.vuepress', '!node_modules', '!docs/notes/theme/guide/代码演示/demo/*'],
+ pagePatterns: ['**/*.md', '!**/*.snippet.md', '!.vuepress', '!node_modules', '!docs/guide/repl/demo/*'],
extendsBundlerOptions(bundlerOptions, app) {
addViteOptimizeDepsInclude(bundlerOptions, app, '@simonwep/pickr')
diff --git a/docs/.vuepress/llmstxtTOC.ts b/docs/.vuepress/llmstxtTOC.ts
index e296c026..c390fa89 100644
--- a/docs/.vuepress/llmstxtTOC.ts
+++ b/docs/.vuepress/llmstxtTOC.ts
@@ -2,13 +2,7 @@ import type { LLMPage, LLMState } from '@vuepress/plugin-llms'
import type { ThemeSidebarItem } from 'vuepress-theme-plume'
import { generateTOCLink as rawGenerateTOCLink } from '@vuepress/plugin-llms'
import { ensureEndingSlash, ensureLeadingSlash } from 'vuepress/shared'
-import { zhNotes } from './notes/zh/index.js'
-
-const noteNames = {
- '/guide/': '指南',
- '/config/': '配置',
- '/tools/': '工具',
-}
+import { zhCollections } from './collections/zh/index.js'
function normalizePath(prefix: string, path = ''): string {
if (path.startsWith('/'))
@@ -79,9 +73,9 @@ export function tocGetter(llmPages: LLMPage[], llmState: LLMState): string {
}
// Notes
- zhNotes.notes.forEach(({ dir, link, sidebar = [] }) => {
- tableOfContent += `### ${noteNames[link]}\n\n`
- const prefix = normalizePath('/notes/', dir)
+ zhCollections.filter(note => note.type === 'doc').forEach(({ dir, title, sidebar = [] }) => {
+ tableOfContent += `### ${title}\n\n`
+ const prefix = normalizePath(dir)
if (sidebar === 'auto') {
tableOfContent += `${processAutoSidebar(prefix).join('')}\n`
}
diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts
index 0c310390..870e62a3 100644
--- a/docs/.vuepress/navbar.ts
+++ b/docs/.vuepress/navbar.ts
@@ -6,13 +6,13 @@ export const zhNavbar: ThemeNavItem[] = defineNavbarConfig([
{
text: '指南',
icon: 'icon-park-outline:guide-board',
- link: '/notes/theme/guide/quick-start/intro.md',
+ link: '/guide/quick-start/intro.md',
activeMatch: '^/guide/',
},
{
text: '配置',
icon: 'icon-park-outline:setting-two',
- link: '/notes/theme/config/intro.md',
+ link: '/config/intro.md',
activeMatch: '^/config/',
},
{
diff --git a/docs/.vuepress/notes/en/index.ts b/docs/.vuepress/notes/en/index.ts
deleted file mode 100644
index af7fd886..00000000
--- a/docs/.vuepress/notes/en/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { ThemeNoteListOptions } from 'vuepress-theme-plume'
-import { defineNotesConfig } from 'vuepress-theme-plume'
-import { themeConfig } from './theme-config'
-import { themeGuide } from './theme-guide'
-
-export const enNotes: ThemeNoteListOptions = defineNotesConfig({
- dir: 'en/notes',
- link: '/',
- notes: [
- themeGuide,
- themeConfig,
- ],
-})
diff --git a/docs/.vuepress/notes/zh/index.ts b/docs/.vuepress/notes/zh/index.ts
deleted file mode 100644
index 4061e77d..00000000
--- a/docs/.vuepress/notes/zh/index.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { ThemeNoteListOptions } from 'vuepress-theme-plume'
-import { defineNotesConfig } from 'vuepress-theme-plume'
-// import { plugins } from './plugins'
-import { themeConfig } from './theme-config'
-import { themeGuide } from './theme-guide'
-import { tools } from './tools'
-
-export const zhNotes: ThemeNoteListOptions = defineNotesConfig({
- dir: 'notes',
- link: '/',
- notes: [
- themeGuide,
- themeConfig,
- // plugins,
- tools,
- ],
-})
diff --git a/docs/.vuepress/notes/zh/plugins.ts b/docs/.vuepress/notes/zh/plugins.ts
deleted file mode 100644
index 24d7828c..00000000
--- a/docs/.vuepress/notes/zh/plugins.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-export const plugins: ThemeNote = defineNoteConfig({
- dir: 'plugins',
- link: '/plugins/',
- sidebar: [
- {
- text: '插件',
- link: '/plugins/',
- items: [
- // 'caniuse',
- // 'iconify',
- 'shiki',
- 'md-power',
- 'content-updated',
- {
- text: 'plugin-netlify-functions',
- dir: 'netlify-functions',
- link: '/plugins/plugin-netlify-functions/',
- collapsed: true,
- items: [
- '介绍',
- '使用',
- '功能',
- 'api',
- 'functions',
- ],
- },
- ],
- },
- ],
-})
diff --git a/docs/.vuepress/notes/zh/tools.ts b/docs/.vuepress/notes/zh/tools.ts
deleted file mode 100644
index 8e1924d3..00000000
--- a/docs/.vuepress/notes/zh/tools.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type { ThemeNote } from 'vuepress-theme-plume'
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-export const tools: ThemeNote = defineNoteConfig({
- dir: 'tools',
- link: '/tools/',
- sidebar: [
- {
- text: '工具',
- icon: 'tabler:tools',
- items: [
- 'custom-theme',
- 'home-hero-tint-plate',
- 'caniuse',
- ],
- },
- ],
-})
diff --git a/docs/.vuepress/plume.config.ts b/docs/.vuepress/plume.config.ts
index 61a1d0ad..6bdc0bc2 100644
--- a/docs/.vuepress/plume.config.ts
+++ b/docs/.vuepress/plume.config.ts
@@ -1,8 +1,8 @@
import type { ThemeConfig } from 'vuepress-theme-plume'
import path from 'node:path'
import { defineThemeConfig } from 'vuepress-theme-plume'
+import { enCollections, zhCollections } from './collections/index.js'
import { enNavbar, zhNavbar } from './navbar.js'
-import { enNotes, zhNotes } from './notes/index.js'
export default defineThemeConfig({
logo: '/plume.png',
@@ -27,12 +27,24 @@ export default defineThemeConfig({
locales: {
'/': {
- notes: zhNotes,
+ // notes: zhNotes,
navbar: zhNavbar,
+ collections: [
+ // 博客
+ { type: 'post', dir: '/blog/', link: '/blog/', title: '博客' },
+ // 文档
+ ...zhCollections,
+ ],
},
'/en/': {
- notes: enNotes,
+ // notes: enNotes,
navbar: enNavbar,
+ collections: [
+ // 博客
+ { type: 'post', dir: '/blog/', link: '/blog/', title: 'Blog' },
+ // 文档
+ ...enCollections,
+ ],
},
},
@@ -41,7 +53,6 @@ export default defineThemeConfig({
'/article/enx7c9s/': '123456',
},
},
- autoFrontmatter: { exclude: ['**/*.snippet.*'] },
bulletin: {
layout: 'top-right',
diff --git a/docs/README.md b/docs/README.md
index 330bf4de..fed3c84f 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -174,6 +174,7 @@ npm run docs:dev
'Hammuu1112',
'SherkeyXD',
{ github: 'Kinneyzhang', name: 'Geekinney' },
+ 'huyunan',
]"
/>
diff --git a/docs/1.示例/markdown基础.md b/docs/blog/1.示例/markdown基础.md
similarity index 100%
rename from docs/1.示例/markdown基础.md
rename to docs/blog/1.示例/markdown基础.md
diff --git a/docs/1.示例/markdown扩展.md b/docs/blog/1.示例/markdown扩展.md
similarity index 99%
rename from docs/1.示例/markdown扩展.md
rename to docs/blog/1.示例/markdown扩展.md
index 9ba791cc..e562b441 100644
--- a/docs/1.示例/markdown扩展.md
+++ b/docs/blog/1.示例/markdown扩展.md
@@ -590,7 +590,7 @@ export default config
**输出:**
-@[code](../notes/theme/snippet/snippet-1.js)
+@[code](../../snippet/snippet-1.js)
如果你只想导入这个文件的一部分:
diff --git a/docs/1.示例/全屏水印.md b/docs/blog/1.示例/全屏水印.md
similarity index 100%
rename from docs/1.示例/全屏水印.md
rename to docs/blog/1.示例/全屏水印.md
diff --git a/docs/1.示例/内容水印.md b/docs/blog/1.示例/内容水印.md
similarity index 100%
rename from docs/1.示例/内容水印.md
rename to docs/blog/1.示例/内容水印.md
diff --git a/docs/1.示例/加密文章.md b/docs/blog/1.示例/加密文章.md
similarity index 100%
rename from docs/1.示例/加密文章.md
rename to docs/blog/1.示例/加密文章.md
diff --git a/docs/1.示例/图片水印.md b/docs/blog/1.示例/图片水印.md
similarity index 100%
rename from docs/1.示例/图片水印.md
rename to docs/blog/1.示例/图片水印.md
diff --git a/docs/1.示例/照片类作品示例.md b/docs/blog/1.示例/照片类作品示例.md
similarity index 100%
rename from docs/1.示例/照片类作品示例.md
rename to docs/blog/1.示例/照片类作品示例.md
diff --git a/docs/1.示例/示例文章.md b/docs/blog/1.示例/示例文章.md
similarity index 100%
rename from docs/1.示例/示例文章.md
rename to docs/blog/1.示例/示例文章.md
diff --git a/docs/1.示例/示例文章2.md b/docs/blog/1.示例/示例文章2.md
similarity index 100%
rename from docs/1.示例/示例文章2.md
rename to docs/blog/1.示例/示例文章2.md
diff --git a/docs/1.示例/示例文章3.md b/docs/blog/1.示例/示例文章3.md
similarity index 100%
rename from docs/1.示例/示例文章3.md
rename to docs/blog/1.示例/示例文章3.md
diff --git a/docs/1.示例/示例文章4.md b/docs/blog/1.示例/示例文章4.md
similarity index 100%
rename from docs/1.示例/示例文章4.md
rename to docs/blog/1.示例/示例文章4.md
diff --git a/docs/1.示例/示例文章5.md b/docs/blog/1.示例/示例文章5.md
similarity index 100%
rename from docs/1.示例/示例文章5.md
rename to docs/blog/1.示例/示例文章5.md
diff --git a/docs/1.示例/示例文章6.md b/docs/blog/1.示例/示例文章6.md
similarity index 100%
rename from docs/1.示例/示例文章6.md
rename to docs/blog/1.示例/示例文章6.md
diff --git a/docs/1.示例/示例文章7.md b/docs/blog/1.示例/示例文章7.md
similarity index 100%
rename from docs/1.示例/示例文章7.md
rename to docs/blog/1.示例/示例文章7.md
diff --git a/docs/1.示例/示例文章8.md b/docs/blog/1.示例/示例文章8.md
similarity index 100%
rename from docs/1.示例/示例文章8.md
rename to docs/blog/1.示例/示例文章8.md
diff --git a/docs/1.示例/示例文章9.md b/docs/blog/1.示例/示例文章9.md
similarity index 100%
rename from docs/1.示例/示例文章9.md
rename to docs/blog/1.示例/示例文章9.md
diff --git a/docs/2.preview/主题效果预览.md b/docs/blog/2.preview/主题效果预览.md
similarity index 100%
rename from docs/2.preview/主题效果预览.md
rename to docs/blog/2.preview/主题效果预览.md
diff --git a/docs/3.更新说明/102-103.md b/docs/blog/3.更新说明/102-103.md
similarity index 100%
rename from docs/3.更新说明/102-103.md
rename to docs/blog/3.更新说明/102-103.md
diff --git a/docs/3.更新说明/120.md b/docs/blog/3.更新说明/120.md
similarity index 100%
rename from docs/3.更新说明/120.md
rename to docs/blog/3.更新说明/120.md
diff --git a/docs/3.更新说明/144.md b/docs/blog/3.更新说明/144.md
similarity index 100%
rename from docs/3.更新说明/144.md
rename to docs/blog/3.更新说明/144.md
diff --git a/docs/3.更新说明/154.md b/docs/blog/3.更新说明/154.md
similarity index 99%
rename from docs/3.更新说明/154.md
rename to docs/blog/3.更新说明/154.md
index 673aea89..88cf5b9b 100644
--- a/docs/3.更新说明/154.md
+++ b/docs/blog/3.更新说明/154.md
@@ -2,7 +2,6 @@
title: 1.0.0-rc.154 更新说明
createTime: 2025/06/19 18:10:18
permalink: /article/yw0dmwcm/
-sticky: true
tags:
- 破坏性更新
---
diff --git a/docs/blog/3.更新说明/165.md b/docs/blog/3.更新说明/165.md
new file mode 100644
index 00000000..cfac9295
--- /dev/null
+++ b/docs/blog/3.更新说明/165.md
@@ -0,0 +1,188 @@
+---
+title: ⚠️ 1.0.0-rc.165 破坏性更新说明:博客与笔记功能迁移至“集合”
+sticky: true
+createTime: 2025/09/28 22:18:52
+permalink: /blog/dk58a4t2/
+tags:
+ - 破坏性更新
+ - 重要更新
+---
+
+:::important ‼️ 本次更新为破坏性更新!博客与笔记功能已整体迁移至全新的“集合”架构。‼️
+:::
+
+
+
+## 设计动机:为什么引入“集合”?
+
+[跳转至迁移指南 👇👇👇](#迁移指南){.read-more}
+
+### 背景与问题分析
+
+主题最初仅支持**博客**功能,将 `docs` 源目录下的所有 Markdown 文件识别为博客文章。随着版本迭代,我们新增了**笔记/知识库**功能,默认将 `notes` 目录作为笔记根目录,并将其内容从博客列表中排除。
+
+这种分阶段实现导致了**架构上的不平衡**:博客成为“一等公民”,而笔记功能则显得边缘化。这给用户带来了以下困扰:
+
+- **路径冗余**:笔记文件必须存放在 `notes/` 目录下,增加了不必要的目录层级
+- **链接复杂**:未开启 `autoFrontmatter` 时,URL 会强制包含 `/notes/` 前缀
+- **概念混淆**:用户常困惑于“笔记”与“文档”的功能区别
+- **配置繁琐**:需要额外调整 `notes.dir` 配置才能实现标准文档站结构
+
+这些设计缺陷源于历史迭代的遗留问题,我们对此深表歉意。
+
+### 解决方案:统一的内容抽象
+
+经过对主流静态站点生成器(如 Hugo、VitePress)和全栈框架(如 Nuxt)的调研,我们从 `@nuxt/content` 的 `collection` 概念中获得灵感。
+
+我们决定引入**集合**作为统一的内容组织单元。无论是博客、笔记、文档还是知识库,本质上都是 Markdown 文件的特定集合,只是在呈现方式上有所差异。
+
+:::important 核心洞察:通过“集合”抽象,统一各类内容的组织形式,同时保留各自的展示特性。
+:::
+
+基于内容特征,我们定义了两种集合类型:
+
+- **`post` 类型**:适用于碎片化、关联性弱的内容(如博客、专栏),提供文章列表作为导航入口
+- **`doc` 类型**:适用于结构化、关联性强的内容(如文档、手册),提供侧边栏进行快速导航
+
+这一设计既解决了历史架构问题,又为未来扩展更多内容类型奠定了基础。
+
+## 迁移指南
+
+### 核心概念
+
+- **集合**:通过 `collection.dir` 指定目录,该目录下所有 Markdown 文件均归属该集合
+- **集合类型**:
+ - `post`:碎片化内容,支持文章列表导航
+ - `doc`:结构化内容,支持侧边栏导航
+
+### 配置迁移
+
+替换原有的 `blog` 和 `notes` 配置:
+
+```ts twoslash
+// @noErrors
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // [!code --:9]
+ // 移除旧的 blog 和 notes 配置
+ blog: { /* 博客配置 */ },
+ notes: {
+ link: '/',
+ dir: '/notes/',
+ notes: [
+ { dir: 'typescript', link: '/typescript/', sidebar: 'auto' }
+ ]
+ },
+ // [!code ++:16]
+ // 使用 collections 配置
+ collections: [
+ {
+ type: 'post', // 替代原博客功能
+ dir: 'blog', // 指向 docs/blog 目录
+ title: '博客' // 集合显示名称
+ // 原博客配置继续保留
+ // ...
+ },
+ {
+ type: 'doc', // 替代原笔记功能
+ dir: 'typescript', // 指向 docs/typescript 目录
+ title: 'TypeScript笔记',
+ sidebar: 'auto', // 自动生成侧边栏
+ },
+ ]
+ })
+})
+```
+
+### 目录结构调整
+
+按照以下步骤迁移文件:
+
+**操作步骤:**
+
+1. 将 `notes` 目录下的子目录直接移至 `docs` 根目录
+2. 创建 `blog` 目录,将原博客文章移入其中
+3. 移除空的 `notes` 目录
+
+:::: flex
+
+
+
+::: file-tree title="迁移前结构"
+
+- docs
+ - -- notes
+ - typescript
+ - basic.md
+ - advanced.md
+ - blog-cate-1
+ - post-1.md
+ - blog-cate-2
+ - post-2.md
+ - blog-post.md
+ - README.md
+:::
+
+
+
+
+
+
+
+:::file-tree title="迁移后结构"
+
+- docs
+ - typescript
+ - basic.md
+ - advanced.md
+ - ++ blog
+ - blog-cate-1
+ - post-1.md
+ - blog-cate-2
+ - post-2.md
+ - blog-post.md
+ - README.md
+
+:::
+
+
+
+::::
+
+### 帮助函数
+
+- `defineCollection`:用于定义单个 collection 配置的帮助函数
+- `defineCollections`:用于定义多个 collection 配置的帮助函数
+
+```ts twoslash
+import { defineCollection, defineCollections } from 'vuepress-theme-plume'
+
+export const blog = defineCollection({
+ type: 'post',
+ dir: 'blog',
+ title: '博客'
+})
+
+export const typescript = defineCollection({
+ type: 'doc',
+ dir: 'typescript',
+ title: 'TypeScript笔记',
+ sidebar: 'auto'
+})
+
+export const collections = defineCollections([
+ blog,
+ typescript
+])
+```
+
+## 详细文档
+
+[集合文档](../../guide/quick-start/collection.md){.read-more}
+
+[post 集合](../../guide/quick-start/collection-post.md){.read-more}
+
+[doc 集合](../../guide/quick-start/collection-doc.md){.read-more}
diff --git a/docs/3.更新说明/73-77.md b/docs/blog/3.更新说明/73-77.md
similarity index 100%
rename from docs/3.更新说明/73-77.md
rename to docs/blog/3.更新说明/73-77.md
diff --git a/docs/4.教程/frontmatter.md b/docs/blog/4.教程/frontmatter.md
similarity index 100%
rename from docs/4.教程/frontmatter.md
rename to docs/blog/4.教程/frontmatter.md
diff --git a/docs/config/collections.md b/docs/config/collections.md
new file mode 100644
index 00000000..7a4245d4
--- /dev/null
+++ b/docs/config/collections.md
@@ -0,0 +1,528 @@
+---
+title: 集合配置
+createTime: 2025/09/28 14:00:06
+permalink: /config/collections/
+---
+
+## 概述
+
+**Collections(集合)** 是主题中用于组织和管理文档的核心概念。每个集合指向源目录下的特定文件夹,将其中的所有 Markdown 文件作为一个逻辑单元进行管理。
+
+通过灵活的集合配置,您可以轻松构建多种内容体系:
+
+- **博客** - 个人随笔与技术分享
+- **专栏** - 专题系列文章
+- **使用手册** - 产品使用文档
+- **笔记** - 学习笔记与知识整理
+- **产品文档** - 完整的项目文档
+- **知识库** - 团队知识管理体系
+
+集合主要分为两种类型,适应不同的内容组织需求:
+
+- **`post` 类型**:适用于碎片化内容,文章间关联较弱,如博客、专栏等
+- **`doc` 类型**:适用于结构化文档,内容关联紧密,如使用手册、产品文档、知识库等
+
+::: tip 配置位置
+集合配置支持在 `.vuepress/config.ts` 或独立的 `plume.config.ts` 文件中进行配置。
+:::
+
+## 基础配置
+
+假设您的项目采用以下目录结构:
+
+::: file-tree title="项目结构"
+
+- docs
+ - **blog**
+ - post-1.md
+ - post-2.md
+ - **typescript**
+ - basic
+ - intro.md
+ - variable.md
+ - types.md
+:::
+
+对应的集合配置示例如下:
+
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // 集合配置 // [!code focus:7]
+ collections: [
+ // 注册 post 类型集合,实现博客功能
+ { type: 'post', dir: 'blog', title: '博客' },
+ // 注册 doc 类型集合,实现 TypeScript 文档功能
+ { type: 'doc', dir: 'typescript', title: 'TypeScript笔记', sidebar: 'auto' }
+ ],
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ // 独立配置文件中的集合配置 // [!code focus:7]
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' },
+ { type: 'doc', dir: 'typescript', title: 'TypeScript笔记', sidebar: 'auto' }
+ ],
+})
+```
+
+:::
+
+## 多语言配置
+
+对于多语言项目,您可以在 `locales` 字段中为每种语言单独配置集合:
+
+::: file-tree title="多语言项目结构"
+
+- docs
+ - **blog/**
+ - post-1.md
+ - post-2.md
+ - **typescript/**
+ - basic
+ - intro.md
+ - variable.md
+ - types.md
+ - en
+ - **blog/**
+ - post-1.md
+ - post-2.md
+ - **typescript/**
+ - basic
+ - intro.md
+ - variable.md
+ - types.md
+:::
+
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ locales: {
+ '/': {
+ // 中文集合配置 // [!code focus:4]
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' },
+ { type: 'doc', dir: 'typescript', title: 'TypeScript笔记', sidebar: 'auto' }
+ ],
+ },
+ '/en/': {
+ // 英文集合配置 // [!code focus:4]
+ collections: [
+ { type: 'post', dir: 'blog', title: 'Blog' },
+ { type: 'doc', dir: 'typescript', title: 'TypeScript Note', sidebar: 'auto' }
+ ],
+ }
+ }
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ locales: {
+ '/': {
+ // 中文集合配置 // [!code focus:4]
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' },
+ { type: 'doc', dir: 'typescript', title: 'TypeScript笔记', sidebar: 'auto' }
+ ],
+ },
+ '/en/': {
+ // 英文集合配置 // [!code focus:4]
+ collections: [
+ { type: 'post', dir: 'blog', title: 'Blog' },
+ { type: 'doc', dir: 'typescript', title: 'TypeScript Note', sidebar: 'auto' }
+ ],
+ }
+ }
+})
+```
+
+:::
+
+## Post 集合详解
+
+Post 集合专为博客、专栏等碎片化内容设计,提供完整的文章管理体系:
+
+### 核心功能
+
+- **文章列表页** - 支持文章置顶、封面图、摘要显示、个人信息等
+- **文章分类页** - 基于目录结构自动生成分类
+- **文章标签页** - 灵活的标签管理
+- **文章归档页** - 按时间维度组织内容
+
+### 配置示例
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ // 博客集合配置
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ link: '/blog/', // 列表页链接
+ linkPrefix: '/article/', // 文章链接前缀
+ postCover: 'top', // 封面图位置
+ autoFrontmatter: { permalink: true }, // 自动 frontmatter
+ },
+ // 面试专栏配置
+ {
+ type: 'post',
+ dir: 'interview',
+ title: '面试专栏',
+ link: '/interview/', // 列表页链接
+ }
+ ]
+})
+```
+
+## Doc 集合详解
+
+Doc 集合适用于结构化文档,强调内容间的逻辑关系:
+
+### 核心功能
+
+- **侧边导航栏** - 提供清晰的文档结构导航
+- **自动生成目录** - 基于文件结构智能生成侧边栏
+- **多级嵌套支持** - 支持复杂的文档层次结构
+
+### 配置示例
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ // TypeScript 笔记 - 自动生成侧边栏
+ {
+ type: 'doc',
+ dir: 'typescript',
+ title: 'TypeScript笔记',
+ sidebar: 'auto'
+ },
+ // Python 笔记 - 手动配置侧边栏
+ {
+ type: 'doc',
+ dir: 'python',
+ title: 'Python 笔记',
+ sidebar: [
+ { text: '基础语法', link: 'basic' },
+ {
+ text: 'API 文档',
+ items: [
+ { text: 'asyncio', link: 'asyncio' }
+ ]
+ },
+ 'advanced' // 简写形式
+ ]
+ }
+ ]
+})
+```
+
+## 配置类型声明
+
+### 基础集合配置
+
+```ts
+/* 集合配置数组 */
+type ThemeCollections = ThemeCollectionItem[]
+
+/* 单个集合项 */
+type ThemeCollectionItem = ThemePostCollection | ThemeDocCollection
+
+/* 集合公共配置 */
+interface ThemeBaseCollection {
+ /**
+ * 集合类型
+ * - `post`: 文章列表(博客、专栏)
+ * - `doc`: 结构化文档(笔记、知识库)
+ */
+ type: 'post' | 'doc'
+ /**
+ * 文档目录(相对于源目录)
+ */
+ dir: string
+ /**
+ * 文章链接前缀
+ */
+ linkPrefix?: string
+ /**
+ * 集合标题(用于面包屑导航)
+ */
+ title: string
+ /**
+ * 标签颜色主题
+ * @default 'colored'
+ */
+ tagsTheme?: 'colored' | 'gray' | 'brand'
+ /**
+ * 自动生成 frontmatter
+ */
+ autoFrontmatter?: AutoFrontmatterOptions | false
+}
+```
+
+### Post 集合专用配置
+
+```ts title="Post 集合配置"
+interface ThemePostCollection extends ThemeBaseCollection {
+ type: 'post'
+ /**
+ * 包含文件规则(glob 模式)
+ * @default ['**\/*.md']
+ */
+ include?: string[]
+ /**
+ * 排除文件规则(glob 模式)
+ * @default []
+ */
+ exclude?: string[]
+ /**
+ * 分页配置
+ */
+ pagination?: false | number | {
+ /**
+ * 每页文章数量
+ * @default 15
+ */
+ perPage?: number
+ }
+ /**
+ * 文章列表页链接
+ * @default '/{dir}/'
+ */
+ link?: string
+ /**
+ * 是否启用文章列表页
+ * @default true
+ */
+ postList?: boolean
+ /**
+ * 是否启用标签页
+ * @default true
+ */
+ tags?: boolean
+ /**
+ * 标签页链接
+ * @default '/{link}/tags/'
+ */
+ tagsLink?: string
+ /**
+ * 标签页文本
+ */
+ tagsText?: string
+ /**
+ * 是否启用归档页
+ * @default true
+ */
+ archives?: boolean
+ /**
+ * 归档页链接
+ * @default '/{link}/archives/'
+ */
+ archivesLink?: string
+ /**
+ * 归档页文本
+ */
+ archivesText?: string
+ /**
+ * 是否启用分类功能
+ * @default true
+ */
+ categories?: boolean
+ /**
+ * 分类页链接
+ * @default '/{link}/categories/'
+ */
+ categoriesLink?: string
+ /**
+ * 分类页文本
+ */
+ categoriesText?: string
+ /**
+ * 分类展开深度
+ * @default 'deep'
+ */
+ categoriesExpand?: number | 'deep'
+ /**
+ * 分类列表转换函数
+ */
+ categoriesTransform?: (categories: PostsCategoryItem[]) => PostsCategoryItem[]
+ /**
+ * 文章封面图配置
+ * @default 'right'
+ */
+ postCover?: PostsCoverLayout | PostsCoverStyle
+ /**
+ * 个人信息配置
+ */
+ profile?: ProfileOptions | false
+ /**
+ * 社交账号配置
+ */
+ social?: SocialLink[] | false
+}
+/* 文章分类项 */
+interface PostsCategoryItem {
+ id: string
+ sort: number
+ name: string
+}
+/* 封面图布局 */
+type PostsCoverLayout = 'left' | 'right' | 'odd-left' | 'odd-right' | 'top'
+/* 封面图样式 */
+interface PostsCoverStyle {
+ layout?: PostsCoverLayout
+ ratio?: number | `${number}:${number}` | `${number}/${number}`
+ width?: number
+ compact?: boolean
+}
+/* 社交链接图标 */
+type SocialLinkIcon = SocialLinkIconUnion | { svg: string, name?: string }
+/* 社交链接 */
+interface SocialLink {
+ icon: SocialLinkIcon
+ link: string
+ ariaLabel?: string
+}
+
+/**
+ * 个人资料
+ */
+export interface ProfileOptions {
+ /**
+ * 头像链接地址
+ */
+ avatar?: string
+ /**
+ * 名称
+ */
+ name?: string
+ /**
+ * 描述 / 简介 / 座右铭 / 签名
+ */
+ description?: string
+ /**
+ * 是否显示为圆形头像
+ */
+ circle?: boolean
+ /**
+ * 地理位置
+ */
+ location?: string
+ /**
+ * 组织,公司
+ */
+ organization?: string
+ /**
+ * 布局位置,左侧或者右侧
+ * @default 'right'
+ */
+ layout?: 'left' | 'right'
+}
+```
+
+### Doc 集合专用配置
+
+```ts title="Doc 集合配置"
+interface ThemeDocCollection extends ThemeBaseCollection {
+ type: 'doc'
+ /**
+ * 侧边栏配置
+ */
+ sidebar?: 'auto' | (string | ThemeSidebarItem)[]
+ /**
+ * 是否显示侧边栏滚动条
+ * @default true
+ */
+ sidebarScrollbar?: boolean
+ /**
+ * 侧边栏默认折叠状态
+ * @default false
+ */
+ sidebarCollapsed?: boolean
+}
+
+/* 侧边栏项配置 */
+interface ThemeSidebarItem {
+ text?: string
+ link?: string
+ icon?: ThemeIcon
+ badge?: string | ThemeBadge
+ items?: 'auto' | (string | ThemeSidebarItem)[]
+ collapsed?: boolean
+ prefix?: string
+ rel?: string
+ target?: string
+}
+
+/* 图标类型 */
+type ThemeIcon = string | { svg: string }
+
+/* 徽章配置 */
+export interface ThemeBadge {
+ text?: string
+ type?: string
+ color?: string
+ bgColor?: string
+ borderColor?: string
+}
+```
+
+### 自动侧边栏生成
+
+将 Doc 集合的 `sidebar` 设置为 `'auto'` 时,系统会根据目录结构自动生成侧边栏导航。排序规则遵循[文件夹命名约定](../guide/quick-start/write.md#文件夹命名约定)。
+
+### 侧边栏图标配置
+
+主题支持两种方式配置侧边栏图标:
+
+- **在侧边栏配置中直接定义**:
+
+ ```ts
+ sidebar: [
+ { text: '介绍', link: 'intro', icon: 'mdi:tooltip-text-outline' }
+ ]
+ ```
+
+- **在文档 frontmatter 中定义**:
+
+ ```md
+ ---
+ title: 主题介绍
+ icon: mdi:tooltip-text-outline
+ ---
+ ```
+
+两种方式具有相同的效果,您可以根据具体场景选择使用。
+
+如需了解侧边栏的完整配置选项和使用技巧,请参阅[侧边栏配置指南](../guide/quick-start/sidebar.md)。
diff --git a/docs/notes/theme/config/frontmatter/basic.md b/docs/config/frontmatter/basic.md
similarity index 100%
rename from docs/notes/theme/config/frontmatter/basic.md
rename to docs/config/frontmatter/basic.md
diff --git a/docs/notes/theme/config/frontmatter/friend.md b/docs/config/frontmatter/friend.md
similarity index 100%
rename from docs/notes/theme/config/frontmatter/friend.md
rename to docs/config/frontmatter/friend.md
diff --git a/docs/notes/theme/config/frontmatter/home.md b/docs/config/frontmatter/home.md
similarity index 100%
rename from docs/notes/theme/config/frontmatter/home.md
rename to docs/config/frontmatter/home.md
diff --git a/docs/notes/theme/config/frontmatter/post.md b/docs/config/frontmatter/post.md
similarity index 100%
rename from docs/notes/theme/config/frontmatter/post.md
rename to docs/config/frontmatter/post.md
diff --git a/docs/config/intro.md b/docs/config/intro.md
new file mode 100644
index 00000000..aed09477
--- /dev/null
+++ b/docs/config/intro.md
@@ -0,0 +1,173 @@
+---
+title: 配置说明
+createTime: 2024/03/02 10:48:14
+permalink: /config/intro/
+---
+
+## 概述
+
+==vuepress-theme-plume== 是基于 [VuePress](https://v2.vuepress.vuejs.org/) 开发的主题,其配置完全遵循 VuePress 的配置规范。
+
+**VuePress 提供三种配置类型:**
+
+- **站点配置**:在配置文件(如 `.vuepress/config.ts`)中直接导出的对象
+- **主题配置**:传递给 `plumeTheme()` 函数的参数对象
+- **页面配置**:基于 YAML 语法在页面 Frontmatter 中定义
+
+## VuePress 配置文件
+
+VuePress 的基础配置文件通常是 `.vuepress/config.js`,同时也支持 TypeScript 配置文件。使用 `.vuepress/config.ts` 可以获得更完善的类型提示。
+
+VuePress 按以下优先顺序解析配置文件:
+
+**当前工作目录 (cwd) 下:**
+
+- `vuepress.config.ts`
+- `vuepress.config.js`
+- `vuepress.config.mjs`
+
+**源文件目录 (sourceDir) 下:**
+
+- `.vuepress/config.ts`
+- `.vuepress/config.js`
+- `.vuepress/config.mjs`
+
+**基础配置示例:**
+
+```ts title=".vuepress/config.ts" twoslash
+import { viteBundler } from '@vuepress/bundler-vite'
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ // [!code hl:5]
+ // VuePress 基础配置
+ lang: 'zh-CN',
+ title: '你好, VuePress !',
+ description: '这是我的第一个 VuePress 站点',
+ // ...
+
+ // 使用 Vite 作为构建工具
+ bundler: viteBundler(),
+
+ // 启用 Plume 主题
+ theme: plumeTheme({ // [!code ++:4]
+ // 主题配置项
+ // ...
+ }),
+})
+```
+
+## 主题配置文件
+
+通常我们在 `.vuepress/config.ts` 中配置主题:
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // 主题配置
+ }),
+ // ...
+})
+```
+
+然而,修改此文件会导致 VuePress 服务重启并全量刷新。对于小型站点,这个过程很快;但对于内容较多的站点,每次重启都需要较长时间。
+
+频繁修改配置文件还容易导致 VuePress ==服务崩溃=={.caution} ::twemoji:angry-face::,需要手动重启服务,严重影响内容编写效率。
+
+**解决方案:主题热更新配置**:
+
+主题提供了 `plume.config.ts` 配置文件,==对该文件的修改支持热更新,无需重启服务=={.tip} ::twemoji:confetti-ball::。
+
+你可以在其中配置支持热更新的字段,如 `navbar`、`profile` 等。
+
+::: tip
+这些字段仍可在 VuePress 配置文件的 `theme` 中配置,但主题配置文件的设置最终会合并到主配置中。
+
+为避免数据重复,请勿在两地同时配置同一字段。
+:::
+
+::: details 什么是热更新?
+
+**热更新** 是一种开发技术,在 VuePress 中体现为:
+
+- 配置修改实时生效,无需重启服务,浏览器不刷新页面
+- 页面修改实时生效,浏览器无刷新更新内容
+
+:::
+
+### 配置方法
+
+在 VuePress 配置文件同级目录下创建 `plume.config.ts` 文件:
+
+::: file-tree
+
+- docs
+ - .vuepress
+ - config.ts
+ - **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'
+
+export default defineThemeConfig({
+ // 主题配置
+ profile: {
+ name: 'Your name',
+ },
+ navbar,
+})
+```
+
+`defineThemeConfig(config)` 函数提供完整的类型提示。除 `plugins` 外,大多数配置都可在此文件中定义。
+
+::: warning 注意事项
+
+- 主题配置文件仅支持部分热更新字段
+- 避免在 VuePress 配置文件中重复配置已在主题配置文件中设置的字段
+:::
+
+### 自定义配置文件路径
+
+如需使用非默认路径,可在 VuePress 配置中指定:
+
+```ts title=".vuepress/config.ts" twoslash
+import path from 'node:path'
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // 自定义配置文件路径
+ configFile: path.join(__dirname, 'custom/config.ts'), // [!code ++]
+ }),
+})
+```
+
+::: warning 新手不建议自定义路径,可能引发意外问题
+:::
+
+## 页面配置
+
+通过页面顶部的 YAML Frontmatter,可为每个页面单独配置主题:
+
+```md {1,5} title="article.md"
+---
+title: 文章标题
+createTime: 2024/09/08 22:53:34
+permalink: /article/xxx/
+---
+```
+
+在 Markdown 文件顶部,使用 `---` 分隔符包裹的部分即为 Frontmatter,采用 YAML 语法配置。
+
+:::tip 如需了解 YAML 基础语法,可参考[这篇博客](/article/ecxnxxd0/)
+:::
diff --git a/docs/notes/theme/config/locales.md b/docs/config/locales.md
similarity index 95%
rename from docs/notes/theme/config/locales.md
rename to docs/config/locales.md
index e1903438..f22aff20 100644
--- a/docs/notes/theme/config/locales.md
+++ b/docs/config/locales.md
@@ -19,6 +19,7 @@ permalink: /config/locales/
- 德语 (`de-DE`) - `/de/`
- 俄语 (`ru-RU`) - `/ru/`
- 日语 (`ja-JP`) - `/ja/`
+- 韩语 (`ko-KR`) - `/ko/`
## 配置
@@ -110,14 +111,14 @@ export default defineThemeConfig({
- 主题默认导航栏中的首页链接的文本。
- 面包屑导航中的首页链接的文本。
-### blogText
+### postsText
- 类型: `string`
-- 默认值: `'Blog'`
-- 详情: 博客链接的文本。
+- 默认值: `'Posts'`
+- 详情: 文章列表页链接的文本。
- - 主题默认导航栏中的博客链接的文本。
- - 面包屑导航中的博客链接的文本。
+ - 主题默认导航栏中的文章列表页链接的文本。
+ - 面包屑导航中的文章列表页链接的文本。
### tagText
diff --git a/docs/notes/theme/config/markdown.md b/docs/config/markdown.md
similarity index 100%
rename from docs/notes/theme/config/markdown.md
rename to docs/config/markdown.md
diff --git a/docs/notes/theme/config/navbar.md b/docs/config/navbar.md
similarity index 97%
rename from docs/notes/theme/config/navbar.md
rename to docs/config/navbar.md
index 487e34fb..4494c44a 100644
--- a/docs/notes/theme/config/navbar.md
+++ b/docs/config/navbar.md
@@ -9,7 +9,7 @@ permalink: /config/navigation/
::: tip 导航栏配置支持在 `.vuepress/config.ts` ,或者在 `plume.config.ts` 中进行配置。
:::
-主题默认会自动生成最简单的导航栏配置,仅包括 **首页** 和 **博客文章列表页** 。
+主题默认会自动生成最简单的导航栏配置,仅包括 **首页** 和 **文章列表页** 。
你也可以自己配置导航栏,覆盖默认的的导航栏配置。
@@ -87,7 +87,7 @@ export default defineUserConfig({
})
```
-随着站点内容变得越来越丰富,包括了 博客文章列表、notes、友情链接、 外部链接等等,
+随着站点内容变得越来越丰富,如通过 集合 配置了 博客、笔记、文档、友情链接、 外部链接等等,
默认生成的导航栏配置满足不了您的需求。
这时候,您可以通过 `navbar` 字段来完全自定义导航栏,它将直接覆盖默认的导航栏配置。
diff --git a/docs/notes/theme/config/plugins/README.md b/docs/config/plugins/README.md
similarity index 100%
rename from docs/notes/theme/config/plugins/README.md
rename to docs/config/plugins/README.md
diff --git a/docs/notes/theme/config/plugins/markdown-enhance.md b/docs/config/plugins/markdown-enhance.md
similarity index 100%
rename from docs/notes/theme/config/plugins/markdown-enhance.md
rename to docs/config/plugins/markdown-enhance.md
diff --git a/docs/notes/theme/config/plugins/markdown-image.md b/docs/config/plugins/markdown-image.md
similarity index 100%
rename from docs/notes/theme/config/plugins/markdown-image.md
rename to docs/config/plugins/markdown-image.md
diff --git a/docs/notes/theme/config/plugins/markdown-include.md b/docs/config/plugins/markdown-include.md
similarity index 100%
rename from docs/notes/theme/config/plugins/markdown-include.md
rename to docs/config/plugins/markdown-include.md
diff --git a/docs/notes/theme/config/plugins/markdown-math.md b/docs/config/plugins/markdown-math.md
similarity index 100%
rename from docs/notes/theme/config/plugins/markdown-math.md
rename to docs/config/plugins/markdown-math.md
diff --git a/docs/notes/theme/config/plugins/markdown-power.md b/docs/config/plugins/markdown-power.md
similarity index 100%
rename from docs/notes/theme/config/plugins/markdown-power.md
rename to docs/config/plugins/markdown-power.md
diff --git a/docs/notes/theme/config/plugins/reading-time.md b/docs/config/plugins/reading-time.md
similarity index 100%
rename from docs/notes/theme/config/plugins/reading-time.md
rename to docs/config/plugins/reading-time.md
diff --git a/docs/notes/theme/config/plugins/search.md b/docs/config/plugins/search.md
similarity index 100%
rename from docs/notes/theme/config/plugins/search.md
rename to docs/config/plugins/search.md
diff --git a/docs/notes/theme/config/plugins/shiki.md b/docs/config/plugins/shiki.md
similarity index 100%
rename from docs/notes/theme/config/plugins/shiki.md
rename to docs/config/plugins/shiki.md
diff --git a/docs/notes/theme/config/plugins/watermark.md b/docs/config/plugins/watermark.md
similarity index 100%
rename from docs/notes/theme/config/plugins/watermark.md
rename to docs/config/plugins/watermark.md
diff --git a/docs/config/sidebar.md b/docs/config/sidebar.md
new file mode 100644
index 00000000..a474846b
--- /dev/null
+++ b/docs/config/sidebar.md
@@ -0,0 +1,115 @@
+---
+title: 侧边栏配置
+createTime: 2024/08/15 21:05:36
+permalink: /config/sidebar/
+---
+
+## 概述
+
+侧边栏是主题中位于页面最左侧的核心导航区域,承担着引导用户在不同页面间跳转的重要功能。
+
+在 VuePress 生态中,默认主题 `@vuepress/theme-default` 通过 `sidebar` 配置项管理侧边栏。本主题在保留这一经典配置方式的基础上,还提供了更为灵活的集合(Collections)级侧边栏配置方案。
+
+## 集合级侧边栏配置
+
+集合(Collections)是主题中组织系列文档的核心概念。当集合类型设置为 `doc` 时,您可以在 `collection.sidebar` 中定义专属的侧边栏导航。
+
+以下示例展示了如何在 `docs` 目录下创建类型为 `doc` 的集合,并配置其侧边栏:
+
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { defineCollection, plumeTheme } from 'vuepress-theme-plume'
+
+// 定义文档集合配置 // [!code hl:10]
+const demo = defineCollection({
+ type: 'doc',
+ dir: 'demo', // 文档目录
+ title: 'Demo', // 集合名称
+ sidebar: [ // 侧边栏配置 // [!code ++:4]
+ { text: 'one item', link: 'one' },
+ { text: 'two item', link: 'two' },
+ ]
+})
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [demo], // 注册集合 // [!code hl]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineCollection, defineThemeConfig } from 'vuepress-theme-plume'
+
+// 使用独立配置文件定义集合 // [!code hl:10]
+const demo = defineCollection({
+ type: 'doc',
+ dir: 'demo',
+ title: 'Demo',
+ sidebar: [
+ { text: 'one item', link: 'one' },
+ { text: 'two item', link: 'two' },
+ ]
+})
+
+export default defineThemeConfig({
+ collections: [demo], // [!code hl]
+})
+```
+
+:::
+
+主题提供的 `defineCollection` 工具函数简化了集合配置过程。如需了解完整的集合配置选项,请参阅[集合配置文档](./collections.md)。
+
+## 全局侧边栏配置
+
+如果您希望采用传统的全局配置方式管理侧边栏,可以直接在主题配置中使用 `sidebar` 选项。这种方式适合不需要按集合分组导航的场景。
+
+::: code-tabs#configs
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // 全局侧边栏配置 // [!code hl:7]
+ sidebar: {
+ '/config/': [ // 匹配/config/路径
+ { text: '侧边栏配置', link: 'sidebar-1' },
+ { text: '侧边栏配置', link: 'sidebar-2' },
+ ]
+ }
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ // 在独立配置文件中定义全局侧边栏 // [!code hl:7]
+ sidebar: {
+ '/config/': [
+ { text: '侧边栏配置', link: 'sidebar-1' },
+ { text: '侧边栏配置', link: 'sidebar-2' },
+ ]
+ }
+})
+```
+
+:::
+
+两种配置方式各有优势:集合级配置适合模块化文档结构,全局配置则便于统一管理简单项目的导航。
+
+如需了解侧边栏的完整配置选项和使用技巧,请参阅[侧边栏配置指南](../guide/quick-start/sidebar.md)。
diff --git a/docs/notes/theme/config/theme.md b/docs/config/theme.md
similarity index 82%
rename from docs/notes/theme/config/theme.md
rename to docs/config/theme.md
index e24b8fec..d77e1cf8 100644
--- a/docs/notes/theme/config/theme.md
+++ b/docs/config/theme.md
@@ -177,165 +177,6 @@ export default defineThemeConfig({
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./intro.md#主题配置文件) 中进行配置。
:::
-### blog
-
-- **类型:** `false | BlogOptions`
-- **默认值:** `{ link: '/blog/', include: ['**/*.md'], exclude: [] }`
-- **详情:**
-
- 博客配置。
-
- ::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./intro.md#主题配置文件) 中进行配置。
- :::
-
-```ts
-interface BlogOptions {
- /**
- * blog list link
- *
- * @default '/blog/'
- */
- link?: string
-
- /**
- * 在 `{sourceDir}` 目录中,通过 glob string 配置包含文件
- *
- * @default - ['**\*.md']
- */
- include?: string[]
-
- /**
- * 在 `{sourceDir}` 目录中,通过 glob string 配置排除的文件
- *
- * @default - ['.vuepress/', 'node_modules/']
- */
- exclude?: string[]
-
- /**
- * 分页配置
- *
- * - `false` - 不启用分页
- * - `number` - 每页显示的文章数量
- */
- pagination?: false | number | {
- /**
- * 每页显示的文章数量
- * @default 10
- */
- perPage?: number
- }
-
- /**
- * 是否启用标签页
- * @default true
- */
- tags?: boolean
-
- /**
- * 自定义标签页链接
- *
- * @default '/blog/tags/'
- */
- tagsLink?: string
-
- /**
- * 标签颜色主题
- *
- * - `colored`: 彩色标签,不同标签颜色不同
- * - `brand`: 使用主题颜色作为标签颜色
- * - `gray`: 使用 灰色 作为标签颜色
- *
- * @default 'colored'
- */
- tagsTheme?: 'colored' | 'gray' | 'brand'
-
- /**
- * 是否启用归档页
- * @default true
- */
- archives?: boolean
-
- /**
- * 自定义归档页链接
- *
- * @default '/blog/archives/'
- */
- archivesLink?: string
-
- /**
- * 是否启用分类页
- * @default true
- */
- categories?: boolean
-
- /**
- * 自定义分类页链接
- *
- * @default '/blog/categories/'
- */
- categoriesLink?: string
-
- /**
- * 分类页展开深度
- *
- * @default 'deep'
- */
- categoriesExpand?: number | 'deep'
-
- /**
- * 文章分类列表转换函数,比如排除不需要的一级分类
- * @param categories 分类列表
- * @returns 返回一个新的分类列表
- */
- categoriesTransform?: (categories: PageCategoryData[]) => PageCategoryData[]
-
- /**
- * 博客文章封面图
- *
- * 配置封面图的位置,支持 `'left'`、`'right'`、`'top'`、`'top-inside'`
- *
- * @default 'right'
- */
- postCover?: BlogPostCoverLayout | BlogPostCoverStyle
-}
-
-type BlogPostCoverLayout = 'left' | 'right' | 'odd-left' | 'odd-right' | 'top'
-
-interface BlogPostCoverStyle {
- /**
- * 博客文章封面图的位置
- */
- layout?: BlogPostCoverLayout
- /**
- * 博客文章封面图的比例
- *
- * @default '4:3'
- */
- ratio?: number | `${number}:${number}`
-
- /**
- * 封面图的宽度, 仅在 layout 为 'left' 或 'right' 时生效
- *
- * @default 240
- */
- width?: number
- /**
- * 是否使用紧凑模式,紧凑模式下,封面图紧贴容器边缘
- * @default false
- */
- compact?: boolean
-}
-```
-
-### article
-
-- **类型:** `string`
-- **默认值:** `/article/`
-- **详情:** 文章链接前缀
-
- ::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./intro.md#主题配置文件) 中进行配置。
- :::
-
### autoFrontmatter
- **类型:** `false | AutoFrontmatterOptions`
@@ -345,18 +186,6 @@ interface BlogPostCoverStyle {
```ts
interface AutoFrontmatterOptions {
- /**
- * glob 匹配,被匹配的文件将会自动生成 frontmatter
- *
- * @default ['**\/*.md']
- */
- include?: string | string[]
-
- /**
- * glob 匹配,被匹配的文件将不会自动生成 frontmatter
- */
- exclude?: string | string[]
-
/**
* 是否自动生成 permalink
*
@@ -714,27 +543,13 @@ type NavItem = string | {
})
```
-### notes
-
-- **类型:** `false | NotesOptions`
-- **默认值:** `{ link: '/note', dir: 'notes', notes: [] }`
-- **详情:**
-
- 笔记配置, 笔记中的文章默认不会出现在首页文章列表
-
- 你可以将配置的notes 配置到 navbar中,以便浏览查看
-
-详细配置请查看 [此文档](./notes.md)
-
### sidebar
- **类型:** `false | SidebarMulti`
- **详情:**
- 侧边栏配置。**主题更推荐在 [notes 配置](./notes.md) 中进行侧边栏配置。**
-
- 当你不希望使用 `notes` 功能,但又期望给文档增加侧边栏时,可以使用此配置。
+ 侧边栏配置。**主题更推荐在 [collections 配置](./collections.md) 中进行侧边栏配置。**
配置对象的 `key` 为侧边栏公共访问路径前缀。
@@ -775,9 +590,7 @@ interface SidebarItem {
/**
* 如果未指定,组不可折叠。
- *
* 如果为`true`,组可折叠,并默认折叠。
- *
* 如果为`false`,组可折叠,但默认展开。
*/
collapsed?: boolean
@@ -909,10 +722,10 @@ interface SidebarItem {
### createTime
-- **类型:** `boolean | 'only-blog'`
+- **类型:** `boolean | 'only-posts'`
- **默认值:** `true`
- **详情:** 是否显示创建时间
- `false` - 不显示
- - `'only-blog'` - 只显示在博客文章页面
+ - `'only-posts'` - 只显示在文章列表页面
- `true` - 显示在所有文章页面
diff --git a/docs/en/1.FE/1.Node/english_blog.md b/docs/en/blog/1.FE/1.Node/english_blog.md
similarity index 100%
rename from docs/en/1.FE/1.Node/english_blog.md
rename to docs/en/blog/1.FE/1.Node/english_blog.md
diff --git a/docs/en/4.Tutorials/frontmatter.md b/docs/en/blog/4.Tutorials/frontmatter.md
similarity index 100%
rename from docs/en/4.Tutorials/frontmatter.md
rename to docs/en/blog/4.Tutorials/frontmatter.md
diff --git a/docs/en/notes/theme/config/basic.md b/docs/en/config/basic.md
similarity index 100%
rename from docs/en/notes/theme/config/basic.md
rename to docs/en/config/basic.md
diff --git a/docs/en/notes/theme/config/frontmatter/article.md b/docs/en/config/frontmatter/article.md
similarity index 100%
rename from docs/en/notes/theme/config/frontmatter/article.md
rename to docs/en/config/frontmatter/article.md
diff --git a/docs/en/notes/theme/config/frontmatter/basic.md b/docs/en/config/frontmatter/basic.md
similarity index 100%
rename from docs/en/notes/theme/config/frontmatter/basic.md
rename to docs/en/config/frontmatter/basic.md
diff --git a/docs/en/notes/theme/config/intro.md b/docs/en/config/intro.md
similarity index 100%
rename from docs/en/notes/theme/config/intro.md
rename to docs/en/config/intro.md
diff --git a/docs/en/notes/theme/config/locales.md b/docs/en/config/locales.md
similarity index 100%
rename from docs/en/notes/theme/config/locales.md
rename to docs/en/config/locales.md
diff --git a/docs/en/notes/theme/config/notes.md b/docs/en/config/notes.md
similarity index 100%
rename from docs/en/notes/theme/config/notes.md
rename to docs/en/config/notes.md
diff --git a/docs/en/notes/theme/guide/custom/home.md b/docs/en/guide/custom/home.md
similarity index 100%
rename from docs/en/notes/theme/guide/custom/home.md
rename to docs/en/guide/custom/home.md
diff --git a/docs/en/notes/theme/guide/custom/style.md b/docs/en/guide/custom/style.md
similarity index 100%
rename from docs/en/notes/theme/guide/custom/style.md
rename to docs/en/guide/custom/style.md
diff --git a/docs/en/notes/theme/guide/features/component.md b/docs/en/guide/features/component.md
similarity index 100%
rename from docs/en/notes/theme/guide/features/component.md
rename to docs/en/guide/features/component.md
diff --git a/docs/en/notes/theme/guide/markdown/abbr.md b/docs/en/guide/markdown/abbr.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/abbr.md
rename to docs/en/guide/markdown/abbr.md
diff --git a/docs/en/notes/theme/guide/markdown/annotation.md b/docs/en/guide/markdown/annotation.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/annotation.md
rename to docs/en/guide/markdown/annotation.md
diff --git a/docs/en/notes/theme/guide/markdown/basic.md b/docs/en/guide/markdown/basic.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/basic.md
rename to docs/en/guide/markdown/basic.md
diff --git a/docs/en/notes/theme/guide/markdown/caniuse.md b/docs/en/guide/markdown/caniuse.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/caniuse.md
rename to docs/en/guide/markdown/caniuse.md
diff --git a/docs/en/notes/theme/guide/markdown/card.md b/docs/en/guide/markdown/card.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/card.md
rename to docs/en/guide/markdown/card.md
diff --git a/docs/en/notes/theme/guide/markdown/collapse.md b/docs/en/guide/markdown/collapse.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/collapse.md
rename to docs/en/guide/markdown/collapse.md
diff --git a/docs/en/notes/theme/guide/markdown/demo-wrapper.md b/docs/en/guide/markdown/demo-wrapper.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/demo-wrapper.md
rename to docs/en/guide/markdown/demo-wrapper.md
diff --git a/docs/en/notes/theme/guide/markdown/extensions.md b/docs/en/guide/markdown/extensions.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/extensions.md
rename to docs/en/guide/markdown/extensions.md
diff --git a/docs/en/notes/theme/guide/markdown/file-tree.md b/docs/en/guide/markdown/file-tree.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/file-tree.md
rename to docs/en/guide/markdown/file-tree.md
diff --git a/docs/en/notes/theme/guide/markdown/icons.md b/docs/en/guide/markdown/icons.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/icons.md
rename to docs/en/guide/markdown/icons.md
diff --git a/docs/en/notes/theme/guide/markdown/include.md b/docs/en/guide/markdown/include.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/include.md
rename to docs/en/guide/markdown/include.md
diff --git a/docs/en/notes/theme/guide/markdown/mark.md b/docs/en/guide/markdown/mark.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/mark.md
rename to docs/en/guide/markdown/mark.md
diff --git a/docs/en/notes/theme/guide/markdown/npm-to.md b/docs/en/guide/markdown/npm-to.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/npm-to.md
rename to docs/en/guide/markdown/npm-to.md
diff --git a/docs/en/notes/theme/guide/markdown/plot.md b/docs/en/guide/markdown/plot.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/plot.md
rename to docs/en/guide/markdown/plot.md
diff --git a/docs/en/notes/theme/guide/markdown/steps.md b/docs/en/guide/markdown/steps.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/steps.md
rename to docs/en/guide/markdown/steps.md
diff --git a/docs/en/notes/theme/guide/markdown/tabs.md b/docs/en/guide/markdown/tabs.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/tabs.md
rename to docs/en/guide/markdown/tabs.md
diff --git a/docs/en/notes/theme/guide/markdown/timeline.md b/docs/en/guide/markdown/timeline.md
similarity index 100%
rename from docs/en/notes/theme/guide/markdown/timeline.md
rename to docs/en/guide/markdown/timeline.md
diff --git a/docs/en/notes/theme/guide/quick-start/blog.md b/docs/en/guide/quick-start/blog.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/blog.md
rename to docs/en/guide/quick-start/blog.md
diff --git a/docs/en/notes/theme/guide/quick-start/deployment.md b/docs/en/guide/quick-start/deployment.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/deployment.md
rename to docs/en/guide/quick-start/deployment.md
diff --git a/docs/en/notes/theme/guide/quick-start/document.md b/docs/en/guide/quick-start/document.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/document.md
rename to docs/en/guide/quick-start/document.md
diff --git a/docs/en/notes/theme/guide/quick-start/international.md b/docs/en/guide/quick-start/international.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/international.md
rename to docs/en/guide/quick-start/international.md
diff --git a/docs/en/notes/theme/guide/quick-start/intro.md b/docs/en/guide/quick-start/intro.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/intro.md
rename to docs/en/guide/quick-start/intro.md
diff --git a/docs/en/notes/theme/guide/quick-start/optimize-build.md b/docs/en/guide/quick-start/optimize-build.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/optimize-build.md
rename to docs/en/guide/quick-start/optimize-build.md
diff --git a/docs/en/notes/theme/guide/quick-start/project-structure.md b/docs/en/guide/quick-start/project-structure.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/project-structure.md
rename to docs/en/guide/quick-start/project-structure.md
diff --git a/docs/en/notes/theme/guide/quick-start/usage.md b/docs/en/guide/quick-start/usage.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/usage.md
rename to docs/en/guide/quick-start/usage.md
diff --git a/docs/en/notes/theme/guide/quick-start/write.md b/docs/en/guide/quick-start/write.md
similarity index 100%
rename from docs/en/notes/theme/guide/quick-start/write.md
rename to docs/en/guide/quick-start/write.md
diff --git a/docs/en/notes/theme/snippet/create.snippet.md b/docs/en/snippet/create.snippet.md
similarity index 100%
rename from docs/en/notes/theme/snippet/create.snippet.md
rename to docs/en/snippet/create.snippet.md
diff --git a/docs/en/notes/theme/snippet/include-1.snippet.md b/docs/en/snippet/include-1.snippet.md
similarity index 100%
rename from docs/en/notes/theme/snippet/include-1.snippet.md
rename to docs/en/snippet/include-1.snippet.md
diff --git a/docs/en/notes/theme/snippet/include-2.snippet.md b/docs/en/snippet/include-2.snippet.md
similarity index 100%
rename from docs/en/notes/theme/snippet/include-2.snippet.md
rename to docs/en/snippet/include-2.snippet.md
diff --git a/docs/notes/theme/guide/api/client.md b/docs/guide/api/client.md
similarity index 100%
rename from docs/notes/theme/guide/api/client.md
rename to docs/guide/api/client.md
diff --git a/docs/notes/theme/guide/api/node.md b/docs/guide/api/node.md
similarity index 62%
rename from docs/notes/theme/guide/api/node.md
rename to docs/guide/api/node.md
index a156f756..572066e2 100644
--- a/docs/notes/theme/guide/api/node.md
+++ b/docs/guide/api/node.md
@@ -31,18 +31,18 @@ __options__ : `PlumeThemeOptions`
查看 [主题配置](../config/navbar.md) 了解更多。
-## `defineNotesConfig(options)`
+## `defineCollections(options)`
-__options:__ `NotesOptions`
+__options:__ `(ThemePostCollection | ThemeDocCollection)[]`
-主题 notes 配置类型帮助函数
+主题 collections 配置类型帮助函数
-查看 [主题配置](../config/notes.md) 了解更多。
+查看 [主题配置](../config/collection.md) 了解更多。
-## `defineNoteConfig(options)`
+## `defineCollection(options)`
-__options:__ `NoteItem`
+__options:__ `ThemePostCollection | ThemeDocCollection`
-主题 单个 note (`NoteItem`) 配置类型帮助函数
+主题 单个 collection 配置类型帮助函数
-查看 [主题配置](../config/notes.md) 了解更多。
+查看 [主题配置](../config/collection.md) 了解更多。
diff --git a/docs/notes/theme/guide/chart/chart.md b/docs/guide/chart/chart.md
similarity index 100%
rename from docs/notes/theme/guide/chart/chart.md
rename to docs/guide/chart/chart.md
diff --git a/docs/notes/theme/guide/chart/echarts.md b/docs/guide/chart/echarts.md
similarity index 100%
rename from docs/notes/theme/guide/chart/echarts.md
rename to docs/guide/chart/echarts.md
diff --git a/docs/notes/theme/guide/chart/flowchart.md b/docs/guide/chart/flowchart.md
similarity index 100%
rename from docs/notes/theme/guide/chart/flowchart.md
rename to docs/guide/chart/flowchart.md
diff --git a/docs/notes/theme/guide/chart/markmap.md b/docs/guide/chart/markmap.md
similarity index 100%
rename from docs/notes/theme/guide/chart/markmap.md
rename to docs/guide/chart/markmap.md
diff --git a/docs/notes/theme/guide/chart/mermaid.md b/docs/guide/chart/mermaid.md
similarity index 100%
rename from docs/notes/theme/guide/chart/mermaid.md
rename to docs/guide/chart/mermaid.md
diff --git a/docs/notes/theme/guide/chart/plantuml.md b/docs/guide/chart/plantuml.md
similarity index 100%
rename from docs/notes/theme/guide/chart/plantuml.md
rename to docs/guide/chart/plantuml.md
diff --git a/docs/guide/code/code-tabs.md b/docs/guide/code/code-tabs.md
new file mode 100644
index 00000000..8a09dd8c
--- /dev/null
+++ b/docs/guide/code/code-tabs.md
@@ -0,0 +1,290 @@
+---
+title: 代码分组
+icon: fluent:group-list-20-filled
+createTime: 2024/04/04 10:36:59
+permalink: /guide/code/group/
+---
+
+## 概述
+
+代码组(Code Tabs)是 主题 中用于并排展示多个相关代码片段的强大功能。
+通过标签页形式组织代码,您可以清晰对比不同技术栈、配置方案或语言版本的实现差异。
+
+## 基础语法
+
+### 多代码块分组
+
+使用代码组语法将多个代码块组织在同一标签容器中:
+
+**输入:**
+
+````md
+::: code-tabs
+@tab config.js
+```js
+/**
+ * @type {import('vuepress').UserConfig}
+ */
+const config = {
+ // ..
+}
+
+export default config
+```
+
+@tab config.ts
+```ts
+import type { UserConfig } from 'vuepress'
+
+const config: UserConfig = {
+ // ..
+}
+
+export default config
+```
+:::
+````
+
+**输出:**
+
+::: code-tabs
+@tab config.js
+
+```js
+/**
+ * @type {import('vuepress').UserConfig}
+ */
+const config = {
+ // ..
+}
+
+export default config
+```
+
+@tab config.ts
+
+```ts
+import type { UserConfig } from 'vuepress'
+
+const config: UserConfig = {
+ // ..
+}
+
+export default config
+```
+
+:::
+
+### 设置默认激活标签
+
+通过 `@tab:active` 语法指定默认显示的代码标签:
+
+**输入:**
+
+````md
+::: code-tabs
+@tab config.js
+```js
+/**
+ * @type {import('vuepress').UserConfig}
+ */
+const config = {
+ // ..
+}
+
+export default config
+```
+
+@tab:active config.ts
+```ts
+import type { UserConfig } from 'vuepress'
+
+const config: UserConfig = {
+ // ..
+}
+
+export default config
+```
+:::
+````
+
+**输出:**
+
+::: code-tabs
+@tab config.js
+
+```js
+/**
+ * @type {import('vuepress').UserConfig}
+ */
+const config = {
+ // ..
+}
+
+export default config
+```
+
+@tab:active config.ts
+
+```ts
+import type { UserConfig } from 'vuepress'
+
+const config: UserConfig = {
+ // ..
+}
+
+export default config
+```
+
+:::
+
+## 标签图标支持
+
+主题为代码组标签提供智能图标显示功能,基于标签标题自动匹配相关技术图标。
+
+### 自动图标识别
+
+主题内置了主流技术和语言的图标映射:
+
+**输入:**
+
+````md
+::: code-tabs
+@tab pnpm
+
+```sh
+pnpm i
+```
+
+@tab yarn
+
+```sh
+yarn
+```
+
+@tab npm
+
+```sh
+npm install
+```
+
+:::
+````
+
+**输出:**
+
+::: code-tabs
+@tab pnpm
+
+```sh
+pnpm i
+```
+
+@tab yarn
+
+```sh
+yarn
+```
+
+@tab npm
+
+```sh
+npm install
+```
+
+:::
+
+### 支持的图标类别
+
+主题默认适配以下技术栈的图标:
+
+- **运行环境**:Node.js、Deno、Bun
+- **包管理器**:pnpm、yarn、npm
+- **前端框架**:Vue、React、Angular、Svelte、Solid、Next.js、Nuxt
+- **编程语言**:TypeScript、JavaScript、C、C++、Java、Python、Rust、Kotlin、Swift、Go
+
+::: info 图标支持反馈
+如果您使用的技术栈未能正确显示图标,欢迎提交 [issue](https://github.com/pengzhanbo/vuepress-theme-plume/issues/new) 告知我们,我们将尽快添加相关图标支持。
+:::
+
+## 图标配置选项
+
+通过 `markdown.codeTabs` 配置项精确控制图标显示行为:
+
+```ts
+export default defineUserConfig({
+ theme: plumeTheme({
+ markdown: {
+ codeTabs: {
+ icon: true, // 启用图标功能
+ }
+ },
+ })
+})
+```
+
+配置接口定义:
+
+```ts
+export interface CodeTabsOptions {
+ icon?: boolean | {
+ named?: false | string[]
+ extensions?: false | string[]
+ }
+}
+```
+
+### 配置示例
+
+**禁用所有图标**:
+
+```ts
+export default defineUserConfig({
+ theme: plumeTheme({
+ markdown: {
+ codeTabs: {
+ icon: false
+ }
+ }
+ })
+})
+```
+
+**仅显示指定技术栈图标**:
+
+```ts
+export default defineUserConfig({
+ theme: plumeTheme({
+ markdown: {
+ codeTabs: {
+ icon: {
+ named: ['pnpm', 'yarn', 'npm'], // 仅匹配这些技术名称
+ extensions: false // 禁用文件扩展名匹配
+ }
+ }
+ }
+ })
+})
+```
+
+**配置说明**:
+
+- `named`:精确匹配技术名称(如 `pnpm`、`vue`、`react`)
+- `extensions`:匹配文件扩展名(如 `.ts`、`.js`、`.py`)
+- 设置为 `false` 禁用对应匹配方式
+- 空数组使用默认匹配规则
+- 字符串匹配区分大小写
+
+## 性能优化说明
+
+::: tip 图标体积优化
+您无需担心图标资源对构建体积的影响。代码组图标基于 Iconify 体系实现,配合本地安装的 `@iconify/json` 包,主题会自动:
+
+- 解析并提取实际使用的图标数据
+- 生成优化的本地图标资源
+- 确保相同图标仅打包一次
+
+每个彩色图标的平均体积仅为 1-2KB,即使大量使用不同图标,对最终构建体积的影响也微乎其微。
+:::
+
+通过合理的配置和使用,代码组功能能够显著提升技术文档的可读性和用户体验,帮助读者更高效地理解不同技术方案间的差异。
diff --git a/docs/notes/theme/guide/code/copy-code.md b/docs/guide/code/copy-code.md
similarity index 100%
rename from docs/notes/theme/guide/code/copy-code.md
rename to docs/guide/code/copy-code.md
diff --git a/docs/notes/theme/guide/code/features.md b/docs/guide/code/features.md
similarity index 100%
rename from docs/notes/theme/guide/code/features.md
rename to docs/guide/code/features.md
diff --git a/docs/notes/theme/guide/code/import.md b/docs/guide/code/import.md
similarity index 100%
rename from docs/notes/theme/guide/code/import.md
rename to docs/guide/code/import.md
diff --git a/docs/notes/theme/guide/code/intro.md b/docs/guide/code/intro.md
similarity index 100%
rename from docs/notes/theme/guide/code/intro.md
rename to docs/guide/code/intro.md
diff --git a/docs/notes/theme/guide/code/twoslash.md b/docs/guide/code/twoslash.md
similarity index 100%
rename from docs/notes/theme/guide/code/twoslash.md
rename to docs/guide/code/twoslash.md
diff --git a/docs/notes/theme/guide/components/badge.md b/docs/guide/components/badge.md
similarity index 100%
rename from docs/notes/theme/guide/components/badge.md
rename to docs/guide/components/badge.md
diff --git a/docs/notes/theme/guide/components/card-grid.md b/docs/guide/components/card-grid.md
similarity index 100%
rename from docs/notes/theme/guide/components/card-grid.md
rename to docs/guide/components/card-grid.md
diff --git a/docs/notes/theme/guide/components/card-masonry.md b/docs/guide/components/card-masonry.md
similarity index 100%
rename from docs/notes/theme/guide/components/card-masonry.md
rename to docs/guide/components/card-masonry.md
diff --git a/docs/notes/theme/guide/components/card.md b/docs/guide/components/card.md
similarity index 100%
rename from docs/notes/theme/guide/components/card.md
rename to docs/guide/components/card.md
diff --git a/docs/notes/theme/guide/components/home-box.md b/docs/guide/components/home-box.md
similarity index 100%
rename from docs/notes/theme/guide/components/home-box.md
rename to docs/guide/components/home-box.md
diff --git a/docs/notes/theme/guide/components/icon.md b/docs/guide/components/icon.md
similarity index 100%
rename from docs/notes/theme/guide/components/icon.md
rename to docs/guide/components/icon.md
diff --git a/docs/notes/theme/guide/components/image-card.md b/docs/guide/components/image-card.md
similarity index 100%
rename from docs/notes/theme/guide/components/image-card.md
rename to docs/guide/components/image-card.md
diff --git a/docs/notes/theme/guide/components/link-card.md b/docs/guide/components/link-card.md
similarity index 100%
rename from docs/notes/theme/guide/components/link-card.md
rename to docs/guide/components/link-card.md
diff --git a/docs/notes/theme/guide/components/npm-badge.md b/docs/guide/components/npm-badge.md
similarity index 100%
rename from docs/notes/theme/guide/components/npm-badge.md
rename to docs/guide/components/npm-badge.md
diff --git a/docs/notes/theme/guide/components/plot.md b/docs/guide/components/plot.md
similarity index 100%
rename from docs/notes/theme/guide/components/plot.md
rename to docs/guide/components/plot.md
diff --git a/docs/notes/theme/guide/components/repo-card.md b/docs/guide/components/repo-card.md
similarity index 100%
rename from docs/notes/theme/guide/components/repo-card.md
rename to docs/guide/components/repo-card.md
diff --git a/docs/notes/theme/guide/components/swiper.md b/docs/guide/components/swiper.md
similarity index 100%
rename from docs/notes/theme/guide/components/swiper.md
rename to docs/guide/components/swiper.md
diff --git a/docs/notes/theme/guide/custom/component-overrides.md b/docs/guide/custom/component-overrides.md
similarity index 100%
rename from docs/notes/theme/guide/custom/component-overrides.md
rename to docs/guide/custom/component-overrides.md
diff --git a/docs/notes/theme/guide/custom/home.md b/docs/guide/custom/home.md
similarity index 96%
rename from docs/notes/theme/guide/custom/home.md
rename to docs/guide/custom/home.md
index 8e5cf045..fc8dec04 100644
--- a/docs/notes/theme/guide/custom/home.md
+++ b/docs/guide/custom/home.md
@@ -514,9 +514,33 @@ config:
:::
-### blog
+### posts
-将 博客文章列表页 作为一个单独区域,插入到 首页中。
+将 post 集合文章列表页 作为一个单独区域,插入到 首页中。
+
+```ts
+interface PlumeThemeHomePosts extends PlumeHomeConfigBase {
+ type: 'posts'
+ collection?: string
+}
+```
+
+当存在多个 post 集合时,默认读取第一个集合的文章列表页。
+还可以通过 `collection` 配置项来指定读取哪个集合的文章列表页。
+
+`collection` 的值应该与 集合的 `dir` 值相同。
+
+**示例:**
+
+```md
+---
+home: true
+config:
+ -
+ type: posts
+ collection: blog
+---
+```
### profile
diff --git a/docs/notes/theme/guide/custom/slots.md b/docs/guide/custom/slots.md
similarity index 100%
rename from docs/notes/theme/guide/custom/slots.md
rename to docs/guide/custom/slots.md
diff --git a/docs/notes/theme/guide/custom/style.md b/docs/guide/custom/style.md
similarity index 100%
rename from docs/notes/theme/guide/custom/style.md
rename to docs/guide/custom/style.md
diff --git a/docs/notes/theme/guide/embed/acfun.md b/docs/guide/embed/acfun.md
similarity index 100%
rename from docs/notes/theme/guide/embed/acfun.md
rename to docs/guide/embed/acfun.md
diff --git a/docs/notes/theme/guide/embed/artplayer.md b/docs/guide/embed/artplayer.md
similarity index 100%
rename from docs/notes/theme/guide/embed/artplayer.md
rename to docs/guide/embed/artplayer.md
diff --git a/docs/notes/theme/guide/embed/audioReader.md b/docs/guide/embed/audioReader.md
similarity index 100%
rename from docs/notes/theme/guide/embed/audioReader.md
rename to docs/guide/embed/audioReader.md
diff --git a/docs/notes/theme/guide/embed/bilibili.md b/docs/guide/embed/bilibili.md
similarity index 100%
rename from docs/notes/theme/guide/embed/bilibili.md
rename to docs/guide/embed/bilibili.md
diff --git a/docs/notes/theme/guide/embed/pdf.md b/docs/guide/embed/pdf.md
similarity index 100%
rename from docs/notes/theme/guide/embed/pdf.md
rename to docs/guide/embed/pdf.md
diff --git a/docs/notes/theme/guide/embed/youtube.md b/docs/guide/embed/youtube.md
similarity index 100%
rename from docs/notes/theme/guide/embed/youtube.md
rename to docs/guide/embed/youtube.md
diff --git a/docs/notes/theme/guide/features/bulletin.md b/docs/guide/features/bulletin.md
similarity index 100%
rename from docs/notes/theme/guide/features/bulletin.md
rename to docs/guide/features/bulletin.md
diff --git a/docs/notes/theme/guide/features/changelog.md b/docs/guide/features/changelog.md
similarity index 100%
rename from docs/notes/theme/guide/features/changelog.md
rename to docs/guide/features/changelog.md
diff --git a/docs/notes/theme/guide/features/comments.md b/docs/guide/features/comments.md
similarity index 100%
rename from docs/notes/theme/guide/features/comments.md
rename to docs/guide/features/comments.md
diff --git a/docs/notes/theme/guide/features/component.md b/docs/guide/features/component.md
similarity index 100%
rename from docs/notes/theme/guide/features/component.md
rename to docs/guide/features/component.md
diff --git a/docs/notes/theme/guide/features/contributors.md b/docs/guide/features/contributors.md
similarity index 100%
rename from docs/notes/theme/guide/features/contributors.md
rename to docs/guide/features/contributors.md
diff --git a/docs/notes/theme/guide/features/copyright.md b/docs/guide/features/copyright.md
similarity index 100%
rename from docs/notes/theme/guide/features/copyright.md
rename to docs/guide/features/copyright.md
diff --git a/docs/notes/theme/guide/features/encryption.md b/docs/guide/features/encryption.md
similarity index 100%
rename from docs/notes/theme/guide/features/encryption.md
rename to docs/guide/features/encryption.md
diff --git a/docs/notes/theme/guide/features/friend-links.md b/docs/guide/features/friend-links.md
similarity index 100%
rename from docs/notes/theme/guide/features/friend-links.md
rename to docs/guide/features/friend-links.md
diff --git a/docs/notes/theme/guide/features/icon.md b/docs/guide/features/icon.md
similarity index 100%
rename from docs/notes/theme/guide/features/icon.md
rename to docs/guide/features/icon.md
diff --git a/docs/notes/theme/guide/features/image-preview.md b/docs/guide/features/image-preview.md
similarity index 100%
rename from docs/notes/theme/guide/features/image-preview.md
rename to docs/guide/features/image-preview.md
diff --git a/docs/notes/theme/guide/features/replace-assets.md b/docs/guide/features/replace-assets.md
similarity index 100%
rename from docs/notes/theme/guide/features/replace-assets.md
rename to docs/guide/features/replace-assets.md
diff --git a/docs/notes/theme/guide/features/search.md b/docs/guide/features/search.md
similarity index 100%
rename from docs/notes/theme/guide/features/search.md
rename to docs/guide/features/search.md
diff --git a/docs/notes/theme/guide/features/seo.md b/docs/guide/features/seo.md
similarity index 100%
rename from docs/notes/theme/guide/features/seo.md
rename to docs/guide/features/seo.md
diff --git a/docs/notes/theme/guide/features/sitemap.md b/docs/guide/features/sitemap.md
similarity index 100%
rename from docs/notes/theme/guide/features/sitemap.md
rename to docs/guide/features/sitemap.md
diff --git a/docs/notes/theme/guide/features/watermark.md b/docs/guide/features/watermark.md
similarity index 100%
rename from docs/notes/theme/guide/features/watermark.md
rename to docs/guide/features/watermark.md
diff --git a/docs/notes/theme/guide/markdown/abbr.md b/docs/guide/markdown/abbr.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/abbr.md
rename to docs/guide/markdown/abbr.md
diff --git a/docs/notes/theme/guide/markdown/annotation.md b/docs/guide/markdown/annotation.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/annotation.md
rename to docs/guide/markdown/annotation.md
diff --git a/docs/notes/theme/guide/markdown/basic.md b/docs/guide/markdown/basic.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/basic.md
rename to docs/guide/markdown/basic.md
diff --git a/docs/notes/theme/guide/markdown/caniuse.md b/docs/guide/markdown/caniuse.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/caniuse.md
rename to docs/guide/markdown/caniuse.md
diff --git a/docs/notes/theme/guide/markdown/card.md b/docs/guide/markdown/card.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/card.md
rename to docs/guide/markdown/card.md
diff --git a/docs/notes/theme/guide/markdown/chat.md b/docs/guide/markdown/chat.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/chat.md
rename to docs/guide/markdown/chat.md
diff --git a/docs/notes/theme/guide/markdown/code-tree.md b/docs/guide/markdown/code-tree.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/code-tree.md
rename to docs/guide/markdown/code-tree.md
diff --git a/docs/notes/theme/guide/markdown/collapse.md b/docs/guide/markdown/collapse.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/collapse.md
rename to docs/guide/markdown/collapse.md
diff --git a/docs/notes/theme/guide/markdown/demo-wrapper.md b/docs/guide/markdown/demo-wrapper.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/demo-wrapper.md
rename to docs/guide/markdown/demo-wrapper.md
diff --git a/docs/notes/theme/guide/markdown/extensions.md b/docs/guide/markdown/extensions.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/extensions.md
rename to docs/guide/markdown/extensions.md
diff --git a/docs/notes/theme/guide/markdown/field.md b/docs/guide/markdown/field.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/field.md
rename to docs/guide/markdown/field.md
diff --git a/docs/notes/theme/guide/markdown/file-tree.md b/docs/guide/markdown/file-tree.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/file-tree.md
rename to docs/guide/markdown/file-tree.md
diff --git a/docs/notes/theme/guide/markdown/flex.md b/docs/guide/markdown/flex.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/flex.md
rename to docs/guide/markdown/flex.md
diff --git a/docs/notes/theme/guide/markdown/icons.md b/docs/guide/markdown/icons.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/icons.md
rename to docs/guide/markdown/icons.md
diff --git a/docs/notes/theme/guide/markdown/include.md b/docs/guide/markdown/include.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/include.md
rename to docs/guide/markdown/include.md
diff --git a/docs/notes/theme/guide/markdown/mark.md b/docs/guide/markdown/mark.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/mark.md
rename to docs/guide/markdown/mark.md
diff --git a/docs/notes/theme/guide/markdown/npm-to.md b/docs/guide/markdown/npm-to.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/npm-to.md
rename to docs/guide/markdown/npm-to.md
diff --git a/docs/notes/theme/guide/markdown/plot.md b/docs/guide/markdown/plot.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/plot.md
rename to docs/guide/markdown/plot.md
diff --git a/docs/notes/theme/guide/markdown/steps.md b/docs/guide/markdown/steps.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/steps.md
rename to docs/guide/markdown/steps.md
diff --git a/docs/notes/theme/guide/markdown/table.md b/docs/guide/markdown/table.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/table.md
rename to docs/guide/markdown/table.md
diff --git a/docs/notes/theme/guide/markdown/tabs.md b/docs/guide/markdown/tabs.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/tabs.md
rename to docs/guide/markdown/tabs.md
diff --git a/docs/notes/theme/guide/markdown/timeline.md b/docs/guide/markdown/timeline.md
similarity index 100%
rename from docs/notes/theme/guide/markdown/timeline.md
rename to docs/guide/markdown/timeline.md
diff --git a/docs/notes/theme/guide/quick-start/blog.md b/docs/guide/quick-start/blog.md
similarity index 100%
rename from docs/notes/theme/guide/quick-start/blog.md
rename to docs/guide/quick-start/blog.md
diff --git a/docs/guide/quick-start/collection-doc.md b/docs/guide/quick-start/collection-doc.md
new file mode 100644
index 00000000..51267046
--- /dev/null
+++ b/docs/guide/quick-start/collection-doc.md
@@ -0,0 +1,359 @@
+---
+title: doc 集合
+icon: streamline-ultimate:sidebar-line-left
+createTime: 2025/10/05 17:11:48
+permalink: /guide/collection/doc/
+---
+
+## 概述
+
+**doc 集合**专为管理结构化文档而设计,适用于文章间存在强关联关系、需要整体呈现的场景。典型应用包括:
+
+- API 技术文档
+- 产品使用教程
+- 专题开发指南
+- 知识体系笔记
+
+该集合通过**智能侧边导航栏**实现文档间的快速跳转与内容组织。
+
+::: info 主题支持配置多个独立的 doc 集合
+:::
+
+## 创建 doc 集合
+
+通过三个步骤快速创建文档集合:
+
+:::: steps
+
+- **创建文档目录**
+
+ ::: file-tree
+ - docs
+ - ++ guide
+ - ++ intro.md
+ - ++ install.md
+ - ++ …
+ :::
+
+- **配置集合参数**
+
+ ::: code-tabs#config
+
+ @tab .vuepress/config.ts
+
+ ```ts twoslash
+ import { defineUserConfig } from 'vuepress'
+ import { plumeTheme } from 'vuepress-theme-plume'
+
+ export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [ // [!code focus:3]
+ { type: 'doc', dir: 'guide', title: '指南' }
+ ]
+ })
+ })
+ ```
+
+ @tab .vuepress/plume.config.ts
+
+ ```ts twoslash
+ import { defineThemeConfig } from 'vuepress-theme-plume'
+
+ export default defineThemeConfig({
+ collections: [ // [!code focus:3]
+ { type: 'doc', dir: 'guide', title: '指南' }
+ ]
+ })
+ ```
+
+ :::
+
+- **完成配置**
+::::
+
+### 多语言支持
+
+为不同语言版本配置独立的文档集合:
+
+::: file-tree
+
+- docs
+ - guide
+ - intro.md
+ - install.md
+ - …
+ - en
+ - guide
+ - intro.md
+ - install.md
+ - …
+:::
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ locales: {
+ '/': { // [!code focus:5]
+ collections: [
+ { type: 'doc', dir: 'guide', title: '指南' }
+ ]
+ },
+ '/en/': { // [!code focus:5]
+ collections: [
+ { type: 'doc', dir: 'guide', title: 'Guide' }
+ ]
+ }
+ }
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ locales: {
+ '/': { // [!code focus:5]
+ collections: [
+ { type: 'doc', dir: 'guide', title: '指南' }
+ ]
+ },
+ '/en/': { // [!code focus:5]
+ collections: [
+ { type: 'doc', dir: 'guide', title: 'Guide' }
+ ]
+ }
+ }
+})
+```
+
+:::
+
+## 目录结构配置
+
+`dir` 参数定义文档源文件位置,支持相对和绝对路径:
+
+```ts
+dir: 'guide' // 指向 docs/guide
+dir: '/guide/' // 等效写法
+dir: './guide/' // 等效写法
+dir: '/team/guide/' // 指向 docs/team/guide
+```
+
+::: info 多语言环境下路径相对于对应的语言目录
+:::
+
+## 自动 Frontmatter 生成
+
+::: info 仅在执行 `vuepress dev` 或 `vuepress build` 后生效
+:::
+
+支持自动生成文档元数据,可自定义处理逻辑:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl:10]
+ autoFrontmatter: {
+ title: true, // 自动生成标题
+ createTime: true, // 自动生成创建时间
+ permalink: true, // 自动生成永久链接
+ transform: (data, context, locale) => { // 自定义转换
+ data.foo ??= 'foo'
+ return data
+ }
+ }
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl:10]
+ autoFrontmatter: {
+ title: true, // 自动生成标题
+ createTime: true, // 自动生成创建时间
+ permalink: true, // 自动生成永久链接
+ transform: (data, context, locale) => { // 自定义转换
+ data.foo ??= 'foo'
+ return data
+ }
+ }
+ }
+ ]
+})
+```
+
+:::
+
+生成效果:
+
+```md title="docs/guide/install.md"
+---
+title: install
+createTime: 2025/03/24 20:15:12
+permalink: /guide/a1b2c3d4/
+---
+```
+
+## 侧边栏配置
+
+提供灵活的侧边栏导航配置选项:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl:5]
+ sidebar: [ // 手动配置导航项
+ 'intro',
+ 'install',
+ ],
+ sidebarScrollbar: true, // 显示侧边栏滚动条
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl:5]
+ sidebar: [ // 手动配置导航项
+ 'intro',
+ 'install',
+ ],
+ sidebarScrollbar: true, // 显示侧边栏滚动条
+ }
+ ]
+})
+```
+
+:::
+
+### 自动生成侧边栏
+
+设置 `sidebar: 'auto'` 自动基于目录结构生成导航:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl]
+ sidebar: 'auto', // 自动生成导航结构
+ sidebarCollapsed: undefined, // 折叠状态:true-折叠 false-展开
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'guide',
+ title: '指南',
+ // [!code hl]
+ sidebar: 'auto', // 自动生成导航结构
+ sidebarCollapsed: undefined, // 折叠状态:true-折叠 false-展开
+ }
+ ]
+})
+```
+
+:::
+
+### 手动配置侧边栏
+
+[查看**侧边栏**详细配置说明](./sidebar.md){.read-more}
+
+## 集合首页定制
+
+目录下的 `README.md` 自动作为集合首页,支持转换为功能丰富的门户布局:
+
+```md title="typescript/README.md"
+---
+pageLayout: home
+config:
+ - type: hero
+ title: TypeScript 完全指南
+ description: 从基础到进阶的 TypeScript 学习路径
+ - type: features
+ features:
+ - title: 类型系统
+ details: 深入理解 TypeScript 类型系统
+ icon: mdi:code-braces
+ - title: 高级特性
+ details: 掌握泛型、装饰器等高级功能
+ icon: mdi:rocket-launch
+---
+```
diff --git a/docs/guide/quick-start/collection-post.md b/docs/guide/quick-start/collection-post.md
new file mode 100644
index 00000000..110e5aae
--- /dev/null
+++ b/docs/guide/quick-start/collection-post.md
@@ -0,0 +1,852 @@
+---
+title: post 集合
+icon: mdi:post-outline
+createTime: 2025/10/05 17:10:57
+permalink: /guide/collection/post/
+---
+
+## 概述
+
+**post 集合**用于管理碎片化的多篇文章集合。这里的"碎片化"指文章间无强关联关系,或仅需扁平化展示的场景,典型应用包括:
+
+- 博客系统
+- 专题专栏
+- 新闻资讯
+- 随笔记录
+
+该集合提供完整的文章管理功能:
+
+- **文章列表页** - 支持置顶、封面图、摘要展示
+- **文章分类页** - 基于目录结构自动生成分类
+- **文章标签页** - 根据页面 `frontmatter.tags` 生成标签
+- **文章归档页** - 基于 `frontmatter.createTime` 生成时间线归档
+
+各页面均预留个人信息展示区域,支持个人简介或组织信息配置。
+
+::: info 主题支持配置多个 post 集合
+:::
+
+## 创建 post 集合
+
+通过三个简单步骤即可完成 post 集合创建:
+
+:::: steps
+
+- **创建文章目录**
+
+ ::: file-tree
+ - docs
+ - ++ blog
+ - ++ post-1.md
+ - ++ post-2.md
+ - ++ …
+ :::
+
+- **配置集合参数**
+
+ ::: code-tabs#config
+
+ @tab .vuepress/config.ts
+
+ ```ts twoslash
+ import { defineUserConfig } from 'vuepress'
+ import { plumeTheme } from 'vuepress-theme-plume'
+
+ export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [ // [!code focus:3]
+ { type: 'post', dir: 'blog', title: '博客' }
+ ]
+ })
+ })
+ ```
+
+ @tab .vuepress/plume.config.ts
+
+ ```ts twoslash
+ import { defineThemeConfig } from 'vuepress-theme-plume'
+
+ export default defineThemeConfig({
+ collections: [ // [!code focus:3]
+ { type: 'post', dir: 'blog', title: '博客' }
+ ]
+ })
+ ```
+
+ :::
+
+- **完成**
+
+::::
+
+配置完成后,主题自动扫描 `docs/blog` 目录并生成以下页面:
+
+- 文章列表页:`/blog/`
+- 文章分类页:`/blog/categories/`
+- 文章标签页:`/blog/tags/`
+- 文章归档页:`/blog/archives/`
+
+启用 `autoFrontmatter` 后,系统自动为 Markdown 文件生成永久链接:
+
+```md title="docs/blog/post-1.md"
+---
+title: post-1
+createTime: 2025/03/24 20:15:12
+permalink: /blog/a1b2c3d4/
+---
+```
+
+### 多语言支持
+
+在主题多语言配置中定义不同语言的 post 集合:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ locales: {
+ '/': { // [!code focus:5]
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' }
+ ]
+ },
+ '/en/': { // [!code focus:5]
+ collections: [
+ { type: 'post', dir: 'blog', title: 'Blog' }
+ ]
+ }
+ }
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ locales: {
+ '/': { // [!code focus:5]
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' }
+ ]
+ },
+ '/en/': { // [!code focus:5]
+ collections: [
+ { type: 'post', dir: 'blog', title: 'Blog' }
+ ]
+ }
+ }
+})
+```
+
+:::
+
+## 集合目录配置
+
+`dir` 参数指定集合的源文件目录,支持绝对路径和相对路径(均相对于源目录):
+
+```ts
+dir: 'blog' // 指向 docs/blog
+dir: '/blog/' // 等效写法
+dir: './blog/' // 等效写法
+dir: '/team/blog/' // 指向 docs/team/blog
+```
+
+::: info 在多语言下,则相对于多语言目录
+:::
+
+### 文件过滤
+
+通过 `include` 和 `exclude` 配置过滤 Markdown 文件,
+使用 [picomatch ::quill:search::](https://chat.baidu.com/search?word=picomatch+%E7%9A%84+glob+pattern+%E8%A7%84%E5%88%99){.no-icon} 模式匹配:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:4]
+ include: ['**/*.md'], // 包含所有 .md 文件
+ exclude: ['**/*.snippet.md'] // 排除代码片段文件
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:4]
+ include: ['**/*.md'], // 包含所有 .md 文件
+ exclude: ['**/*.snippet.md'] // 排除代码片段文件
+ }
+ ]
+})
+```
+
+:::
+
+## 页面生成配置
+
+默认基于 `dir` 配置生成页面路径,支持完整自定义:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:16]
+ postList: true, // 启用文章列表页
+ link: '/blog/', // 列表页链接
+ linkPrefix: '/blog/', // 文章链接前缀
+ tags: true, // 启用标签页
+ tagsLink: '/blog/tags/', // 标签页链接
+ tagsTheme: 'colored', // 标签主题 colored|gray|brand
+ tagsText: '标签', // 标签页标题
+ archives: true, // 启用归档页
+ archivesLink: '/blog/archives/', // 归档页链接
+ archivesText: '归档', // 归档页标题
+ categories: true, // 启用分类页
+ categoriesLink: '/blog/categories/', // 分类页链接
+ categoriesText: '分类', // 分类页标题
+ categoriesExpand: 'deep', // 分类展开层级 number|'deep'
+ categoriesTransform: categories => categories, // 分类转换函数
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:16]
+ postList: true, // 启用文章列表页
+ link: '/blog/', // 列表页链接
+ linkPrefix: '/blog/', // 文章链接前缀
+ tags: true, // 启用标签页
+ tagsLink: '/blog/tags/', // 标签页链接
+ tagsTheme: 'colored', // 标签主题 colored|gray|brand
+ tagsText: '标签', // 标签页标题
+ archives: true, // 启用归档页
+ archivesLink: '/blog/archives/', // 归档页链接
+ archivesText: '归档', // 归档页标题
+ categories: true, // 启用分类页
+ categoriesLink: '/blog/categories/', // 分类页链接
+ categoriesText: '分类', // 分类页标题
+ categoriesExpand: 'deep', // 分类展开层级 number|'deep'
+ categoriesTransform: categories => categories, // 分类转换函数
+ }
+ ]
+})
+```
+
+:::
+
+## 自动 Frontmatter 生成
+
+::: info 仅在执行 `vuepress dev` 或 `vuepress build` 后生效
+:::
+
+支持集合级别的 frontmatter 自动生成,可自定义转换逻辑:
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:10]
+ autoFrontmatter: {
+ title: true, // 自动生成标题
+ createTime: true, // 自动生成创建时间
+ permalink: true, // 自动生成永久链接
+ transform: (data, context, locale) => { // 自定义转换
+ data.foo ??= 'foo'
+ return data
+ }
+ }
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:10]
+ autoFrontmatter: {
+ title: true, // 自动生成标题
+ createTime: true, // 自动生成创建时间
+ permalink: true, // 自动生成永久链接
+ transform: (data, context, locale) => { // 自定义转换
+ data.foo ??= 'foo'
+ return data
+ }
+ }
+ }
+ ]
+})
+```
+
+:::
+
+生成示例:
+
+```md title="docs/blog/post-1.md"
+---
+title: post-1
+createTime: 2025/03/24 20:15:12
+permalink: /blog/a1b2c3d4/
+---
+```
+
+## 个人信息配置
+
+每个 post 集合支持独立配置个人信息展示区域。未配置时继承[主题默认 profile 设置](../../config/theme.md#profile)。
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:10]
+ profile: {
+ avatar: '/avatar.jpg', // 头像路径
+ name: '张三', // 显示名称
+ description: '个人简介', // 简介文本
+ circle: true, // 圆形头像
+ location: '广州', // 所在地
+ organization: '组织名称', // 所属组织
+ layout: 'right', // 布局位置 left|right
+ }
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:10]
+ profile: {
+ avatar: '/avatar.jpg', // 头像路径
+ name: '张三', // 显示名称
+ description: '个人简介', // 简介文本
+ circle: true, // 圆形头像
+ location: '广州', // 所在地
+ organization: '组织名称', // 所属组织
+ layout: 'right', // 布局位置 left|right
+ }
+ }
+ ]
+})
+```
+
+:::
+
+## 社交链接
+
+个人信息区域支持社交链接配置,未配置时继承[主题默认 social 设置](../../config/theme.md#social)。
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:4]
+ social: [
+ { icon: 'github', link: 'https://github.com/pengzhanbo' },
+ ],
+ }
+ ]
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+``` ts
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // [!code hl:4]
+ social: [
+ { icon: 'github', link: 'https://github.com/pengzhanbo' },
+ ],
+ }
+ ]
+})
+```
+
+:::
+
+### 内置图标库
+
+::: flex
+
+
+
+- discord
+- telegram
+- facebook
+- github
+- instagram
+- linkedin
+- mastodon
+- npm
+- slack
+- twitter
+- x
+- youtube
+
+
+
+- qq
+- weibo
+- bilibili
+- gitlab
+- docker
+- juejin
+- zhihu
+- douban
+- steam
+- stackoverflow
+- xbox
+
+
+
+:::
+
+## 文章封面配置
+
+文章列表页支持封面图展示,提供多种布局和尺寸选项。
+
+### 基础配置
+
+在 frontmatter 中定义封面图路径:
+
+```md{3}
+---
+title: 文章标题
+cover: /images/cover.jpg
+---
+```
+
+**路径规范**:仅支持绝对路径或远程 URL。本地图片需放置在 `.vuepress/public` 目录:
+
+::: file-tree
+
+- docs
+ - .vuepress
+ - public
+ - images
+ - cover.jpg
+ - config.ts
+ - article.md
+:::
+
+默认展示效果:
+
+
+
+
+
+### 高级布局
+
+调整封面图位置和尺寸:
+
+```md{4-7}
+---
+title: 文章标题
+cover: /images/cover.jpg
+coverStyle:
+ layout: left
+ ratio: 16:9
+ width: 300
+---
+```
+
+效果展示:
+
+
+
+
+
+### 紧凑模式
+
+无摘要时启用紧凑布局:
+
+```md{8}
+---
+title: 文章标题
+cover: /images/cover.jpg
+coverStyle:
+ layout: left
+ ratio: 16:9
+ width: 300
+ compact: true
+---
+```
+
+效果展示:
+
+
+
+
+
+::: warning `compact: true` 仅在无摘要时生效
+:::
+
+### 顶部大图布局
+
+```md{5}
+---
+title: 文章标题
+cover: /images/cover.jpg
+coverStyle:
+ layout: top
+ ratio: 16:9
+ width: 300
+---
+```
+
+效果展示:
+
+
+
+
+
+### 预设配置
+
+为保持视觉统一,支持集合级封面图预设:
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ postCover: {
+ layout: 'left',
+ ratio: '16:9',
+ width: 300,
+ compact: true
+ }
+ }
+ ],
+ })
+})
+```
+
+布局模式说明:
+
+```ts
+type PostCoverLayout = 'left' | 'right' | 'odd-left' | 'odd-right' | 'top'
+
+interface PostCoverStyle {
+ layout?: PostCoverLayout // 布局位置
+ ratio?: number | `${number}:${number}` // 宽高比,默认 '4:3'
+ width?: number // 宽度(左右布局生效),默认 240
+ compact?: boolean // 紧凑模式,默认 false
+}
+```
+
+特殊布局模式:
+
+- `odd-left` - 奇数项居左,偶数项居右
+- `odd-right` - 奇数项居右,偶数项居左
+
+`odd-left` 布局效果:
+
+
+
+
+
+
+
+::: warning 移动端适配
+窄屏设备上自动切换为 `top` 布局以确保显示效果
+:::
+
+## 文章元数据
+
+通过 frontmatter 配置文章元数据:
+
+```md
+---
+title: 文章标题
+createTime: 2024/01/01 00:00:00
+tags:
+ - tag1
+ - tag2
+---
+```
+
+`title` 和 `createTime` 在文件创建时自动生成,支持手动修改。
+
+### 可用属性
+
+| 属性 | 类型 | 默认值 | 说明 |
+| ---------- | ------------------- | -------- | -------------------------- |
+| title | `string` | 文件名 | 文章标题 |
+| createTime | `string` | 当前时间 | 创建时间 |
+| tags | `string[]` | `[]` | 文章标签 |
+| sticky | `boolean \| number` | false | 置顶标识,数字越大排序越前 |
+| draft | `boolean` | false | 草稿模式,构建后隐藏 |
+| cover | `string` | `''` | 封面图路径 |
+| coverStyle | `PostCoverStyle` | `null` | 封面样式配置 |
+| excerpt | `boolean \| string` | '' | 摘要内容,支持自动提取 |
+
+同时支持[通用 frontmatter 配置](../../config/frontmatter/basic.md)中的所有字段。
+
+## 文章摘要配置
+
+### 自动提取
+
+使用 `` 标记摘要截断点:
+
+```md
+---
+title: 标题
+---
+
+摘要内容区域
+
+
+
+正文剩余部分
+```
+
+### 手动定义
+
+通过 excerpt 字段自定义摘要:
+
+```md
+---
+title: 标题
+excerpt: 自定义摘要内容
+---
+```
+
+**配置说明**:
+
+- `excerpt: false` - 禁用摘要(忽略 ``)
+- `excerpt: string` - 自定义内容(忽略 ``)
+
+::: tip 推荐使用 <!-- more --> 注释定义摘要
+:::
+
+## 配置到站点首页
+
+主题提供了两种方式来设置 post 集合 的文章列表页 到站点主页,满足不同的需求场景:
+
+- **方式一:配置 主页的 `pageLayout` 属性为 `posts`**
+
+```md title="docs/README.md"
+---
+pageLayout: posts
+---
+```
+
+还可以通过 `collection` 配置项来指定读取哪个集合的文章列表页,默认读取第一个集合的文章列表页。
+
+`collection` 需要与集合配置的 `dir` 的值相同。
+
+```md title="docs/README.md"
+---
+pageLayout: posts
+collection: blog
+---
+```
+
+此配置会直接将页面应用 `posts` 布局,显示博客文章列表。
+
+这是将主页修改为 博客页的 最简单的方式,但缺点是 缺少灵活性。
+
+- **方式二:配置 主页的 `pageLayout` 属性为 `home`, 添加 `type: posts` 的首页区域类型**
+
+```md title="docs/README.md"
+---
+pageLayout: home
+config:
+ - type: posts
+ collection: blog
+---
+```
+
+使用这种方式,你不仅可以在首页中添加 文章列表,还可以灵活的在页面的其他区域添加不同的内容。
+
+比如,配置首屏为 `banner`,然后紧跟着 博客文章列表:
+
+```md title="docs/README.md"
+---
+pageLayout: home
+config:
+ - type: banner
+ - type: posts
+---
+```
+
+更多自定义配置,请参考 [自定义首页](../custom/home.md)。
+
+当使用以上两种方式 将首页配置为 文章列表页后,由于主题默认依然会生成 文章列表页,
+这导致存在了重复功能的页面。为此,你可能需要在 集合配置中,
+**关闭自动生成博客文章列表页**:
+
+(还可以重新修改 分类页/标签页/归档页的链接地址)
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客', postList: false }
+ ],
+ })
+})
+```
diff --git a/docs/guide/quick-start/collection.md b/docs/guide/quick-start/collection.md
new file mode 100644
index 00000000..2eb8024c
--- /dev/null
+++ b/docs/guide/quick-start/collection.md
@@ -0,0 +1,143 @@
+---
+title: 集合
+icon: fluent:list-bar-tree-16-regular
+createTime: 2025/09/28 14:14:53
+permalink: /guide/collection/
+---
+
+## 概述
+
+==Collections(集合)== 是主题中用于组织和管理文档的核心概念。
+每个集合指向源目录下的特定文件夹,将其中的所有 Markdown 文件作为一个逻辑单元进行管理。
+
+通过灵活的集合配置,您可以轻松构建多种内容体系:
+
+- **博客** - 个人随笔与技术分享
+- **专栏** - 专题系列文章
+- **使用手册** - 产品使用文档
+- **笔记** - 学习笔记与知识整理
+- **产品文档** - 完整的项目文档
+- **知识库** - 团队知识管理体系
+- 更多...
+
+## 创建集合
+
+一个普通的 VuePress 静态站点的文件结构大致如下:
+
+:::file-tree
+
+- my-site
+ - docs \# 源目录
+ - .vuepress/
+ - …
+ - README.md \# 首页
+ - package.json
+
+:::
+
+当你想要添加一个用于 **博客** 的集合:
+
+:::: steps
+
+- **创建 blog 目录**
+
+ :::file-tree
+ - docs
+ - blog
+ - post-1.md
+ - post-2.md
+ - …
+ - …
+ :::
+
+- **在主题配置中添加类型为 `post` 的集合**
+
+ 将 `dir` 配置项指向 `blog` 目录
+
+ ::: code-tabs#config:
+
+ @tab .vuepress/config.ts
+
+ ```ts twoslash
+ import { defineUserConfig } from 'vuepress'
+ import { plumeTheme } from 'vuepress-theme-plume'
+
+ export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ // [!code word:type]
+ { type: 'post', dir: 'blog', title: '博客' } // [!code word:dir]
+ ]
+ })
+ })
+ ```
+
+ @tab .vuepress/plume.config.ts
+
+ ```ts twoslash
+ import { defineThemeConfig } from 'vuepress-theme-plume'
+
+ export default defineThemeConfig({
+ collections: [
+ // [!code word:type]
+ { type: 'post', dir: 'blog', title: '博客' } // [!code word:dir]
+ ]
+ })
+ ```
+
+ :::
+
+ `blog` 目录下的 markdown 文章,在 post 集合中读取为文章列表,并生成列表页、分类页、标签页等页面。
+
+- **完成**
+::::
+
+在这其中,需要注意的是:
+
+- **dir 配置项**
+
+ 集合配置中的 `dir` 指向源目录下的某个文件夹,该文件夹下的所有 markdown 文件都将归属于该集合。
+
+- **type 配置项**
+
+ 集合配置中的 `type` 指定了集合的类型。
+
+ 集合的类型决定了该集合下的文档将会提供哪些功能,当前主题支持的类型如下:
+
+ - `post`:表示碎片化文章的集合,文章之间不存在关联关系或弱关联关系。
+ - `doc`: 表示结构化文章的集合,文章之间存在结构化的强关联关系,作为一个整体。
+
+- **title 配置项**
+
+ 集合配置中的 `title` 指定了集合的名称。
+
+ 在主题中,`title` 用于页面的面包屑导航中。
+
+## 集合类型
+
+集合的类型决定了该集合下的文档将会提供哪些功能。
+
+### post 集合
+
+post 集合提供了以下的功能实现:
+
+- 文章列表页 - 文章置顶、文章封面图、文章摘要等。
+- 文章分类页 - 根据目录结构自动生成分类。
+- 文章标签页 - 根据页面 `frontmatter.tags` 生成标签。
+- 文章归档页 - 根据页面 `frontmatter.createTime` 生成归档。
+
+
+
+### doc 集合
+
+doc 集合提供了以下的功能实现:
+
+- **侧边导航栏** - 提供清晰的文档结构导航
+- **自动生成目录** - 基于文件结构智能生成侧边栏
+- **多级嵌套支持** - 支持复杂的文档层次结构
+
+
+
+## 集合配置
+
+
diff --git a/docs/notes/theme/guide/quick-start/deployment.md b/docs/guide/quick-start/deployment.md
similarity index 100%
rename from docs/notes/theme/guide/quick-start/deployment.md
rename to docs/guide/quick-start/deployment.md
diff --git a/docs/guide/quick-start/intro.md b/docs/guide/quick-start/intro.md
new file mode 100644
index 00000000..6e58e73f
--- /dev/null
+++ b/docs/guide/quick-start/intro.md
@@ -0,0 +1,68 @@
+---
+title: 主题介绍
+icon: mdi:tooltip-text-outline
+createTime: 2024/03/04 11:06:24
+permalink: /guide/intro/
+tags:
+ - 指南
+ - 快速开始
+---
+
+==vuepress-theme-plume== 是基于 VuePress 构建的现代化主题,无论您需要创建**技术博客**、**生活随笔**、**产品文档**、**知识库**还是**系列教程**,都能满足您的多样化需求。
+
+我们在文本排版和图片展示方面进行了深度优化,特别是对 Markdown 语法进行了丰富扩展,让您能够轻松创作出**美观易读、表现力强**的专业内容。
+
+::: details 初次接触 VuePress?
+
+VuePress 是一个[静态站点生成器](https://en.wikipedia.org/wiki/Static_site_Generator) (SSG),
+专门为构建高性能的内容型网站而设计。简而言之,它能将 Markdown 格式的内容通过主题渲染,生成可部署在任何地方的静态 HTML 页面。
+:::
+
+[前往 **VuePress 官网** 深入了解](https://v2.vuepress.vuejs.org/zh/){.read-more}
+
+## 核心优势
+
+相比 VuePress 默认主题,我们提供了显著的改进:
+
+### 🎨 卓越的用户体验
+
+全面优化界面设计和交互逻辑,打造更加美观、简洁且易用的阅读体验。
+
+### 🚀 丰富的功能特性
+
+- **多样化布局**:支持完全自定义的==首页==,可选==文章列表==、==文档==模式
+- **内容增强**:内置==全文搜索==、==文章评论==、==内容加密==、==文章水印==等实用功能
+- **代码展示**:支持代码块==分组==、==折叠==、==聚焦==、==行高亮==、==差异对比==,可嵌入 CodePen、JSFiddle、CodeSandbox 等平台的==代码演示==
+- **图标系统**:集成 [iconify](https://icon-sets.iconify.d/) **200,000+** ==图标==,可选配 `iconfont` / `fontawesome` 图标库
+- **媒体嵌入**:支持==PDF 嵌入==、==Bilibili/Youtube/本地视频==嵌入
+- **图表渲染**:集成 chart.js、Echarts、Mermaid、Flowchart、Markmap、PlantUML 等多种==图表引擎==
+- **布局容器**:灵活的 Markdown 容器语法,提供==提示容器==、==文件树==、==代码树==、==卡片容器==、==瀑布流容器==等
+- **扩展能力**:支持==布局插槽==、==组件覆写==、==自定义样式==,轻松实现个性化布局设计
+
+### 🎉 一切内容皆为 “集合”
+
+将内容划分为多个==集合==,每个集合都有独立的目录,根据不同的集合类型,轻松实现如 **博客**、**专栏**、
+**系列教程**、**知识库**、**产品文档** 等多样化需求。
+
+### ⚡ 高效的开发体验
+
+引入编译缓存机制,缓存 Markdown 文件编译结果和复杂代码块解析结果,大幅提升构建速度。
+
+### 🔧 智能的配置管理
+
+支持独立的主题配置文件,避免因配置修改导致 VuePress 服务频繁重启。在保持配置灵活性的同时,大幅简化配置流程,降低使用门槛。
+
+### 🌟 开箱即用的解决方案
+
+==plume 主题==预先集成了搭建站点所需的常用功能和配置,让您无需关注技术细节,能够**专注于内容创作**,充分发挥 Markdown 增强语法的优势,更好地表达想法。
+
+::: tip 版本说明
+
+本主题基于 [vuepress-next](https://github.com/vuepress/vuepress-next) 开发,目前处于 RC 阶段。
+
+当前版本的功能和 API 已趋于稳定,但未来更新中仍可能出现破坏性变更。
+
+如果您在使用过程中遇到问题或有改进建议,欢迎在 [Issues](https://github.com/pengzhanbo/vuepress-theme-plume/issues)
+中提出,也欢迎通过 [PR](https://github.com/pengzhanbo/vuepress-theme-plume/pulls) 参与主题完善。
+
+:::
diff --git a/docs/guide/quick-start/locales.md b/docs/guide/quick-start/locales.md
new file mode 100644
index 00000000..2ccfea33
--- /dev/null
+++ b/docs/guide/quick-start/locales.md
@@ -0,0 +1,168 @@
+---
+title: 国际化
+icon: material-symbols-light:language
+createTime: 2024/03/05 10:01:26
+permalink: /guide/locales/
+tags:
+ - 指南
+ - i18n
+---
+
+本指南将帮助您快速为 VuePress 主题配置多语言支持。通过简单的目录结构和配置调整,即可实现专业的国际化站点。
+
+## 目录结构规划
+
+首先创建符合多语言要求的目录结构。以下示例展示支持中文、英文和法文的项目布局:
+
+::: file-tree
+
+- docs
+ - **en** # 英文文档目录
+ - foo.md
+ - README.md # 英文首页
+ - **fr** # 法文文档目录
+ - foo.md
+ - README.md # 法文首页
+ - foo.md
+ - README.md # 中文首页
+:::
+
+**目录结构说明**:
+
+- `docs/en/` - 存储英文版本文档
+- `docs/fr/` - 存储法文版本文档
+- `docs/` - 存储默认语言(中文)文档
+
+::: important 保持文件结构一致性
+在不同语言目录中,请保持相同的文件名和目录结构。这确保主题能够在语言切换时正确导航到对应语言的文档版本。
+:::
+
+## VuePress 基础配置
+
+### 设置默认语言
+
+在配置文件 `.vuepress/config.ts` 中声明默认语言:
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+
+export default defineUserConfig({
+ // 设置默认语言代码
+ lang: 'zh-CN', // [!code ++]
+ // 配置多语言支持
+ locales: {
+ '/': { lang: 'zh-CN', title: '博客' }, // 简体中文作为默认语言
+ }
+})
+```
+
+### 添加其他语言支持
+
+扩展 `locales` 配置来支持更多语言:
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+
+export default defineUserConfig({
+ lang: 'zh-CN',
+ locales: {
+ '/': { lang: 'zh-CN', title: '博客' }, // 简体中文
+ '/en/': { lang: 'en-US', title: 'Blog' }, // 美式英语 // [!code ++]
+ '/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语 // [!code ++]
+ }
+})
+```
+
+**配置要点**:
+
+- `locales` 的键名(如 `/en/`)对应文档目录中的语言文件夹名称
+- 这些键名同时作为各语言页面的访问路径前缀
+- 每个语言必须设置正确的 `lang` 属性,即使只使用单一语言
+
+::: tip 语言代码规范
+
+- **路径键名**:遵循 [ISO 639](https://zh.wikipedia.org/wiki/ISO_639-1) 标准(如英语使用 `/en/`)
+- **语言代码**:使用 [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) 标准格式(如英语使用 `en-US`)
+:::
+
+## 主题多语言配置
+
+在主题配置中通过 `locales` 字段为每种语言定制化界面元素:
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ lang: 'zh-CN', // [!code focus:6]
+ locales: {
+ '/': { lang: 'zh-CN', title: '博客' },
+ '/en/': { lang: 'en-US', title: 'Blog' },
+ '/fr/': { lang: 'fr-FR', title: 'Le blog' },
+ },
+ theme: plumeTheme({
+ // 主题级多语言配置
+ locales: { // [!code focus:20]
+ // 简体中文配置
+ '/': {
+ selectLanguageName: '简体中文',
+ navbar: [
+ { text: '首页', link: '/' },
+ { text: '博客', link: '/blog/' },
+ ]
+ },
+ // 英文配置
+ '/en/': {
+ selectLanguageName: 'English',
+ navbar: [
+ { text: 'Home', link: '/en/' },
+ { text: 'Blog', link: '/en/blog/' },
+ ]
+ },
+ // 法文配置
+ '/fr/': { // [!code focus:7]
+ selectLanguageName: 'Français',
+ navbar: [
+ { text: 'Accueil', link: '/fr/' },
+ { text: 'Le Blog', link: '/fr/blog/' },
+ ]
+ }
+ }
+ })
+})
+```
+
+**关键配置项**:
+
+- `selectLanguageName`:在语言选择器中显示的语言名称
+- `navbar`:各语言独有的导航栏配置
+- 所有主题配置项均支持在 `locales` 中按语言重写
+
+## 配置一致性要求
+
+确保 VuePress 配置与主题配置的路径键名完全匹配:
+
+```ts
+export default {
+// VuePress 配置
+ locales: {
+ '/': { /* 中文配置 */ },
+ '/en/': { /* 英文配置 */ },
+ },
+
+ // 主题配置
+ theme: plumeTheme({
+ locales: {
+ '/': { /* 中文主题配置 */ },
+ '/en/': { /* 英文主题配置 */ }
+ }
+ })
+}
+```
+
+## 扩展阅读
+
+- [主题 Locales 配置](../../config/theme.md#locale-配置) - 了解各语言专属的主题行为配置
+- [多语言文本配置](../../config/locales.md) - 掌握界面文本的国际化定制方法
+
+通过以上配置,您的文档站点将具备完整的多语言支持能力,为用户提供更友好的国际化访问体验。
diff --git a/docs/guide/quick-start/optimize-build.md b/docs/guide/quick-start/optimize-build.md
new file mode 100644
index 00000000..981fa261
--- /dev/null
+++ b/docs/guide/quick-start/optimize-build.md
@@ -0,0 +1,107 @@
+---
+title: 构建优化
+icon: clarity:bundle-solid
+outline: 2
+createTime: 2024/09/10 01:50:20
+permalink: /guide/optimize-build/
+---
+
+## 图片尺寸优化
+
+在 Markdown 文档中通过 `` 或 `
` 嵌入图片时,虽然能够正常显示内容,但潜在的布局稳定性问题往往被忽视。
+
+### 布局抖动问题分析
+
+当图片体积较小或网络状况良好时,页面布局抖动并不明显。然而,面对大体积图片或较差的网络环境,图片加载过程中的布局重排问题就会凸显:
+
+1. **加载前**:图片占位空间未被预留,后续内容向上挤压
+2. **加载后**:图片突然占据空间,迫使后续内容重新排列
+3. **用户体验**:频繁的布局变化导致视觉跳动和操作卡顿
+
+### 解决方案:预计算图片尺寸
+
+根据 [MDN 文档](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img#height)的建议,同时指定 `height` 和 `width` 属性能够让浏览器提前计算图片宽高比,预留显示空间,从根本上消除布局偏移。
+
+主题提供的自动化解决方案:
+
+```ts
+export default defineUserConfig({
+ theme: plumeTheme({
+ plugins: {
+ markdownPower: {
+ imageSize: true, // 可选 'local' | 'all'
+ },
+ }
+ })
+})
+```
+
+**配置选项说明**:
+
+- `'local'` 或 `true`:仅为本地图片添加尺寸属性
+- `'all'`:同时处理本地和远程图片资源
+
+**实现机制**:
+
+- 构建时自动分析图片原始尺寸
+- 为 `
` 标签注入精确的 `width` 和 `height` 属性
+- 基于图片宽高比预留显示空间
+
+::: important 性能注意事项
+
+- 此功能仅在**生产环境构建**时生效,避免开发阶段性能损耗
+- 使用 `'all'` 选项时会请求所有远程图片资源,可能显著增加构建时间
+- 优化策略:并发请求 + 头部信息分析,在获取尺寸数据后立即终止连接
+:::
+
+## 图标加载优化
+
+### Iconify 集成优势
+
+主题深度集成 [Iconify](https://icon-sets.iconify.design/) 项目,提供超过 20 万枚图标的选择灵活性。虽然本地安装 `@iconify/json` 包需要约 70MB 存储空间,但实际构建时仅包含使用到的图标资源,实现按需加载。
+
+### 性能瓶颈与解决方案
+
+**问题根源**:
+图标按集合(collection)组织,每个集合包含 100-1000+ 个图标的 JSON 文件。当使用多个不同集合的图标时,频繁的 I/O 读取和 JSON 解析会产生显著性能开销。
+
+**实际案例**:
+
+- 使用 54 个图标集合中的 160+ 个图标
+- 初始构建:约 500ms 图标解析时间
+- 用户体验:开发服务器启动缓慢
+
+**缓存优化机制**:
+
+```mermaid
+graph LR
+ A[首次构建] --> B[解析使用图标]
+ B --> C[生成缓存文件]
+ C --> D[二次构建]
+ D --> E[读取缓存]
+ E --> F[20ms 完成加载]
+```
+
+**优化效果**:
+
+- 构建时间从 500ms 降至 20ms
+- 开发服务器启动速度显著提升
+- 资源利用率最大化
+
+### 最佳实践建议
+
+1. **图标使用规划**:
+ - 优先选择同一集合内的图标
+ - 避免过度分散使用不同集合
+
+2. **开发体验优化**:
+ - 首次启动后缓存自动生效
+ - 新增图标时缓存智能更新
+ - 无需手动干预缓存管理
+
+3. **生产构建保障**:
+ - 缓存机制不影响最终输出
+ - 保持图标资源的按需加载特性
+ - 确保构建产物的最优体积
+
+通过这两项优化措施,主题在保持功能丰富性的同时,确保了优秀的构建性能和运行时体验。
diff --git a/docs/guide/quick-start/project-structure.md b/docs/guide/quick-start/project-structure.md
new file mode 100644
index 00000000..1e001073
--- /dev/null
+++ b/docs/guide/quick-start/project-structure.md
@@ -0,0 +1,169 @@
+---
+title: 项目结构
+icon: ph:tree-structure-bold
+createTime: 2024/09/16 21:59:30
+permalink: /guide/project-structure/
+---
+
+本指南详细说明使用 VuePress 和 Plume 主题创建的项目文件结构,帮助您更好地组织和管理项目文件。
+
+通过[命令行工具创建](./usage.md#命令行安装)的项目,其典型文件结构如下:
+
+::: file-tree
+
+- .git/
+- **docs** \# 文档源目录
+ - .vuepress \# VuePress 配置目录
+ - public/ \# 静态资源
+ - client.ts \# 客户端配置(可选)
+ - collections.ts \# Collections 配置(可选)
+ - config.ts \# VuePress 主配置
+ - navbar.ts \# 导航栏配置(可选)
+ - plume.config.ts \# 主题配置文件(可选)
+ - demo \# 文档类型 collection
+ - foo.md
+ - bar.md
+ - blog \# 博客类型 collection
+ - preview \# 博客分类
+ - markdown.md \# 分类文章
+ - article.md \# 博客文章
+ - README.md \# 站点首页
+ - …
+- package.json
+- pnpm-lock.yaml
+- .gitignore
+- README.md
+:::
+
+::: tip 手动创建的项目也可参考此结构进行组织
+:::
+
+## 文档源目录
+
+**文档源目录**包含站点的所有 Markdown 源文件。在使用命令行工具启动 VuePress 时需指定此目录:
+
+```sh
+# [!code word:docs]
+vuepress dev docs
+# ↑ 文档源目录
+```
+
+对应的 package.json 脚本配置:
+
+```json title="package.json"
+{
+ "scripts": {
+ "docs:dev": "vuepress dev docs",
+ "docs:build": "vuepress build docs"
+ }
+}
+```
+
+VuePress 仅处理文档源目录内的文件,其他目录将被忽略。
+
+## `.vuepress` 配置目录
+
+`.vuepress/` 是 VuePress 的核心配置目录,您可在此配置项目、创建自定义组件和样式。
+
+### `client.ts` - 客户端配置
+
+用于扩展 VuePress 客户端功能,如注册全局组件:
+
+```ts title=".vuepress/client.ts"
+import { defineClientConfig } from 'vuepress/client'
+
+export default defineClientConfig({
+ enhance({ app, router, siteData }) {
+ // app: Vue 应用实例
+ // router: Vue Router 实例
+ // siteData: 站点数据
+
+ // 注册全局组件
+ app.component('MyComponent', MyComponent)
+ },
+ setup() {
+ // Vue 根组件的 setup 方法
+ }
+})
+```
+
+### `config.ts` - 主配置文件
+
+VuePress 的核心配置文件,设置主题、插件和构建工具:
+
+```ts title=".vuepress/config.ts" twoslash
+import { viteBundler } from '@vuepress/bundler-vite'
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ lang: 'zh-CN',
+ theme: plumeTheme({
+ // 主题配置...
+ }),
+ bundler: viteBundler(),
+})
+```
+
+### `plume.config.ts` - 主题配置
+
+专为主题提供的配置文件,支持热更新,修改后无需重启服务:
+
+::: code-tabs
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+// @filename: ./navbar.ts
+export default []
+
+// @filename: ./collections.ts
+export default []
+// ---cut---
+import { defineThemeConfig } from 'vuepress-theme-plume'
+import collections from './collections'
+import navbar from './navbar'
+
+export default defineThemeConfig({
+ logo: '/logo.svg',
+ profile: {
+ name: 'Theme Plume',
+ },
+ navbar,
+ collections,
+ // 更多配置...
+})
+```
+
+@tab .vuepress/navbar.ts
+
+```ts twoslash
+import { defineNavbarConfig } from 'vuepress-theme-plume'
+
+export default defineNavbarConfig([
+ // 导航项配置...
+])
+```
+
+@tab .vuepress/collections.ts
+
+```ts twoslash
+import { defineCollections } from 'vuepress-theme-plume'
+
+export default defineCollections([
+ {
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ link: '/blog/'
+ },
+ {
+ type: 'doc',
+ dir: 'demo',
+ linkPrefix: '/demo/',
+ title: '文档示例',
+ sidebar: 'auto'
+ },
+])
+```
+
+:::
diff --git a/docs/guide/quick-start/sidebar.md b/docs/guide/quick-start/sidebar.md
new file mode 100644
index 00000000..d5d13bce
--- /dev/null
+++ b/docs/guide/quick-start/sidebar.md
@@ -0,0 +1,577 @@
+---
+title: 侧边栏
+icon: ph:sidebar-duotone
+createTime: 2025/09/29 15:45:34
+permalink: /guide/sidebar/
+tags:
+ - 指南
+ - 快速开始
+
+---
+
+## 概述
+
+侧边栏是文档常见的页面导航方式,可以快速定位到文档内容。
+
+主题提供了两种方式配置侧边栏,包括:
+
+- 通过主题配置的 `sidebar` 选项配置侧边栏
+- 在 [类型为 `doc` 的集合](./collection-doc.md) 中配置侧边栏
+
+## 文件结构与基础配置
+
+### 目录结构设计
+
+典型的项目结构可能如下:
+
+::: file-tree
+
+- docs
+ - typescript # TypeScript 学习笔记
+ - basic.md
+ - types.md
+ - rust # Rust 编程笔记
+ - tuple.md
+ - struct.md
+ - README.md # 站点首页
+:::
+
+### 通过`sidebar` 配置
+
+这种方式适用于简单小巧的文档站点。
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ sidebar: {
+ '/typescript/': [
+ 'basic',
+ 'types'
+ ],
+ '/rust/': [
+ 'tuple',
+ 'struct'
+ ]
+ }
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ sidebar: {
+ '/typescript/': [
+ 'basic',
+ 'types'
+ ],
+ '/rust/': [
+ 'tuple',
+ 'struct'
+ ]
+ }
+})
+```
+
+:::
+
+### 通过 `collection` 配置
+
+`collections` (集合)可以灵活的组织和管理站点中的不同类别的文档,这种方式适用于复杂的站点。
+
+::: code-tabs#config
+
+@tab .vuepress/config.ts
+
+```js twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'typescript',
+ linkPrefix: '/typescript/',
+ title: 'TypeScript 笔记',
+ sidebar: ['basic', 'types'],
+ },
+ {
+ type: 'doc',
+ dir: 'rust',
+ linkPrefix: '/rust/',
+ title: 'Rust 笔记',
+ sidebar: ['tuple', 'struct'],
+ }
+ ],
+ })
+})
+```
+
+@tab .vuepress/plume.config.ts
+
+```ts twoslash
+import { defineThemeConfig } from 'vuepress-theme-plume'
+
+export default defineThemeConfig({
+ collections: [
+ {
+ type: 'doc',
+ dir: 'typescript',
+ linkPrefix: '/typescript/',
+ title: 'TypeScript 笔记',
+ sidebar: ['basic', 'types'],
+ },
+ {
+ type: 'doc',
+ dir: 'rust',
+ linkPrefix: '/rust/',
+ title: 'Rust 笔记',
+ sidebar: ['tuple', 'struct'],
+ }
+ ],
+})
+```
+
+:::
+
+::: tip 配置时机建议
+在创建文档文件前完成笔记配置。主题的 [auto-frontmatter](../../config/theme.md#autofrontmatter) 功能会根据配置自动生成永久链接和侧边栏结构。
+:::
+
+## 进阶配置管理
+
+### 模块化配置方案
+
+对于复杂项目,推荐使用主题提供的类型安全配置工具:
+
+::: code-tabs
+
+@tab .vuepress/collections.ts
+
+```ts twoslash
+import { defineCollection, defineCollections } from 'vuepress-theme-plume'
+
+// 单个集合配置
+const typescript = defineCollection({
+ dir: 'typescript',
+ linkPrefix: '/typescript/',
+ sidebar: [
+ 'guide/intro.md',
+ 'guide/getting-start.md',
+ 'config/config-file.md',
+ ]
+})
+
+// 导出所有集合配置
+export default defineCollections([
+ typescript
+])
+```
+
+@tab .vuepress/config.ts
+
+```ts twoslash
+// @filename: ./collections.ts
+export default []
+
+// ---cut---
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+import collections from './collections' // [!code ++]
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections // [!code ++]
+ }),
+})
+```
+
+:::
+
+### 大型项目配置拆分
+
+当集合数量较多时,可采用模块化配置结构:
+
+::: file-tree
+
+- docs
+ - .vuepress
+ - collections
+ - typescript.ts
+ - rust.ts
+ - index.ts
+ - …
+ - typescript/
+ - rust/
+:::
+
+配置代码组织示例:
+
+::: code-tabs
+@tab .vuepress/config.ts
+
+```ts twoslash
+// @filename: ./collections/index.ts
+export default []
+
+// ---cut---
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+import collections from './collections/index.ts' // [!code ++]
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ collections // [!code ++]
+ }),
+})
+```
+
+@tab .vuepress/collections/index.ts
+
+```ts twoslash
+// @filename: ./rust.ts
+export default {}
+// @filename: ./typescript.ts
+export default {}
+
+// ---cut---
+import { defineCollections } from 'vuepress-theme-plume'
+import rust from './rust' // [!code ++]
+import typescript from './typescript' // [!code ++]
+
+export default defineCollections([
+ rust,
+ typescript,
+])
+```
+
+@tab .vuepress/collections/typescript.ts
+
+```ts
+import { defineCollection } from 'vuepress-theme-plume'
+
+export default defineCollection({
+ type: 'doc',
+ dir: 'typescript',
+ link: '/typescript/',
+ title: 'TypeScript 笔记',
+ sidebar: [
+ 'guide/intro.md',
+ 'guide/getting-start.md',
+ 'config/config-file.md',
+ ]
+})
+```
+
+:::
+
+## 侧边栏配置详解
+
+### 文件结构示例
+
+假设 TypeScript 笔记 包含以下结构:
+
+::: file-tree
+
+- docs
+ - typescript
+ - guide
+ - intro.md
+ - getting-start.md
+ - config
+ - config-file.md
+ - configuration.md
+ - reference
+ - basic.md
+ - syntax.md
+ - modules.md
+ - built-in
+ - types
+ - Required.md
+ - Omit.md
+ - README.md
+:::
+
+### 自动生成侧边栏
+
+最简单的配置方式使用自动生成:
+
+```ts
+import { defineCollection } from 'vuepress-theme-plume'
+
+export default defineCollection({
+ type: 'doc',
+ dir: 'typescript',
+ sidebar: 'auto' // 自动生成侧边栏 // [!code ++]
+})
+```
+
+主题根据目录结构自动配置侧边栏。
+
+**排序控制**:通过数字前缀管理显示顺序
+
+::: file-tree
+
+- typescript
+ - 1.guide
+ - 1.intro.md
+ - 2.getting-start.md
+ - 2.config
+ - 1.config-file.md
+ - 2.configuration.md
+ - …
+:::
+
+数字前缀仅用于排序,不会在侧边栏中显示。
+
+**自动折叠**:默认情况下,侧边栏不会自动折叠,可以通过配置 `sidebarCollapsed` 开启自动折叠:
+
+```ts
+import { defineCollection } from 'vuepress-theme-plume'
+
+export default defineCollection({
+ type: 'doc',
+ dir: 'typescript',
+ sidebar: 'auto',
+ sidebarCollapsed: true, // [!code ++]
+})
+```
+
+`sidebarCollapsed` 有以下可选值:
+
+- `undefined`: 默认,不自动折叠
+- `true`: 默认全部折叠
+- `false`: 默认全部展开
+
+### 自动生成次级侧边栏
+
+为了更加灵活的控制侧边栏,减少配置的复杂度,主题允许配置仅自动生成次级侧边栏:
+
+```ts
+import { defineCollection } from 'vuepress-theme-plume'
+
+export default defineCollection({
+ type: 'doc',
+ dir: 'typescript',
+ sidebar: [
+ // 次级 items 自动读取 typescript/guide 目录
+ { text: '指南', prefix: 'guide', items: 'auto' },
+ // 次级 items 自动读取 typescript/config 目录
+ { text: '配置', prefix: 'config', items: 'auto' },
+ ],
+})
+```
+
+### 自定义侧边栏配置
+
+#### 基础配置类型
+
+```ts
+interface SidebarItem {
+ text?: string // 显示文本
+ link?: string // 链接地址
+ icon?: ThemeIcon // 图标配置
+ badge?: string | ThemeBadge // 徽章
+ prefix?: string // 链接前缀
+ items?: 'auto' | (string | SidebarItem)[] // 下一级侧边栏
+ collapsed?: boolean // 折叠状态
+}
+```
+
+#### 配置示例
+
+**基础链接配置**:
+
+采用简写形式,可以传入 md 文件的路径或 页面链接地址,
+主题会自动读取文件的 `frontmatter` 配置作为侧边栏配置。
+
+```ts
+sidebar: [
+ // 绝对路径时,
+ // 在 themeConfig.sidebar 中是相对于 `key` 前缀的路径
+ // 在 collection 中是相对于 `dir` 的路径
+ '/guide/intro.md', // markdown 文件地址
+ '/guide/getting-start/', // 页面链接地址
+ '/config/config-file', // 可以省略 `.md` 后缀
+]
+```
+
+**完整对象配置**:
+
+```ts
+sidebar: [
+ { text: '介绍', link: '/guide/intro' },
+ { text: '快速上手', link: '/guide/getting-start' },
+]
+```
+
+**嵌套分组配置**:
+
+```ts
+sidebar: [
+ {
+ text: '指南',
+ prefix: '/guide',
+ items: [
+ { text: '介绍', link: 'intro' },
+ 'getting-start', // 简写形式
+ ],
+ },
+ {
+ text: '配置',
+ prefix: '/config',
+ items: 'auto', // 自动生成该分组下的侧边栏
+ },
+]
+```
+
+### Prefix 路径处理规则
+
+`prefix` 用于简化相同前缀的链接配置:
+
+```ts
+const sidebarItem: SidebarItem = {
+ prefix: '/guide',
+ items: [
+ 'intro', // → /guide/intro.md
+ '/config/config-file', // → /config/config-file.md (绝对路径)
+ { link: '/blog/' }, // → /guide/blog/
+ { link: '/config/' } // → /config.md (绝对路径)
+ ]
+}
+```
+
+**路径判断规则**:
+
+- 以 `/` 开头:绝对路径,不拼接 prefix
+- 其他情况:相对路径,与 prefix 拼接
+
+**多级嵌套示例**:
+
+```ts
+const sidebarItem: SidebarItem = {
+ prefix: '/guide',
+ items: [
+ 'intro', // → /guide/intro.md
+ {
+ prefix: '/config', // 绝对路径,抛弃上级的 prefix
+ items: ['config-file'] // → /config/config-file.md
+ },
+ {
+ prefix: 'blog', // 相对路径,拼接上级的 prefix
+ items: ['intro'] // → /guide/blog/intro.md
+ }
+ ]
+}
+```
+
+::: warning 层级深度限制
+避免超过 3 层嵌套的侧边栏配置,过深的层级会影响用户体验和界面美观。
+:::
+
+## 视觉增强功能
+
+### 图标配置
+
+支持多种图标源,通过 `markdown.icon.provide` 配置:
+
+```ts
+sidebar: [
+ {
+ text: '指南',
+ prefix: '/guide',
+ icon: 'ep:guide', // Iconify 图标
+ items: [
+ { text: '介绍', link: 'intro', icon: 'ph:info-light' },
+ ],
+ },
+]
+```
+
+**本地图标配置**:
+
+```ts
+const sidebarItem: SidebarItem = {
+ text: '指南',
+ icon: '/images/guide.png', // 本地图片
+ items: [
+ {
+ text: '介绍',
+ icon: 'https://example.com/icon.png' // 远程图片
+ },
+ ]
+}
+```
+
+::: important 本地资源路径
+本地图片路径应从 `/` 开始,对应 `.vuepress/public/` 目录:
+
+::: file-tree
+
+- docs
+ - .vuepress
+ - public
+ - images
+ - guide.png
+ - info.png
+:::
+
+### 徽章功能
+
+通过徽章提供额外信息提示:
+
+```ts
+sidebar: [
+ {
+ text: '指南',
+ badge: { text: '新', type: 'danger' }, // 对象形式
+ items: [
+ { text: '介绍', badge: '推荐' }, // 字符串简写
+ ],
+ },
+]
+```
+
+**Frontmatter 配置**:
+
+```md
+---
+title: 介绍
+badge:
+ text: 新功能
+ type: danger
+---
+```
+
+### 分组分隔符
+
+在复杂侧边栏中添加视觉分隔:
+
+```ts
+sidebar: [
+ {
+ text: '指南',
+ items: [
+ '项目 1',
+ '项目 2',
+ { text: '高级功能', link: '---' }, // 分隔符
+ '项目 3',
+ '项目 4',
+ ],
+ },
+]
+```
+
+**分隔符特征**:`link` 字段包含至少三个连续的 `-`
diff --git a/docs/guide/quick-start/usage.md b/docs/guide/quick-start/usage.md
new file mode 100644
index 00000000..4575a214
--- /dev/null
+++ b/docs/guide/quick-start/usage.md
@@ -0,0 +1,217 @@
+---
+title: 安装与使用
+icon: grommet-icons:install
+createTime: 2024/03/04 09:50:07
+permalink: /guide/usage/
+tags:
+ - 指南
+ - 快速开始
+---
+
+## 环境要求
+
+- [Node.js](https://nodejs.org/):**^20.6.0 或 >= 22.0.0** [+node-versions]
+- 包管理器:[npm 8+](https://www.npmjs.com/)、[pnpm 8+](https://pnpm.io/zh/) 或 [Yarn 2+](https://yarnpkg.com/)
+
+[+node-versions]: **^20.6.0:** `20.6.0` 及以上但低于 `21.0.0` 的版本
+[+node-versions]: **>= 22.0.0:** `22.0.0` 及以上的版本
+
+:::: details 如何安装环境依赖?
+::: steps
+
+1. **下载 Node.js**
+
+ 访问 [Node.js 官网](https://nodejs.org/zh-cn) 下载最新稳定版,按照安装向导完成安装(通常保持默认设置即可)。
+
+2. **启用 PNPM**
+
+ 安装完成后打开终端,执行以下命令:
+
+ ```sh
+ corepack enable
+ ```
+
+ 我们推荐使用 pnpm 作为包管理器。
+
+3. **环境就绪**
+:::
+::::
+
+## 命令行安装
+
+我们提供了命令行工具,可快速搭建基础项目结构。执行以下命令启动安装向导:
+
+::: npm-to
+
+```sh
+npm create vuepress-theme-plume@latest
+```
+
+:::
+
+启动后只需回答几个简单问题即可完成配置:
+
+
+
+::: details 命令行工具使用指南
+
+以 Windows 系统为例:
+
+1. 按下 `Win + R` 打开"运行"对话框
+2. 输入 `cmd` 或 `powershell` 后按 Enter
+
+如果当前目录不正确,可使用以下命令切换:
+
+```sh
+D: # 切换到 D 盘(根据实际情况调整)
+cd open-source # 进入目标目录
+```
+
+此时执行 `pnpm create vuepress-theme-plume@latest` 即可创建项目,项目将位于 `D:\open-source\my-project` 目录。
+:::
+
+## 手动安装
+
+::: info 注意事项
+
+- 使用 [pnpm](https://pnpm.io/zh/) 时需额外安装 `vue` 作为 peer-dependencies
+- 使用 [Yarn 2+](https://yarnpkg.com/) 时需在 `.yarnrc.yml` 中设置 `nodeLinker: 'node-modules'`
+:::
+
+如需手动安装,请按以下步骤操作:
+
+:::: steps
+
+- ### 创建项目目录
+
+ ```sh
+ mkdir my-blog
+ cd my-blog
+ ```
+
+- ### 初始化项目
+
+ ::: npm-to
+
+ ```sh
+ git init
+ npm init
+ ```
+
+ :::
+
+- ### 安装核心依赖
+
+ 安装 `vuepress@next` 和主题包:
+
+ ::: npm-to
+
+ ```sh
+ # 安装 VuePress
+ npm i -D vuepress@next vue
+ # 安装主题和构建工具
+ npm i -D vuepress-theme-plume @vuepress/bundler-vite@next
+ ```
+
+ :::
+
+ ::: warning 版本兼容性
+ 当前主题已适配至 vuepress@{{ vuepressVersion }},使用其他版本可能存在兼容性问题。
+ :::
+
+- ### 配置构建脚本
+
+ 在 `package.json` 中添加:
+
+ ```json title="package.json"
+ {
+ "scripts": {
+ "docs:dev": "vuepress dev docs",
+ "docs:build": "vuepress build docs"
+ }
+ }
+ ```
+
+ VuePress 默认使用 `docs` 目录作为文档根目录。
+
+- ### 配置 Git 忽略规则
+
+ ::: code-tabs
+ @tab .gitignore
+
+ ```txt
+ node_modules
+ .temp
+ .cache
+ ```
+
+ @tab sh
+
+ ```sh
+ echo 'node_modules' >> .gitignore
+ echo '.temp' >> .gitignore
+ echo '.cache' >> .gitignore
+ ```
+
+ :::
+
+- ### 配置主题
+
+ ```ts title="docs/.vuepress/config.ts" twoslash
+ import { viteBundler } from '@vuepress/bundler-vite'
+ import { defineUserConfig } from 'vuepress'
+ import { plumeTheme } from 'vuepress-theme-plume'
+
+ export default defineUserConfig({
+ // 必须设置默认语言
+ lang: 'zh-CN',
+ theme: plumeTheme({
+ // 主题配置...
+ }),
+ bundler: viteBundler(),
+ })
+ ```
+
+ ::: warning 语言配置必填
+ 无论是否使用多语言,都必须正确配置 `lang` 选项,主题依赖此设置确定文本语言环境。
+ :::
+
+- ### 创建首页文档
+
+ ```md title="README.md"
+ ---
+ home: true
+ ---
+ ```
+
+- ### 启动开发服务器
+
+ ::: npm-to
+
+ ```sh
+ npm run docs:dev
+ ```
+
+ :::
+
+ VuePress 将在 启动开发服务器,支持 Markdown 文件的热重载。
+
+- ### 安装完成
+
+::::
+
+## 主题更新
+
+使用以下命令检查并更新主题:
+
+::: npm-to
+
+```sh
+npx vp-update
+```
+
+:::
+
+
diff --git a/docs/guide/quick-start/write.md b/docs/guide/quick-start/write.md
new file mode 100644
index 00000000..51c0d513
--- /dev/null
+++ b/docs/guide/quick-start/write.md
@@ -0,0 +1,172 @@
+---
+title: 编写文章
+icon: mingcute:edit-4-line
+createTime: 2024/03/04 10:06:06
+permalink: /guide/write/
+tags:
+ - 指南
+ - 快速开始
+---
+
+VuePress 完整支持 [标准 Markdown 语法](../markdown/basic.md),同时允许通过
+[YAML](https://dev.to/paulasantamaria/introduction-to-yaml-125f)
+格式的 Frontmatter 定义页面元数据(如标题、创建时间等)。
+
+此外,主题还提供了丰富的 [Markdown 扩展语法](../markdown/extensions.md)。您不仅可以在 Markdown 中直接编写 HTML,还能使用 Vue 组件来增强内容表现力。
+
+## Frontmatter 页面配置
+
+通过 Frontmatter 可以自定义每个页面的属性和行为。Frontmatter 位于文件顶部,由 `---` 分隔符包裹。
+
+```md title="post.md"
+
+---
+title: 文章标题
+createTime: 2024/09/08 22:53:34
+permalink: /article/9eh4d6ao/
+---
+
+页面正文内容位于第二个 `---` 之后。
+```
+
+::: details 什么是 Frontmatter?
+Frontmatter 是采用 [YAML](https://dev.to/paulasantamaria/introduction-to-yaml-125f) 格式的配置区块,位于 Markdown 文件顶部,通过 `---` 分隔符界定。
+
+推荐阅读 [Frontmatter 详解](../../../../4.教程/frontmatter.md) 了解完整语法规范。
+:::
+
+## 自动生成 Frontmatter
+
+主题在开发服务器启动后,会自动为文档源目录中的 Markdown 文件生成必要的 Frontmatter 字段,包括:**标题**、**创建时间** 和 **永久链接**。
+
+这一功能既减轻了内容创作者的重复工作负担,也为主题的后续功能提供了必要的数据支持。
+
+```md
+---
+title: 标题
+createTime: 2024/09/08 22:53:34
+permalink: /article/9eh4d6ao/
+---
+```
+
+### 标题生成规则
+
+主题默认使用文件名作为文章标题。解析时会自动移除[文件命名约定](#文件夹命名约定)中的序号和扩展名,例如 `1.我的文章.md` 将生成标题 `我的文章`。
+
+### 创建时间
+
+主题以文件的创建时间为基准,格式化为 `yyyy/MM/dd HH:mm:ss` 作为文章创建时间。
+
+### 永久链接
+
+**永久链接**是文章发布后的固定访问地址。一旦生成,即使文件路径或名称发生变化,该链接仍保持不变。
+
+预先设置永久链接有助于:
+
+- 提升 **SEO 效果**,避免收录地址频繁变动
+- 保持整个站点链接风格的 **一致性**
+
+### 禁用自动生成
+
+如需完全手动控制 Frontmatter,可通过 [主题配置 > autoFrontmatter](../../config/theme.md#autofrontmatter) 禁用自动生成功能。
+
+```ts title=".vuepress/config.ts" twoslash
+import { defineUserConfig } from 'vuepress'
+import { plumeTheme } from 'vuepress-theme-plume'
+
+export default defineUserConfig({
+ theme: plumeTheme({
+ // 完全禁用所有自动生成
+ // autoFrontmatter: false,
+
+ // 按需启用特定功能
+ autoFrontmatter: {
+ permalink: true, // 生成永久链接
+ createTime: true, // 生成创建时间
+ title: true, // 生成标题
+ },
+ collections: [{
+ type: 'post',
+ dir: 'blog',
+ title: '博客',
+ // 针对特定 collection 配置
+ autoFrontmatter: {
+ permalink: true,
+ createTime: true,
+ title: true
+ }
+ }]
+ })
+})
+```
+
+## 文件组织约定
+
+::: info 说明
+以下示例基于[项目结构](./project-structure.md)中的基准文件结构。
+:::
+
+主题提供了灵活的文件组织方式,您可以在 `docs` 目录中按喜好创建任意命名的 Markdown 文件。
+
+### 文件夹命名约定
+
+主题对 `docs` 目录中的文件夹命名采用以下规则:
+
+对于 `post` 类型的 collection:
+
+- 文件夹名称作为文章的 **分类**
+- 支持多级目录,子目录作为父分类的子项
+
+需要排序时,采用以下命名模式(适用于所有类型的 collection):
+
+```ts :no-line-numbers
+const dir = /\d+\.[\s\S]+/
+// 格式:数字 + . + 分类名称
+// 示例:1.前端
+```
+
+数字部分将作为 **排序依据**。未带数字的目录按默认规则排序。
+
+**示例结构:**
+
+::: file-tree
+
+- docs
+ - blog \# post 类型 collection
+ - 1.前端
+ - 1.html/
+ - 2.css/
+ - 3.javascript/
+ - 2.后端/
+ - 运维/
+ - typescript \# doc 类型 collection
+ - 1.基础
+ - 1.变量.md
+ - 2.类型.md
+ - 2.进阶.md
+:::
+
+主题将根据目录结构自动生成分类页面或者侧边栏。
+
+### 文件命名约定
+
+文件命名遵循与[文件夹命名约定](#文件夹命名约定)相同的规则,为笔记功能的[自动生成侧边栏](../../config/notes.md#自动生成侧边栏)提供排序依据。
+
+## 开始写作
+
+现在您可以在 `docs` 目录下创建 Markdown 文件开始写作了。关于 Markdown 扩展功能的完整说明,请参阅[扩展语法文档](../markdown/extensions.md)。
+
+由于主题默认自动生成文章标题,正文内容的标题应从二级标题 `## 二级标题` 开始。如果禁用了 `autoFrontmatter.title`,则使用一级标题 `# 一级标题` 开始。
+
+### 文章标签
+
+通过 `frontmatter.tags` 为文章添加标签:
+
+```md
+---
+title: 我的文章
+tags:
+ - 标签1
+ - 标签2
+---
+```
diff --git a/docs/notes/theme/guide/repl/codeSandbox.md b/docs/guide/repl/codeSandbox.md
similarity index 100%
rename from docs/notes/theme/guide/repl/codeSandbox.md
rename to docs/guide/repl/codeSandbox.md
diff --git a/docs/notes/theme/guide/repl/codepen.md b/docs/guide/repl/codepen.md
similarity index 100%
rename from docs/notes/theme/guide/repl/codepen.md
rename to docs/guide/repl/codepen.md
diff --git a/docs/notes/theme/guide/repl/demo/Counter.module.css b/docs/guide/repl/demo/Counter.module.css
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/Counter.module.css
rename to docs/guide/repl/demo/Counter.module.css
diff --git a/docs/notes/theme/guide/repl/demo/Counter.ts b/docs/guide/repl/demo/Counter.ts
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/Counter.ts
rename to docs/guide/repl/demo/Counter.ts
diff --git a/docs/notes/theme/guide/repl/demo/Counter.vue b/docs/guide/repl/demo/Counter.vue
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/Counter.vue
rename to docs/guide/repl/demo/Counter.vue
diff --git a/docs/notes/theme/guide/repl/demo/Toggle.vue b/docs/guide/repl/demo/Toggle.vue
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/Toggle.vue
rename to docs/guide/repl/demo/Toggle.vue
diff --git a/docs/notes/theme/guide/repl/demo/normal-lib.html b/docs/guide/repl/demo/normal-lib.html
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/normal-lib.html
rename to docs/guide/repl/demo/normal-lib.html
diff --git a/docs/notes/theme/guide/repl/demo/normal.html b/docs/guide/repl/demo/normal.html
similarity index 100%
rename from docs/notes/theme/guide/repl/demo/normal.html
rename to docs/guide/repl/demo/normal.html
diff --git a/docs/notes/theme/guide/repl/frontend-deprecated.md b/docs/guide/repl/frontend-deprecated.md
similarity index 100%
rename from docs/notes/theme/guide/repl/frontend-deprecated.md
rename to docs/guide/repl/frontend-deprecated.md
diff --git a/docs/notes/theme/guide/repl/frontend.md b/docs/guide/repl/frontend.md
similarity index 99%
rename from docs/notes/theme/guide/repl/frontend.md
rename to docs/guide/repl/frontend.md
index 934659f7..7ef0de5d 100644
--- a/docs/notes/theme/guide/repl/frontend.md
+++ b/docs/guide/repl/frontend.md
@@ -733,7 +733,7 @@ setInterval(() => {
```
::: details 展开查看 `/.vuepress/bulletin.md` 代码
-@[code](../../../../.vuepress/bulletin.md)
+@[code](../../.vuepress/bulletin.md)
:::
**输出:**
diff --git a/docs/notes/theme/guide/repl/golang.md b/docs/guide/repl/golang.md
similarity index 100%
rename from docs/notes/theme/guide/repl/golang.md
rename to docs/guide/repl/golang.md
diff --git a/docs/notes/theme/guide/repl/jsFiddle.md b/docs/guide/repl/jsFiddle.md
similarity index 100%
rename from docs/notes/theme/guide/repl/jsFiddle.md
rename to docs/guide/repl/jsFiddle.md
diff --git a/docs/notes/theme/guide/repl/kotlin.md b/docs/guide/repl/kotlin.md
similarity index 100%
rename from docs/notes/theme/guide/repl/kotlin.md
rename to docs/guide/repl/kotlin.md
diff --git a/docs/notes/theme/guide/repl/python.md b/docs/guide/repl/python.md
similarity index 100%
rename from docs/notes/theme/guide/repl/python.md
rename to docs/guide/repl/python.md
diff --git a/docs/notes/theme/guide/repl/replit.md b/docs/guide/repl/replit.md
similarity index 100%
rename from docs/notes/theme/guide/repl/replit.md
rename to docs/guide/repl/replit.md
diff --git a/docs/notes/theme/guide/repl/rust.md b/docs/guide/repl/rust.md
similarity index 100%
rename from docs/notes/theme/guide/repl/rust.md
rename to docs/guide/repl/rust.md
diff --git a/docs/notes/theme/config/intro.md b/docs/notes/theme/config/intro.md
deleted file mode 100644
index 0b22888a..00000000
--- a/docs/notes/theme/config/intro.md
+++ /dev/null
@@ -1,187 +0,0 @@
----
-title: 配置说明
-createTime: 2024/03/02 10:48:14
-permalink: /config/intro/
----
-
-## 概述
-
-==vuepress-theme-plume== 是基于 [VuePress](https://v2.vuepress.vuejs.org/) 的主题。
-因此,配置需要遵循 VuePress 的配置规范。
-
-**在 VuePress 中,有三种配置类型:**
-
-- **站点配置**: 这是你在 配置文件 _(如 `.vuepress/config.ts`)_ 中直接导出的对象
-- **主题配置**: 传递给 `plumeTheme()` 的对象参数
-- **页面配置**: 由在页面顶部基于 YAML 语法的 Frontmatter 提供
-
-## VuePress 配置文件
-
-VuePress 站点的基本配置文件是 `.vuepress/config.js` ,但也同样支持 TypeScript 配置文件。
-你可以使用 `.vuepress/config.ts` 来得到更好的类型提示。
-
-具体而言,VuePress 对于配置文件的路径有着约定(按照优先顺序):
-
-当前工作目录 `cwd` 下:
-
-- `vuepress.config.ts`
-- `vuepress.config.js`
-- `vuepress.config.mjs`
-
-源文件目录 `sourceDir` 下:
-
-- `.vuepress/config.ts`
-- `.vuepress/config.js`
-- `.vuepress/config.mjs`
-
-基础配置文件示例:
-
-```ts title=".vuepress/config.ts" twoslash
-import { viteBundler } from '@vuepress/bundler-vite'
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- // [!code hl:5]
- // VuePress 的基本配置
- lang: 'zh-CN',
- title: '你好, VuePress !',
- description: '这是我的第一个 VuePress 站点',
- // ...
-
- // 使用 vite 作为构建工具
- bundler: viteBundler(),
-
- // 告诉 VuePress 使用 Plume 主题
- theme: plumeTheme({ // [!code ++:4]
- // 在这里配置主题
- // ...
- }),
-})
-```
-
-## 主题配置文件
-
-一般我们使用 `.vuepress/config.js` 或者 `.vuepress/config.ts` 来配置主题。
-
-```ts title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- // 在这里配置主题
- }),
- // ...
-})
-```
-
-但是当我们已经启动了 VuePress 服务后,每次对该文件的修改,都会导致 VuePress 服务重启,
-然后站点进行全量刷新,这可能需要等待一段时间才能恢复, 当站点内容较少时,这个过程很快,
-而对于一些较大的站点,可能需要等待较长的时间。
-
-特别是频繁修改时,很容易使 VuePress ==服务崩溃=={.caution} ::twemoji:angry-face::,不得不手动重启。
-
-**这给我们在编写站点内容时带来的极大的不便。**
-
-实际上,主题配置中的一部分字段,并不需要重启 VuePress 服务,
-比如 `navbar`、`profile` 等字段,可以通过 热更新 的方式实时生效。
-
-主题添加主题配置文件 `plume.config.ts` 的支持,
-==对该文件的修改将通过热更新的方式实时生效。=={.tip} ::twemoji:confetti-ball::
-
-你可以在这个文件中配置支持热更新的字段,比如 `navbar`、`profile` 等字段。
-
-::: tip
-这些支持热更新的字段依然可以在 VuePress 配置文件的 `theme` 中进行配置,主题配置文件的配置
-最终会合并到 VuePress 配置文件中。
-
-在 主题配置文件配置的字段,避免在 VuePress 配置文件的 `theme` 配置中重复配置。
-因为在合并过程可能会出现数据重复的情况。
-:::
-
-::: details 什么是 热更新?
-
-**热更新** 是编程的一种技术,在 VuePress 中,体现为:
-
-- 对配置的修改实时生效,不需要重启 VuePress 服务,浏览器不会自动刷新页面
-- 对页面的修改实时生效,在浏览器中页面无需刷新即可看到修改后的效果
-
-:::
-
-### 配置
-
-在 [VuePress 配置文件](#vuepress-配置文件) 相同的路径下创建一个 `plume.config.js` 文件,
-你也可以使用 TypeScript 来创建一个 `plume.config.ts` 文件,以获得更好的类型提示。
-
-::: file-tree
-
-- docs
- - .vuepress
- - config.ts
- - **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'
-
-export default defineThemeConfig({
- // 在这里配置主题
- profile: {
- name: 'Your name',
- },
- navbar,
-})
-```
-
-主题提供了 `defineThemeConfig(config)` 函数,为主题使用者提供主题配置的类型帮助。
-你可以直接在这个文件中配置除了 `plugins` 字段外的其他配置。
-
-::: warning 主题配置文件仅能配置部分支持热更新的配置字段
-:::
-
-::: warning 配置会被合并到 VuePress 配置的主题配置中,已经在主题配置文件中配置的字段,不需要在 VuePress 配置文件中的 `theme` 配置中重复配置
-:::
-
-### 自定义配置文件路径
-
-如果你不希望按照 VuePress 默认的配置文件路径管理你的主题配置文件,
-你也可以在 VuePress 配置文件中指定自己的主题配置文件路径。
-
-```ts title=".vuepress/config.ts" twoslash
-import path from 'node:path'
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- // 在这里定义自己的主题配置文件路径
- configFile: path.join(__dirname, 'custom/config.ts'), // [!code ++]
- }),
-})
-```
-
-::: warning 如果你是新手用户,不推荐自定义配置文件路径,这可能带来意想不到的问题。
-:::
-
-## 页面配置
-
-使用在页面的顶部使用 YAML 语法的 Frontmatter,可以为每个页面进行单独配置主题。
-
-```md {1,5} title="article.md"
----
-title: 文章标题
-createTime: 2024/09/08 22:53:34
-permalink: /article/xxx/
----
-```
-
-在 Markdown 文件的顶部,使用 `---` 分隔符,在两个 `---` 之间的部分被称为 Frontmatter。
-这部分通过 `YAML` 语法进行配置。
-
-:::tip 如果你不了解 `YAML`,可以通过 [这篇博客](/article/ecxnxxd0/) 了解它的基本用法。
-:::
diff --git a/docs/notes/theme/config/notes.md b/docs/notes/theme/config/notes.md
deleted file mode 100644
index b21af02f..00000000
--- a/docs/notes/theme/config/notes.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-title: notes配置
-createTime: 2024/03/02 14:00:06
-permalink: /config/notes/
----
-
-## 概述
-
-::: tip notes 配置支持在 `.vuepress/config.ts` ,或者在 `plume.config.ts` 中进行配置。
-:::
-
-主题默认将 `sourceDir` 目录下的 `notes` 目录作为 文档/知识笔记 的存放目录,
-该目录下的所有文件都会被排除在 博客文章之外。
-
-默认配置如下:
-
-::: code-tabs#configs
-
-@tab .vuepress/config.ts
-
-```ts twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- notes: { link: '/', dir: 'notes', notes: [] }, // [!code highlight]
- })
-})
-```
-
-@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
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- locales: {
- '/': {
- notes: { link: '/', dir: 'notes', notes: [] }, // [!code highlight]
- },
- '/zh/': {
- notes: { link: '/zh/', dir: 'notes', notes: [] }, // [!code highlight]
- }
- }
- })
-})
-```
-
-## 配置
-
-```ts
-interface NotesOptions {
- /**
- * 保存所有笔记的目录
- * @default '/notes/'
- */
- dir: string
- /**
- * 所有笔记的默认链接前缀
- * @default '/'
- */
- link: string
- /**
- * 笔记配置
- */
- notes: NoteItem[]
-}
-
-interface NoteItem {
- /**
- * 保存笔记的目录
- */
- dir: string
- /**
- * 当前笔记的链接前缀,将会与 `notes.link` 合并
- */
- link: string
- /**
- * 当前笔记名称
- */
- text?: string
- /**
- * 当前笔记的侧边栏配置
- * - `'auto'` 根据目录结构自动生成侧边栏
- * - `string` 侧边栏文件路径, 如 `'/notes/sidebar.md'`,主题将会读取该文件作为侧边栏
- * - `SidebarItem` 单项侧边栏配置
- */
- sidebar?: 'auto' | (string | SidebarItem)[]
-}
-
-interface ThemeBadge {
- /* 徽章文本 */
- text?: string
- /* 徽章类型,内置: 'info' | 'tip' | 'danger' | 'warning' */
- type?: string
- /* 文本颜色 */
- color?: string
- /* 背景颜色 */
- bgColor?: string
- /* 边框颜色 */
- borderColor?: string
-}
-
-interface SidebarItem {
- /**
- * 侧边栏文本
- */
- text?: string
-
- /**
- * 侧边栏链接
- */
- link?: string
-
- /**
- * 侧边栏图标
- */
- icon?: ThemeIcon
-
- /**
- * 徽章
- */
- badge?: string | ThemeBadge
-
- /**
- * 次级侧边栏分组
- * 不超过 3 层
- */
- items?: 'auto' | (string | SidebarItem)[]
-
- /**
- * 如果未指定,组不可折叠。
- *
- * 如果为`true`,组可折叠,并默认折叠。
- *
- * 如果为`false`,组可折叠,但默认展开。
- */
- collapsed?: boolean
-
- /**
- * 当前分组的链接前缀
- */
- prefix?: string
-
- rel?: string
- target?: string
-}
-
-/**
- * - 支持 iconify 图标,直接使用 iconify name 即可自动加载
- * @see https://icon-sets.iconify.design/
- *
- * - 如果 iconify 图标不满足您的需求,也可以支持传入 svg 字符串。
- * - 还支持使用 本地图片 或 远程图片,本地图片的路径需要以 `/` 开头。
- */
-export type ThemeIcon = string | { svg: string }
-```
-
-### 自动生成侧边栏
-
-当配置某个 笔记 的 `sidebar` 为 `auto` 时,会自动根据目录结构生成侧边栏。
-
-排序根据 [文件夹命名约定](../guide/quick-start/write.md#文件夹命名约定) 。
-
-### 侧边栏图标
-
-主题不仅可以通过 侧边栏配置中 `icon` 配置图标,还可以通过 文件中的 frontmatter 中 `icon` 字段 配置图标,
-与 侧边栏配置中的 `icon` 一致。
-
-```md
----
-title: 主题介绍
-icon: mdi:tooltip-text-outline
----
-```
-
-完整侧边栏使用说明,请查看 [此文档](../guide/quick-start/document.md) 。
diff --git a/docs/notes/theme/config/sidebar.md b/docs/notes/theme/config/sidebar.md
deleted file mode 100644
index a4af622c..00000000
--- a/docs/notes/theme/config/sidebar.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: 侧边栏配置
-createTime: 2024/08/15 21:05:36
-permalink: /config/sidebar/
----
-
-## 概述
-
-在本主题中,侧边栏 特指 位于页面 最左侧的内容区域,用于导航到不同的页面。
-
-在 `vuepress` 的默认主题 `@vuepress/theme-default` 中,侧边栏是通过 `sidebar` 进行配置。
-
-**但在本主题中,为使其更具语义化,主题将侧边栏配置整合到了 [notes 配置](./notes.md) 中** 。
-通过一个 `note` 对应一个 `sidebar` 的方式,实现更加简洁,语义化的侧边栏配置。
-
-同时,为了满足 用户不希望使用 `notes` 功能的需求,本主题也提供了 `sidebar` 的选项进行侧边栏配置。
-
-## Notes 中的侧边栏配置
-
-`notes` 的功能是聚合一系列的文章,通过侧边栏来导航到 notes 中不同的文章。
-
-你可以在 `notes` 目录下创建多个 `note` ,在每一个 `note` 中单独配置 `sidebar`:
-
-::: code-tabs#configs
-
-@tab .vuepress/config.ts
-
-```ts twoslash
-import { defineUserConfig } from 'vuepress'
-import { defineNoteConfig, plumeTheme } 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 defineUserConfig({
- theme: plumeTheme({
- notes: {
- link: '/',
- dir: 'notes',
- notes: [noteA], // [!code ++]
- },
- })
-})
-```
-
-@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 配置
-
-如果你不想使用 `notes` 的方式来管理系列文章,但又期望通过侧边栏来导航到不同的文章,
-可以通过 [sidebar](../config/theme.md#sidebar) 通用配置来实现。
-
-::: code-tabs#configs
-
-@tab .vuepress/config.ts
-
-```ts twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- notes: false,
- sidebar: {
- '/config/': [
- { text: '侧边栏配置', link: 'sidebar-1' },
- { text: '侧边栏配置', link: 'sidebar-2' },
- ]
- }
- })
-})
-```
-
-@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/guide/code/code-tabs.md b/docs/notes/theme/guide/code/code-tabs.md
deleted file mode 100644
index 94930f5a..00000000
--- a/docs/notes/theme/guide/code/code-tabs.md
+++ /dev/null
@@ -1,259 +0,0 @@
----
-title: 代码组
-icon: fluent:group-list-20-filled
-createTime: 2024/04/04 10:36:59
-permalink: /guide/code/group/
----
-
-## 语法
-
-可以像这样对多个代码块进行分组:
-
-**输入:**
-
-````md
-::: code-tabs
-@tab config.js
-```js
-/**
- * @type {import('vuepress').UserConfig}
- */
-const config = {
- // ..
-}
-
-export default config
-```
-
-@tab config.ts
-```ts
-import type { UserConfig } from 'vuepress'
-
-const config: UserConfig = {
- // ..
-}
-
-export default config
-```
-:::
-````
-
-**输出:**
-
-::: code-tabs
-@tab config.js
-
-```js
-/**
- * @type {import('vuepress').UserConfig}
- */
-const config = {
- // ..
-}
-
-export default config
-```
-
-@tab config.ts
-
-```ts
-import type { UserConfig } from 'vuepress'
-
-const config: UserConfig = {
- // ..
-}
-
-export default config
-```
-
-:::
-
-你还可以通过 `@tab:active` 选择其中一个代码块作为默认显示的代码块。
-
-**输入:**
-
-````md
-::: code-tabs
-@tab config.js
-```js
-/**
- * @type {import('vuepress').UserConfig}
- */
-const config = {
- // ..
-}
-
-export default config
-```
-
-@tab:active config.ts
-```ts
-import type { UserConfig } from 'vuepress'
-
-const config: UserConfig = {
- // ..
-}
-
-export default config
-```
-:::
-````
-
-**输出:**
-
-::: code-tabs
-@tab config.js
-
-```js
-/**
- * @type {import('vuepress').UserConfig}
- */
-const config = {
- // ..
-}
-
-export default config
-```
-
-@tab:active config.ts
-
-```ts
-import type { UserConfig } from 'vuepress'
-
-const config: UserConfig = {
- // ..
-}
-
-export default config
-```
-
-:::
-
-## 分组标题图标
-
-主题支持在 代码块分组的组标题上显示图标。 图标根据 标题,即 `@tab 标题` 进行解析适配不同的图标
-
-默认解析规则与 [文件树](../markdown/file-tree.md) 一致。
-
-如, `pnpm / yarn / npm` 分组图标:
-
-**输入:**
-
-````md
-::: code-tabs
-@tab pnpm
-
-```sh
-pnpm i
-```
-
-@tab yarn
-
-```sh
-yarn
-```
-
-@tab npm
-
-```sh
-npm install
-```
-
-:::
-````
-
-**输出:**
-
-::: code-tabs
-@tab pnpm
-
-```sh
-pnpm i
-```
-
-@tab yarn
-
-```sh
-yarn
-```
-
-@tab npm
-
-```sh
-npm install
-```
-
-:::
-
-主题默认适配了 前端主流的一些技术:
-
-- 运行环境,如: `NodeJs / Deno / Bun`
-- 包管理器,如: `pnpm / yarn / npm`
-- 库、框架,如: `vue / react / angular / svelte / solid / Next / Nuxt` 等
-
-还包括一些主流的语言,如: `TypeScript / JavaScript / C / C++ / Java / Python / Rust / Kotlin / Swift / Go` 等
-
-::: info
-如果您发现您所使用的 库、框架、语言等未能正确显示图标,可以提出 [issue](https://github.com/pengzhanbo/vuepress-theme-plume/issues/new) 告诉我,我会尽量添加相关图标。
-:::
-
-### 配置
-
-您可以通过 `markdown.codeTabs` 控制分组图标的行为:
-
-```ts
-export default defineUserConfig({
- theme: plumeTheme({
- markdown: {
- codeTabs: {
- icon: true, // CodeTabsOptions
- }
- },
- })
-})
-```
-
-```ts
-export interface CodeTabsOptions {
- icon?: boolean | { named?: false | string[], extensions?: false | string[] }
-}
-```
-
-- `true`: 使用默认解析规则显示图标
-- `false`: 不显示图标
-- `{ named?: false | string[], extensions?: false | string[] }`:
- - `named`: 表示 库/框架/语言 名称,严格匹配 `@tab 标题` 中的 `标题` 字段,如 `pnpm`、`yarn`、`npm` 等,如果设置为 `false` 则不显示图标,如果为 空数组,则使用默认匹配规则
- - `extensions`: 表示 文件扩展名,匹配 `@tab 标题` 中的 `标题` 字段是否包含扩展名,如 `.ts`、`.js` 等,如果设置为 `false` 则不显示图标,如果为 空数组,则使用默认匹配规则
-
- 请注意, `named` 和 `extensions` 数组中的元素必须是 `string` 类型,且严格区分大小写。
-
-举一个例子,如果您是一个前端开发,且仅想在 `pnpm/yarn/npm` 分组时显示图标,其它分组时不显示图标,
-那么可以进行如下配置:
-
-```ts
-export default defineUserConfig({
- theme: plumeTheme({
- plugins: {
- markdownPower: {
- codeTabs: {
- icon: {
- named: ['pnpm', 'yarn', 'npm'], // [!code ++:2]
- extensions: false,
- }
- }
- },
- }
- })
-})
-```
-
-你可以灵活地配置图标显示规则。
-
-::: tip 担心图标会影响构建包体积?
-您无需担心,代码块分组的图标 也是从 `iconify` 解析获取,推荐您在本地安装 `@iconify/json` 项目,
-主题会自动将 `@iconify/json` 中的图标数据解析为本地图标资源,即使您在不同的页面
-多次使用,这包括了 导航栏、侧边栏、图标组件等,相同图标仅会存在一份资源!
-
-每个彩色图标的大小约在 `1kb ~ 2kb` 之间,即使您的文件树非常夸张的使用了 100+ 不同的图标,对最终的构建包体积影响
-也不会很大。
-:::
diff --git a/docs/notes/theme/guide/quick-start/document.md b/docs/notes/theme/guide/quick-start/document.md
deleted file mode 100644
index 644e52a9..00000000
--- a/docs/notes/theme/guide/quick-start/document.md
+++ /dev/null
@@ -1,658 +0,0 @@
----
-title: 文档/知识笔记
-icon: teenyicons:doc-outline
-createTime: 2024/03/04 15:45:34
-permalink: /guide/document/
-tags:
- - 指南
- - 快速开始
----
-
-## 概述
-
-主题提供了 `笔记` 的功能,它用于聚合 同一个系列的文章、或者作为站点的 **子文档** 。
-
-`笔记` 以 文件结构 作为划分依据,默认以 `notes/` 作为根目录,
-存放在 `notes` 目录下的 文档不会作为 博客文章,不会出现在 博客文章列表页中。
-
-## 文件结构与配置
-
-我们有一个项目中,有以下文件结构:
-
-::: file-tree
-
-- docs
- - notes
- - typescript \# typescript 笔记
- - basic.md
- - types.md
- - rust \# rust 笔记
- - tuple.md
- - struct.md
- - blog-post.md \# 博客文章
- - README.md \# 站点首页
-
-:::
-
-在 `docs/notes` 目录下,有两个子目录,分别用于存放 `typescript` 和 `rust` 的系列内容。
-
-接下来,在配置文件中配置 `notes`:
-
-```js title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- notes: {
- // 声明所有笔记的目录,(默认配置,通常您不需要声明它)
- dir: '/notes/',
- link: '/', // 声明所有笔记默认的链接前缀, 默认为 '/' (默认配置,通常您不需要声明它)
- notes: [
- // 每个笔记都是 `notes` 数组中的一个对象
- {
- // 声明笔记的目录,相对于 `notes.dir`,这里表示 `notes/typescript` 目录
- dir: 'typescript',
- // 声明笔记的链接前缀,与 `notes.link` 拼接,这里表示 `/typescript/`
- // 笔记内的所有文章会以 `/typescript/` 作为访问链接前缀。
- link: '/typescript/',
- // 配置 笔记侧边导航栏,用于导航向笔记内的所有文档
- // 声明为 `auto` 的,将根据目录结构自动生成侧边栏导航
- sidebar: 'auto'
- },
- {
- dir: 'rust',
- link: '/rust/',
- sidebar: [
- { text: '简介', items: ['foo'] }
- ]
- }
- ]
- }
- })
-})
-```
-
-::: tip
-
-你应该在创建文件之前,建议先把笔记的目录和链接前缀等配置好。
-主题默认启用了 [auto-frontmatter](../../config/theme.md#autofrontmatter),
-需要根据配置,为目录中的 md 文件生成永久链接,以及侧边栏。
-
-:::
-
-## 编写notes配置
-
-由于 `notes` 配置全部写在 `plumeTheme({ })` 中可能会导致 代码层级嵌套过深,因此更推荐使用主题提供的
-`defineNotesConfig()` 和 `defineNoteConfig()` 将 notes 配置提取到外部,它们还能帮助你获得更好的类型提示,
-更具可读性和便于维护。
-
-::: code-tabs
-
-@tab .vuepress/notes.ts
-
-```ts twoslash
-import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'
-
-/**
- * 配置 单个 note
- */
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- '/guide/intro.md',
- '/guide/getting-start.md',
- '/config/config-file.md',
- ]
-})
-
-/**
- * 配置 notes
- */
-export default defineNotesConfig({
- // 声明所有笔记的目录,(默认配置,通常您不需要声明它)
- dir: '/notes/',
- link: '/',
- // 在这里添加 note 配置
- notes: [typescript] // [!code ++]
-})
-```
-
-@tab .vuepress/config.ts
-
-```ts twoslash
-// @filename: ./notes.ts
-export default {}
-
-// ---cut---
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-import notes from './notes' // [!code ++]
-
-export default defineUserConfig({
- theme: plumeTheme({
- notes // [!code ++]
- }),
-})
-```
-
-:::
-
-:::: details 笔记比较多时怎么配置?
-如果您拥有比较多的笔记,全部放到一个 `notes.ts` 中配置,可能会显得文件比较大且不好维护。
-您可以对文件进行拆分,以 `.vuepress/notes/` 目录作为 笔记配置的目录。
-::: file-tree
-
-- docs
- - .vuepress
- - notes
- - typescript.ts
- - rust.ts
- - index.ts
- - …
- - notes
- - typescript/
- - rust/
-:::
-
-代码如下所示:
-
-::: code-tabs
-@tab .vuepress/config.ts
-
-```ts
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-import notes from './notes/index.ts' // [!code ++]
-
-export default defineUserConfig({
- theme: plumeTheme({
- notes // [!code ++]
- }),
-})
-```
-
-@tab .vuepress/notes/index.ts
-
-```ts
-import { defineNotesConfig } from 'vuepress-theme-plume'
-import rust from './rust' // [!code ++]
-import typescript from './typescript' // [!code ++]
-
-export default defineNotesConfig({
- // 声明所有笔记的目录,(默认配置,通常您不需要声明它)
- dir: '/notes/',
- link: '/',
- // 在这里添加 note 配置
- notes: [ // [!code ++:4]
- typescript,
- rust,
- ]
-})
-```
-
-@tab .vuepress/notes/typescript.ts
-
-```ts
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-export default defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- '/guide/intro.md',
- '/guide/getting-start.md',
- '/config/config-file.md',
- ]
-})
-```
-
-@tab .vuepress/notes/rust.ts
-
-```ts
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-export default defineNoteConfig({
- dir: 'rust',
- link: '/rust/',
- sidebar: [
- '/guide/intro.md',
- '/guide/getting-start.md',
- '/config/config-file.md',
- ]
-})
-```
-
-:::
-::::
-
-### 侧边栏配置
-
-以 `typescript` 目录为例,它拥有如下的文件结构:
-
-::: file-tree
-
-- typescript
- - guide
- - intro.md
- - getting-start.md
- - config
- - config-file.md
- - configuration.md
- - reference
- - basic.md
- - syntax.md
- - modules.md
- - built-in
- - types
- - Required.md
- - Omit.md
- - README.md
-
-:::
-
-#### 自动生成侧边栏
-
-一种最简单的配置方式是 `sidebar: 'auto'` , 主题会自动根据 文件结构生成侧边栏,并根据 首个字符的编码 来排序。
-
-如果想要修改 自动生成的侧边栏的顺序,可以直接在 目录名 或 文件名之前,添加 `1.` 或 `2.` 等前缀。
-
-::: file-tree
-
-- typescript
- - 1.guide
- - 1.intro.md
- - 2.getting-start.md
- - 2.config
- - 1.config-file.md
- - 2.configuration.md
- - …
-:::
-
-主题将根据 这部分的前缀的 数字 进行排序,前缀部分不会显示在侧边栏中。
-
-#### 自定义侧边栏
-
-有时候自动生成侧边栏 不能完全满足需求,你可以自定义侧边栏。
-
-以下是 侧边栏的 类型定义:
-
-```ts
-interface ThemeBadge {
- /* 徽章文本 */
- text?: string
- /* 徽章类型,内置: 'info' | 'tip' | 'danger' | 'warning' */
- type?: string
- /* 文本颜色 */
- color?: string
- /* 背景颜色 */
- bgColor?: string
- /* 边框颜色 */
- borderColor?: string
-}
-
-type ThemeIcon = string | { svg: string }
-
-type Sidebar = (string | SidebarItem)[]
-
-interface SidebarItem {
- /**
- * 侧边栏文本
- */
- text?: string
-
- /**
- * 侧边栏链接
- */
- link?: string
-
- /**
- * 侧边栏图标
- */
- icon?: ThemeIcon
-
- /**
- * 侧边栏徽章
- */
- badge?: string | ThemeBadge
-
- /**
- * 当前分组的链接前缀,链接前缀会拼接在 `items` 内的 `link` 之前
- * 当且仅当 `items` 内的 `link` 为 相对路径时,才会拼接
- */
- prefix?: string
- /**
- * 次级侧边栏分组
- */
- items?: 'auto' | (string | SidebarItem)[]
-
- /**
- * 如果未指定,组不可折叠。
- * 如果为`true`,组可折叠,并默认折叠。
- * 如果为`false`,组可折叠,但默认展开。
- */
- collapsed?: boolean
-}
-```
-
-当 传入类型为 `string` 时,表示 markdown 文件的路径:
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- '/guide/intro.md',
- '/guide/getting-start.md',
- '/config/config-file.md',
- // ...
- ]
-})
-
-// ... other code
-```
-
-你也可以省略 `.md` 文件后缀,简写为 `/guide/intro` 。主题会解析 对应的文件,获取 **标题** 和 **页面链接地址**
-并将其转换为 `{ text: string, link: string }` 的数据形式。
-
-当传入类型为 `SidebarItem` 时:
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- { text: '介绍', link: '/guide/intro' },
- { text: '快速上手', link: '/guide/getting-start' },
- // ...
- ]
-})
-
-// ... other code
-```
-
-也可以进行多层嵌套:
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- text: '指南',
- prefix: '/guide', // 使用 prefix 拼接,可以简写 下面的 items 中的 link 为相对路径
- items: [
- // 可以混用 string 和 SidebarItem
- { text: '介绍', link: 'intro' },
- 'getting-start',
- ],
- },
- {
- text: '配置',
- prefix: '/config',
- items: 'auto', // items 为 'auto',会根据 prefix 的文件结构自动生成侧边栏
- },
- ]
-})
-
-// ... other code
-```
-
-### 关于 `prefix`
-
-`prefix` 的目的是为了简写与其同层级的 `items` 项内的 链接,它允许你将这些链接的相同的前缀提取到
-`prefix` 中,由主题帮您完成完整链接的拼接。
-
-需要注意的是,`items` 中的链接 仅有 相对路径的链接才会与 `prefix` 拼接,而绝对路径则不进行处理。
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- prefix: '/guide',
- items: [
- 'intro', // 相对路径, 最终拼接为 /guide/intro
- '/config/config-file', // 绝对路径,不拼接
- {
- text: '博客',
- link: 'blog', // 相对路径, 最终拼接为 /guide/blog
- },
- {
- text: '配置',
- link: '/config', // 绝对路径,不拼接
- }
- ]
- }
- ]
-})
-```
-
-同时,`items` 内还支持 深层嵌套,内部还依然支持 `prefix`,这里也遵循相同的规则,`prefix` 如果是相对路径,
-则会与 上一层的 `prefix` 拼接,再与 当前层级 `items` 内的 `link` 拼接,如果 `prefix` 是绝对路径,则不与
-上一层级 `prefix` 拼接。
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- prefix: '/guide',
- items: [
- 'intro', // 相对路径, 最终拼接为 /guide/intro
- {
- prefix: '/config',
- items: [
- 'config-file', // 相对路径, 最终拼接为 /config/config-file
- 'configuration', // 相对路径, 最终拼接为 /config/configuration
- ]
- },
- {
- prefix: 'blog',
- items: [
- 'intro', // 相对路径, 最终拼接为 /guide/blog/intro
- 'getting-start', // 相对路径, 最终拼接为 /guide/blog/getting-start
- ]
- }
- ]
- }
- ]
-})
-```
-
-**是否是绝对路径的判断标准是,如果以 `/` 开头,则为绝对路径,否则为相对路径**
-
-:::warning
-不建议 侧边栏的层级过深,超过 3 层的侧边栏 可能会导致 糟糕的 UI 效果。
-:::
-
-### 侧边栏图标
-
-为侧边栏添加 ==图标== 有助于 侧边栏更好的呈现。
-
-支持通过 [markdown -> icon](../guide/features/icon.md) 配置的来源的图标。
-
-- 当 `markdown.icon.provide` 为 `iconify` 时,支持 [iconify](https://iconify.design/) 图标
-- 当 `markdown.icon.provide` 为 `iconfont` 时,支持 [iconfont](https://www.iconfont.cn/) 图标
-- 当 `markdown.icon.provide` 为 `fontawesome` 时,支持 [fontawesome](https://fontawesome.com/) 图标
-
-`markdown.icon.provide` 为非 `iconify` 值时,可以在 图标名称前加上 `iconify` 前缀,强制使用 [iconify](https://iconify.design/) 图标。
-
-```ts
-const item = { text: '首页', link: '/', icon: 'iconify carbon:home' }
-```
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- text: '指南',
- prefix: '/guide',
- icon: 'ep:guide', // iconify icon name // [!code hl]
- items: [
- { text: '介绍', link: 'intro', icon: 'ph:info-light' }, // [!code hl]
- ],
- },
- ]
-})
-```
-
-也可以使用本地图标,或者本地图片:
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- text: '指南',
- prefix: '/guide',
- icon: '/images/guide.png', // iconify icon name // [!code hl]
- items: [
- { text: '介绍', link: 'intro', icon: '/images/info.png' }, // [!code hl]
- // 也可以是一个远程图片
- { text: '快速上手', link: 'getting-start', icon: 'https://cn.vuejs.org/images/logo.png' },
- ],
- },
- ]
-})
-```
-
-**请注意,使用本地图片必须以 `/` 开头,表示为 静态资源路径,它将从 `.vuepress/public/` 目录中加载。**
-
-::: file-tree
-
-- docs
- - .vuepress
- - public \# 在这个位置保存静态资源
- - images
- - guide.png
- - info.png
- - …
-:::
-
-当 `sidebar: auto` 时,可在 md 文件的 `frontmatter` 部分,添加 一个 `icon` 字段:
-
-```md title="intro.md"
----
-title: 介绍
-icon: ep:guide
----
-```
-
-### 侧边栏徽章
-
-主题支持为侧边栏添加徽章,徽章可以用于辅助提供更多的信息。
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- text: '指南',
- prefix: '/guide',
- badge: { text: '徽章', type: 'danger' }, // [!code hl]
- items: [
- { text: '介绍', link: 'intro', badge: '徽章' }, // [!code hl]
- ],
- },
- ]
-})
-```
-
-当 `sidebar: auto` 时,可在 md 文件的 `frontmatter` 部分,添加 一个 `badge` 字段:
-
-```md title="intro.md"
----
-title: 介绍
-badge:
- text: 徽章
- type: danger
----
-```
-
-```md title="intro.md"
----
-title: 介绍
-badge: 徽章
----
-```
-
-### 侧边栏组内分隔
-
-在组内对 项 进行分隔 是一个相对小众的需求,它在组的项比较多,但又不适合拆分为多个组,或者组内拆分多组的情况下,
-可能会比较适用,它提供了一个平级的,使用辅助文本颜色显示一个分隔项名 的方式,对项进行简单的分隔。
-
-```ts title=".vuepress/notes.ts" twoslash
-import { defineNoteConfig } from 'vuepress-theme-plume'
-
-const typescript = defineNoteConfig({
- dir: 'typescript',
- link: '/typescript/',
- sidebar: [
- {
- text: '指南',
- items: [
- '项目 1',
- '项目 2',
- '项目 3',
- { text: '分隔', link: '---' }, // [!code ++]
- '项目 4',
- '项目 5',
- // ...
- ],
- },
- ]
-})
-```
-
-在组内完成分隔非常简单,你只需要在合适的位置插入一个 `{ text: 'xxxx', link: '---' }` 即可,
-它的重点仅是将 `link` 设置为 连续的 `---` 即可,至少三个 `-` 。
-你可以随意定义文本,还可以添加图标。
-
-## 笔记首页
-
-你可能注意到,在 `typescript` 目录下,有一个 `README.md` 文件,它会被作为笔记首页显示。
-
-::: file-tree
-
-- typescript
- - README.md
- - …
-- …
-:::
-
-默认情况下,它与 普通的文档页面 没有区别,这是因为 主题 默认对 所有页面 设置了 `pageLayout: docs`。
-
-但你可以直接配置 `pageLayout: 'home'`,就像配置 [站点首页](../custom/home.md) 一样,为 笔记配置一个个性化的首页!
-
-```md title="typescript/README.md"
----
-pageLayout: home
-config:
- - type: hero
- - type: features
----
-```
diff --git a/docs/notes/theme/guide/quick-start/intro.md b/docs/notes/theme/guide/quick-start/intro.md
deleted file mode 100644
index 0d6c7b54..00000000
--- a/docs/notes/theme/guide/quick-start/intro.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: 主题介绍
-icon: mdi:tooltip-text-outline
-createTime: 2024/03/04 11:06:24
-permalink: /guide/intro/
-tags:
- - 指南
- - 快速开始
----
-
-==vuepress-theme-plume== 是一个基于 VuePress 的主题,无论您是想写 **生活类博客**、**技术类博客**、
-或者是 **产品文档**、**知识库**、**系列文档** 等,主题都可以满足您的需求。
-
-主题针对 文本内容、图片内容 的表现做了大量的优化,特别是针对 Markdown 内容的语法 做了 丰富的扩展,
-你可以很轻松的利用这些特性编写 美观、易读、表现力丰富 的内容。
-
-::: details 不了解 VuePress ?
-
-VuePress 是一个 [静态站点生成器](https://en.wikipedia.org/wiki/Static_site_generator) (SSG) 。
-专为构建快速、以内容为中心的站点而设计。
-简而言之,VuePress 获取用 Markdown 编写的内容,对其应用主题,并生成可以轻松部署到任何地方的静态 HTML 页面。
-:::
-
-[前往 **VuePress 官网** 了解更多](https://v2.vuepress.vuejs.org/zh/){.read-more}
-
-## 优势
-
-与 vuepress 默认主题相比:
-
-### 更好的用户体验
-
-大幅度优化了界面、交互,更为美观、简洁,易用。
-
-### 更多的功能
-
-- 灵活的,可完全自定义的 ==首页== ;
-
-- 可选的 ==博客== 、==文档== 、==知识笔记== ;
-
-- 内置支持 ==全文搜索== 、==文章评论== 、==内容加密== 、 ==文章水印== 等;
-
-- 可对 ==代码块== 进行 分组、折叠、聚焦、行高亮、差异对比 等,
- 支持嵌入 CodePen、JSFiddle、CodeSandbox 等作为 ==代码演示==;
-
-- 内置支持 [iconify](https://icon-sets.iconify.design/) **200k+** ==图标==,还支持可选的 `iconfont` / `fontawesome` 图标;
-
-- 支持 ==嵌入 PDF==、==嵌入 Bilibili /Youtube / 本地 视频==;
-
-- 支持 chart.js、Echarts、Mermaid、Flowchart、Markmap、PlantUML 等多种可选的 ==图表== ;
-
-- 灵活的 markdown 容器语法,支持 ==提示容器==、==文件树==、==代码树==、==卡片容器==、==瀑布流容器== 等;
-
-- 支持 ==布局插槽==、==组件覆写== ==自定义样式== 等,你可以灵活地扩展组件,实现 个性化的 布局。
-
-更多的功能等待你的发现 !
-
-### 更好的开发体验
-
-增加编译缓存,缓存 markdown 文件编译、缓存 复杂 代码块 内容解析结果。
-
-### 更好的配置
-
-支持使用单独的主题配置文件,避免修改配置导致频繁重启 VuePress 服务。
-
-大幅度简化了配置,更易于使用,同时还保留了丰富灵活的配置项,满足个性化的需求。
-
-### 更多
-
-==plume 主题== 尽可能的内置你可能需要的功能,以及搭建站点所需要的一般性配置,您无需关注这些细节。
-目的是,让您更专注于 内容的创作,更好的表达你的想法,享受 Markdown 增强语法带来的便利。
-
-::: tip
-
-本主题 基于 [vuepress-next](https://github.com/vuepress/vuepress-next), 目前处于 RC 阶段。
-
-当前主题 功能和 API 趋于稳定,但在未来的更新中仍有小概率出现破坏更改。
-
-如果您在使用过程中遇到问题,或者有新的想法,
-请在 [Issues](https://github.com/pengzhanbo/vuepress-theme-plume/issues) 里提出,
-也欢迎 通过 [PR](https://github.com/pengzhanbo/vuepress-theme-plume/pulls) 帮助完善主题。
-
-:::
diff --git a/docs/notes/theme/guide/quick-start/locales.md b/docs/notes/theme/guide/quick-start/locales.md
deleted file mode 100644
index 2d66c2c0..00000000
--- a/docs/notes/theme/guide/quick-start/locales.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: 国际化
-icon: material-symbols-light:language
-createTime: 2024/03/05 10:01:26
-permalink: /guide/locales/
-tags:
- - 指南
- - i18n
----
-
-在主题内实现 ==国际化== 只需要进行一些简单的配置。
-
-举一个例子,创建一个 默认语言为 **中文**,并包含 **英语** 和 **法语** 的项目。
-
-## 目录
-
-首先,需要创建类似于下面的目录结构:
-
-::: file-tree
-
-- docs
- - **en** \# 英文目录
- - foo.md
- - README.md \# 英文首页
- - **fr** \# 法文目录
- - foo.md
- - README.md \# 法文首页
- - foo.md
- - README.md \# 中文首页
-:::
-
-其中,`docs/en/` 用于保存 **英文** 文档,`docs/fr/` 保存 **法文** 文档,而 **中文** 则直接保存在 `docs/` 下。
-
-::: important 不同语言下的目录结构与文件名保持一致
-在不同的语言目录下,请尽量保持文件名和目录名的一致。这有助于在 切换语言时,主题能够正确的导航到 文章
-的不同的语言版本。
-:::
-
-## vuepress 配置
-
-### 默认语言
-
-在 `.vuepress/config.ts` 中,声明默认的语言:
-
-```ts title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-
-export default defineUserConfig({
- // 声明默认的语言
- lang: 'zh-CN', // [!code ++]
- // 多语言下支持的各种语言 locales
- locales: {
- '/': { lang: 'zh-CN', title: '博客' }, // 默认语言 为 简体中文
- }
-})
-```
-
-### 添加其他语言
-
-你需要为每个语言设置 `lang` 选项。即使你只在使用单个语言,你也必须在 `.vuepress/config.{js,ts}` 中设置 `lang`。
-
-::: tip 为什么要这样做?
-要提供正确的语言环境文本,主题需要知道根文件夹以及每个多语言文件夹正在使用哪种语言。
-:::
-
-在 `.vuepress/config.ts` 中配置:
-
-```ts title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-
-export default defineUserConfig({
- // 声明默认的语言
- lang: 'zh-CN',
- // 多语言下支持的各种语言 locales
- locales: {
- // 配置 不同 path 下的语言
- '/': { lang: 'zh-CN', title: '博客' }, // 默认语言 为 简体中文
- '/en/': { lang: 'en-US', title: 'Blog' }, // 英文 // [!code ++]
- '/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语 // [!code ++]
- }
-})
-```
-
-**`locales` 配置中的 `key` 作为 `localPath`, 对应着 `docs` 目录下的语言路径,应该保证它们具有相同的命名。**
-
-**同时,`key` (`localPath`) 也将作为 不同语言的页面访问链接的前缀。**
-
-::: important 语言代码
-`locales` 配置中的 `key` 即 `localePath` 需要符合 [ISO 639](https://zh.wikipedia.org/wiki/ISO_639-1) 规范,
-对于非默认语言的,如 `英语` 应该为 `/en/`。
-
-在 `locales[localePath]` 中, `lang` 为当前语言的 **语言代码**,请使用标准的 [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) 语言代码。如, `英语` 应该为 `en-US`,(表示英语(美国))。
-:::
-
-## 主题配置
-
-在主题配置中,同样使用 `locales` 配置项进行多语言配置。
-
-`locales` 支持 所有主题配置项。
-
-```ts title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- lang: 'zh-CN',
- locales: {
- '/': { lang: 'zh-CN', title: '博客' }, // 默认语言 为 简体中文
- '/en/': { lang: 'en-US', title: 'Blog' }, // 英文
- '/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语
- },
- theme: plumeTheme({
- // 主题内的多语言配置
- locales: {
- '/': { // [!code hl]
- // 当前语言显示在导航栏多语言下拉菜单的文本
- selectLanguageName: '简体中文',
- navbar: [
- { text: '首页', link: '/' },
- { text: '博客', link: '/blog/' },
- ]
- },
- '/en/': { // [!code hl]
- selectLanguageName: 'English',
- navbar: [
- { text: 'Home', link: '/en/' },
- { text: 'Blog', link: '/en/blog/' },
- ]
- },
- '/fr/': { // [!code hl]
- selectLanguageName: 'Français',
- navbar: [
- { text: 'Accueil', link: '/fr/' },
- { text: 'Le Blog', link: '/fr/blog/' },
- ]
- }
- }
- })
-})
-```
-
-主题 `theme.locales` 配置中的 `key` 应与 `vuepress` 配置中的 `locales` 配置中的 `key` 一致。
-
-您应该为 `theme.locales[localePath]` 配置 `selectLanguageName` 用于在导航栏多语言下拉菜单中显示当前语言的名称。
-
-更多 `locales` 配置请查看
-
-- [主题配置 > Locales 配置](../../config/theme.md#locale-配置) - 配置主题在不同语言下的行为。
-- [主题配置 > 多语言配置](../../config/locales.md) - 配置与语言相关的文本。
diff --git a/docs/notes/theme/guide/quick-start/optimize-build.md b/docs/notes/theme/guide/quick-start/optimize-build.md
deleted file mode 100644
index 3f46bf79..00000000
--- a/docs/notes/theme/guide/quick-start/optimize-build.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: 构建优化
-icon: clarity:bundle-solid
-outline: 2
-createTime: 2024/09/10 01:50:20
-permalink: /guide/optimize-build/
----
-
-## 图片优化
-
-当我们在 markdown 中使用 `[alt](url)` 或者 `
` 嵌入图片后,虽然页面按照预期的显示了
-图片。
-
-由于图片的体积不同,当图片体积较小,网络情况良好的时候,我们不会感受到页面的布局有产生明显的抖动。
-然而,当图片体积较大,或者网络情况较差时,由于图片为完成加载,原本页面上应该显示图片的位置被后面的
-内容挤压,等到图片加载完成后,页面布局会发生变化,图片重新占据应该显示的位置,其它的内容被排开。
-
-事实上这个体验相当不友好。特别是对于页面内的图片数量较多时,页面会频繁发生布局变化,这一过程还可能
-感知到卡顿,较为明显的是布局的抖动。
-
-因此,让页面布局稳定下来,图片是一个必须解决的问题。
-
-从 [MDN > img](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img#height) 我们可以知道:
-
-::: info
-`
` 同时包括 `height` 和 `width` 使浏览器在加载图像之前计算图像的长宽比。
-此长宽比用于保留显示图像所需的空间,减少甚至防止在下载图像并将其绘制到屏幕上时布局的偏移。
-减少布局偏移是良好用户体验和 Web 性能的主要组成部分。
-:::
-
-因此,主题围绕这个问题,提供了 一个解决方案:
-
-为 markdown 文件中的 `[alt](url)` 或者 `
` 自动添加 `width` 和 `height` 属性。
-
-你可以通过配置 `markdownPower` 来启用它:
-
-```ts
-export default defineUserConfig({
- theme: plumeTheme({
- plugins: {
- markdownPower: {
- imageSize: true, // 'local' | 'all'
- },
- }
- })
-})
-```
-
-启用此功能后,主题会通过图片资源地址,获取图片的原始尺寸,然后为图片添加 `width` 和 `height` 属性。
-
-- 如果设置为 `'local'`, 则仅为 本地图片添加 `width` 和 `height` 属性。
-- 如果设置为 `'all'`, 则包括 __本地图片__ 和 __网络图片__ 都 添加 `width` 和 `height` 属性。
-- 如果设置为 `true`, 则等同于 `'local'`
-
-::: important
-请注意,出于性能考虑,即使您启用了此功能,该功能也仅在 构建生产包时生效。
-:::
-
-::: important
-请谨慎使用 `'all'` 选项,该选项会在构建生产包时,请求所有 markdown 中包含的 远程图片资源,
-这对于包含较多图片资源的站点而言,会使得构建时间变长。
-
-主题也针对此类情况做了优化,请求远程图片仅在获取 __几 KB__ 的数据包足够分析尺寸后不再等待请求完成,
-同时并发请求其他图片资源。这在一定程度上能够改善构建时间。
-:::
-
-## 图标优化
-
-得益于 开源项目 [iconify](https://icon-sets.iconify.design/) 的强大,您可以在主题内使用大约 20 万 个图标。
-
-当然,这并不意味着主题需要加载全部的图标。您可能已经注意到,主题推荐您在本地安装 `@iconify/json` 包,这需要
-下载大约 __70Mb__ 的资源包,如果加载全部的图标到文档站点中,这太大太大了。
-
-但请放心,主题仅会加载您有使用到的图标资源,这包括 导航栏、侧边栏、首页 Features 等配置中的 iconify 图标,
-以及通过语法糖 `::collect:name::` 和 组件 `` 等各种方式使用的图标。
-
-当从本地 `@iconify/json` 中加载图标时, iconify 通过 `[collect]:[name]` 的形式为图标命名,其中根据
-`collect` 来区分图标所属的集合,每个集合拥有 100 ~ 1000+ 数量不等的图标,保存在以 `collect` 为维度的 `json`
-文件中。当文档使用了比较多的不同的 `collect` 下的图标时,即使从本地加载和解析 `json`,也需要花费比较长的时间,
-以主题站点为例,主题使用了 __54 个collect__ 超过 __160+ 个图标__, 在初始启动时,在图标解析加载大约需要耗费 `500ms`
-的时间开销,这显然是难以接受的。
-
-针对这种情况,主题会在首次启动时,缓存有使用的图标资源,当二次启动时,优先从缓存中加载图标,由于仅缓存有使用的
-图标资源,加载这部分资源远比 频繁解析不同 `collect` 下的图标资源要快的多,且资源利用率更高。
-
-其时间开销从 `500ms` 减少到了 `20ms` 甚至更低!这也进一步优化了 启动开发服务的时间!
-
-::: info
-使用 __54 个collect__ 下的图标资源 这种情况相对来说比较极端,这也意味着 54 次的 i/o 读取和 json 解析,
-花费 `500ms` 的时间开销也算是正常,然而实际使用的图标数量仅 `160+ 个` 时,所带来的 直观感受是
-__不应该花费这么长的时间的__ ,因此,缓存这部分的图标资源是一个很好的选择。
-:::
diff --git a/docs/notes/theme/guide/quick-start/project-structure.md b/docs/notes/theme/guide/quick-start/project-structure.md
deleted file mode 100644
index 3cd8c39e..00000000
--- a/docs/notes/theme/guide/quick-start/project-structure.md
+++ /dev/null
@@ -1,229 +0,0 @@
----
-title: 项目结构
-icon: ph:tree-structure-bold
-createTime: 2024/09/16 21:59:30
-permalink: /guide/project-structure/
----
-
-本指南将向您说明 VuePress 和 Plume 创建的项目的文件结构,以及如何在项目中使用它们。
-
-当您 [使用命令行工具创建](./usage.md#命令行安装) 的项目,它的文件结构是这样的:
-
-::: file-tree
-
-- .git/
-- **docs** \# 文档源目录
- - .vuepress \# vuepress 配置文件夹
- - public/ \# 静态资源目录
- - client.ts \# 客户端配置 (可选)
- - config.ts \# vuepress 配置
- - navbar.ts \# 导航栏配置 (可选)
- - notes.ts \# notes 配置 (可选)
- - plume.config.ts \# 主题配置文件 (可选)
- - notes \# 系列文档、知识笔记
- - demo
- - foo.md
- - bar.md
- - preview \# 博客分类之一
- - markdown.md \# 分类下的博客文章
- - article.md \# 博客文章
- - README.md \# 首页
- - …
-- package.json
-- pnpm-lock.yaml
-- .gitignore
-- README.md
-:::
-
-::: tip 如果你是手动创建的,也可以参考此文件结构管理您的项目
-:::
-
-## 文档源目录
-
-**文档源目录** 指的是,你的站点的所有 markdown 文件所在的目录。该目录一般在使用 命令行工具 启动 VuePress
-时指定:
-
-```sh
-# [!code word:docs]
-vuepress dev docs
-# 这里声明了文档源目录为 docs
-```
-
-```json title="package.json"
-{
- "scripts": {
- "docs:dev": "vuepress dev docs",
- // ^^^^
- "docs:build": "vuepress build docs"
- // ^^^^
- }
-}
-```
-
-一般而言,VuePress 仅会接管 该目录,非源目录下的其它文件会被忽略。
-
-## `.vuepress` 目录
-
-`.vuepress/` 目录是 VuePress 配置文件夹,你还可以在这里创建 自己的组件、自定义主题样式等。
-
-**在此目录中:**
-
-### `client.ts`
-
-客户端配置文件,你可以在这里扩展 VuePress 的功能,比如声明新的全局组件等。
-
-```ts title=".vuepress/client.ts"
-import { defineClientConfig } from 'vuepress/client'
-
-export default defineClientConfig({
- enhance({ app, router, siteData }) {
- // app: vue app 实例
- // router: vue router 实例
- // siteData: vuepress 站点配置
-
- // 注册全局组件
- app.component('MyComponent', MyComponent)
- },
- setup() {
- // 等同于 vue 根组件 上的 setup 方法
- }
-})
-```
-
-### `config.ts`
-
-为 VuePress 配置文件,你需要在这里进行一些必要的配置,比如 主题、插件、构建工具等。
-
-```ts title=".vuepress/config.ts" twoslash
-import { viteBundler } from '@vuepress/bundler-vite'
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- lang: 'zh-CN',
- theme: plumeTheme({
- // more...
- }),
- bundler: viteBundler(),
-})
-```
-
-### `plume.config.ts`
-
-主题配置文件,由于每次修改 `.vuepress/config.ts`,都需要重启 VuePress 服务,然而实际上大多数时候都不需要这么做。
-
-主题将不需要重启服务的配置移动到了这里。在这里修改配置时,仅通过热更新的方式更新主题。
-
-::: code-tabs
-@tab .vuepress/plume.config.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'
-
-export default defineThemeConfig({
- logo: '/logo.svg',
- profile: {
- name: 'Theme Plume',
- },
- navbar,
- notes,
- // ... more
-})
-```
-
-@tab .vuepress/navbar.ts
-
-```ts twoslash
-import { defineNavbarConfig } from 'vuepress-theme-plume'
-
-export default defineNavbarConfig([
- // ...
-])
-```
-
-@tab .vuepress/notes.ts
-
-```ts twoslash
-import { defineNotesConfig } from 'vuepress-theme-plume'
-
-export default defineNotesConfig({
- dir: '/notes/',
- link: '/',
- notes: [],
-})
-```
-
-:::
-
-## notes 目录
-
-**notes** 目录用于存放你的 知识笔记、系列文档等。
-
-### 如何理解知识笔记/系列文档 ?
-
-一种很常见的场景是,您正在学习某项技能,并打算把学习心得、重点内容、疑难点等记录在笔记中,这一场景下,
-您可能会写多篇文档进行记录。
-
-或者是,您正在准备面试,想要提前准备好 面试题目和答案,这时候可能会把 每个题目和答案都单独作为一篇文档。
-
-你很容易就会希望把它们都单独放在一个目录下进行管理,与此同时,还希望在生成的文档站点中,能够快速的在
-这项技能笔记 的不同文档之间导航,或者在不同的面试题目之间导航。
-
-这是博客类型的文档满足不了的诉求,而这恰恰是 `notes` 所要解决的一个痛点。
-
-上述的内容,很容易产生以下目录结构:
-
-::: file-tree
-
-- notes
- - interview \# 面试题
- - 自我介绍.md
- - 我的技能.md
- - 做过的项目.md
- - …
- - typescript \# 学习笔记
- - 基础
- - 基本类型.md
- - 泛型.md
- - …
- - 进阶
- - 函数.md
- - …
-:::
-
-这可以很方便的管理多个系列文档,每个系列文档都可以有自己的目录结构。
-
-## 其它目录/文件
-
-在 ==文档源目录== 中的 其它目录、文件,除了 `README.md` 被识别为 `主页` 之外,都会被识别为 博客文章。
-而 目录结构 则将被识别为 博客分类。
-
-::: file-tree
-
-- docs
- - 生活
- - 旅游日记.md
- - …
- - 学习
- - 考试笔记.md
- - …
- - 工作
- - 番茄时间.md
- - …
- - 杂事.md \# 无分类的文章
- - README.md \# 主页
- - …
-
-:::
diff --git a/docs/notes/theme/guide/quick-start/usage.md b/docs/notes/theme/guide/quick-start/usage.md
deleted file mode 100644
index b45da680..00000000
--- a/docs/notes/theme/guide/quick-start/usage.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-title: 安装/使用
-icon: grommet-icons:install
-createTime: 2024/03/04 09:50:07
-permalink: /guide/usage/
-tags:
- - 指南
- - 快速开始
----
-
-## 依赖环境
-
-- [Node.js](https://nodejs.org/) : **^20.6.0 或 >= 22.0.0** [+node-versions]
-- [npm 8+](https://www.npmjs.com/) 或 [pnpm 8+](https://pnpm.io/zh/) 或 [Yarn 2+](https://yarnpkg.com/)
-
-[+node-versions]: **^20.6.0:** `20.6.0` 及以上但不高于 `21.0.0` 的版本
-[+node-versions]: **>= 22.0.0:** `22.0.0` 及以上的版本
-
-:::: details 怎么安装依赖环境?
-::: steps
-
-1. **请前往 [Node.js 官网](https://nodejs.org/zh-cn) 下载最新稳定版本**
-
- 请根据指引完成安装,一般而言,在安装过程中,您只需要保持其默认设置,直接选择下一步即可。
-
-2. **安装 PNPM**
-
- 在您安装完成 node.js 后,请打开 终端,执行如下命令:
-
- ```sh
- corepack enable
- ```
-
- 主题推荐您使用 pnpm 作为项目管理器。
-
-3. **完成**
-
-:::
-::::
-
-## 命令行安装
-
-主题提供了一个 命令行工具,帮助您构建一个基本项目。您可以通过运行以下命令,启动 安装向导。
-
-::: npm-to
-
-```sh
-npm create vuepress-theme-plume@latest
-```
-
-:::
-
-启动向导后,您只需要回答几个简单的问题:
-
-
-
-::: details 怎么使用命令行工具?
-
-以 Windows 系统为例,你可以使用以下方法来启动 CMD 命令行工具:
-
-1. 按下 `Win + R` 键打开 “运行” 对话框。
-2. 输入 `cmd` 并按下 Enter 键。 (也可以输入 `powershell` 来打开 PowerShell)
-
-注意此时 `cmd` 可能不在你期望的目录位置,你可以使用如下命令来切换到正确的目录:
-
-```sh
-D: # 此命令将切换到 D: 分区,进入其他分区请按照实际情况修改
-cd open-source # 进入 D: 分区下的 open-source 目录
-```
-
-此时,你就可以在这里输入 `pnpm create vuepress-theme-plume@latest` 来创建一个基本的项目了。
-
-创建的项目将位于 `D:\open-source\my-project` 目录下。
-:::
-
-## 手动安装
-
-::: info 提示
-
-- 使用 [pnpm](https://pnpm.io/zh/) 时,你需要安装 `vue` 作为 peer-dependencies 。
-- 使用 [Yarn 2+](https://yarnpkg.com/) 时,你需要在 `.yarnrc.yml` 文件中设置 `nodeLinker: 'node-modules'` 。
-:::
-
-使用本主题,你需要首先新建一个项目,并安装`vuepress@next`以及本主题
-
-:::: steps
-
-- ### 新建文件夹并进入目录
-
- ``` sh
- mkdir my-blog
- cd my-blog
- ```
-
-- ### 初始化项目
-
- ::: npm-to
-
- ``` sh
- git init
- npm init
- ```
-
- :::
-
-- ### 安装相关依赖
-
- 安装 `vuepress@next` 和 `vuepress-theme-plume` 作为本地依赖。
-
- ::: npm-to
-
- ```sh
- # 安装 vuepress
- npm i -D vuepress@next vue
- # 安装 主题和打包工具
- npm i -D vuepress-theme-plume @vuepress/bundler-vite@next
- ```
-
- :::
-
- :::warning
- 主题当前版本 已适配至 vuepress@{{ vuepressVersion }},你应该安装这个版本的 VuePress。高于或低于这个版本,可能会存在潜在的兼容性问题。
- :::
-
-- ### 在 `package.json` 中添加 `script`
-
- ``` json title="package.json"
- {
- "scripts": {
- "docs:dev": "vuepress dev docs",
- "docs:build": "vuepress build docs"
- }
- }
- ```
-
- `vuepress` 默认将文档源码放在 `docs` 目录下。
-
-- ### 将默认的临时目录和缓存目录添加到`.gitignore` 文件中
-
- ::: code-tabs
- @tab .gitignore
-
- ``` txt
- node_modules
- .temp
- .cache
- ```
-
- @tab sh
-
- ``` sh
- echo 'node_modules' >> .gitignore
- echo '.temp' >> .gitignore
- echo '.cache' >> .gitignore
- ```
-
- :::
-
-- ### 在 `docs/.vuepress/config.{js,ts}` 中配置主题
-
- ``` ts title="docs/.vuepress/config.ts" twoslash
- import { viteBundler } from '@vuepress/bundler-vite'
- import { defineUserConfig } from 'vuepress'
- import { plumeTheme } from 'vuepress-theme-plume'
-
- export default defineUserConfig({
- // 请不要忘记设置默认语言
- lang: 'zh-CN',
- theme: plumeTheme({
- // more...
- }),
- bundler: viteBundler(),
- })
- ```
-
- :::warning 不要忘记设置默认语言
- 无论是否需要使用 **多语言** ,你都应该为 VuePress 配置 正确 `lang` 选项值。
- 主题需要根据 `lang` 选项来确定语言环境文本。
- :::
-
-- ### 在 `docs` 目录下新建 `README.md` 文件
-
- 声明首页配置。
-
- ``` md title="README.md"
- ---
- home: true
- ---
- ```
-
-- ### 在本地服务器启动你的文档站点
-
- ::: npm-to
-
- ``` sh
- npm run docs:dev
- ```
-
- :::
-
- VuePress 会在
- 启动一个热重载的开发服务器。当修改 Markdown 文件时,浏览器中的内容也会自动更新。
-
-- ### 完成
-
-::::
-
-## 更新主题
-
-您可以直接在项目中运行以下命令检查是否有可用的更新:
-
-::: npm-to
-
-``` sh
-npx vp-update
-```
-
-:::
-
-
diff --git a/docs/notes/theme/guide/quick-start/write.md b/docs/notes/theme/guide/quick-start/write.md
deleted file mode 100644
index a4493aa6..00000000
--- a/docs/notes/theme/guide/quick-start/write.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: 编写文章
-icon: mingcute:edit-4-line
-createTime: 2024/03/04 10:06:06
-permalink: /guide/write/
-tags:
- - 指南
- - 快速开始
----
-
-VuePress 支持完整的 [Markdown 语法](../markdown/basic.md),
-以及使用 [YAML](https://dev.to/paulasantamaria/introduction-to-yaml-125f)
-定义 frontmatter 页面元数据,例如 标题和创建时间。
-
-主题还对 Markdown 语法进行了 [扩展](../markdown/extensions.md) 支持。你还可以直接在
-Markdown 中写 HTML ,或者使用 Vue 组件。
-
-## Frontmatter
-
-你可以通过设置 frontmatter 中的值来自定义 VuePress 里每个页面。
-Frontmatter 是你的文件顶部在 `---` 中间的部分。
-
-```md title="post.md"
-
----
-title: 文章标题
-createTime: 2024/09/08 22:53:34
-permalink: /article/9eh4d6ao/
----
-
-页面内容在第二个 `---` 后面。
-```
-
-::: details 什么是 frontmatter?
-frontmatter 是一个 [YAML](https://dev.to/paulasantamaria/introduction-to-yaml-125f) 格式的配置内容,被放置于 markdown 文件的顶部,通过 `---` 来分隔。
-
-您可以阅读 [这篇文章](../../../../4.教程/frontmatter.md) 了解如何正确书写 frontmatter。
-:::
-
-## 自动生成 Frontmatter
-
-默认配置下,主题在启动开发服务后,会帮助为源目录中的 markdown 文件,生成一些 `frontmatter` 配置。
-这些配置包括: __标题__, __创建时间__ 以及 __永久链接__。
-
-一方面,这可以减少 内容创作者 的一些重复工作;另一方面,这些配置也为主题后续的其他功能提供了前置支持。
-
-```md
----
-title: 标题
-createTime: 2024/09/08 22:53:34
-permalink: /article/9eh4d6ao/
----
-```
-
-### 标题
-
-主题默认 使用文件名作为文章标题。在解析 文件名 时,[文件命名约定](#文件夹命名约定) 所命名的文件名如
-`1.我的文章.md`,其中 `1.` 和 `.md` 部分将被裁剪,最终文章标题为 `我的文章` 。
-
-### 创建时间
-
-主题默认使用文件创建时间作为文章创建时间,并将其格式化为 `yyyy/MM/dd HH:mm:ss`。
-
-### 永久链接
-
-__永久链接__ 指的是,文章发布后的 访问地址,这个地址一旦生成,只要您不手动修改它,即使文件路径、文件名发生改变也不会改变。
-
-提前准备好 __永久链接__ 是比较有价值的,一方面,它可以帮助改善 站点的 SEO,避免收录的地址频繁变动;
-另一方面,主题使用一套规范 生成 __永久链接__ ,它使得整个站点的 链接 风格一致。
-
-- __博客文章__
-
- 对于 博客文章,默认使用 `/article/` 作为永久链接的前缀,然后使用 [`nanoid`](https://github.com/ai/nanoid)
- 生成长度为 `8` 的随机字符串进行拼接,作为文章的永久链接, 如 `/article/9eh4d6ao/`。
-
- 对于链接前缀,还可以通过修改 [主题配置 > article](../../config/theme.md#article) 替换默认的 `/article/`。
-
-- __notes__
-
- 对于 notes , 主题使用更为灵活的自定义方案,你可以在 [notes > note.link](../../config/notes.md#配置) 声明不同的
- note 的链接前缀,然后同样适用 [`nanoid`](https://github.com/ai/nanoid)
- 生成长度为 `8` 的随机字符串进行拼接,作为 note 文章的永久链接。
-
-### 禁用自动生成
-
-你可能不想主题做额外的自动生成,希望由自己完全掌控。这完全没问题,主题支持通过配置来控制 自动生成 frontmatter 的行为。
-通过 [主题配置 > autoFrontmatter](../../config/theme.md#autofrontmatter) 即可轻松做到。
-
-```ts title=".vuepress/config.ts" twoslash
-import { defineUserConfig } from 'vuepress'
-import { plumeTheme } from 'vuepress-theme-plume'
-
-export default defineUserConfig({
- theme: plumeTheme({
- // 完全禁用所有自动生成
- // autoFrontmatter: false,
-
- // 控制部分自动生成
- autoFrontmatter: {
- permalink: true, // 是否生成永久链接
- createTime: true, // 是否生成创建时间
- title: true, // 是否生成标题
- }
- })
-})
-```
-
-## 约定
-
-::: info 提示
-以下内容,以 [项目结构](./project-structure.md) 中的文件结构作为基准。
-:::
-
-使用本主题编写文章是一件很轻松的事情,你可以在 `docs`目录中按照你的个人命名喜好新建任意名字的`Markdown`文件。
-
-### 文件夹命名约定
-
-对于 `docs` 中的文件夹命名,主题有一套简单的约定。
-
-- 文件夹的名称将作为 `category` 即 __分类__。
-- 允许多级目录,子级目录将作为父目录对应的分类的子项。
-- 如果目录名称 在 [主题配置 notes](../../config/notes.md) 中声明用于 notes 文章管理,则默认不作为 分类目录。
-
-由于文件夹名称将作为分类名称,且不在主题配置中进行排序配置,对于有排序需要的场景,使用以下规则进行命名:
-
-``` ts :no-line-numbers
-const dir = /\d+\.[\s\S]+/
-// 即 数字 + . + 分类名称
-// 如: 1.前端
-```
-
-数字将作为 __排序__ 的依据。 如果不带数字,则以默认的规则进行排序。
-
-__example:__
-
-::: file-tree
-
-- docs
- - 1.前端
- - 1.html/
- - 2.css/
- - 3.javascript/
- - 2.后端/
- - 运维/
-:::
-
-主题将根据 目录结构,生成一个 分类页。
-
-### 文件命名约定
-
-- __博客文章__
-
- 对于 __博客文章__ 的名称,主题没有任何约定,你可以任意命名。博客文章默认排序规则仅根据文件创建时间进行排序。
- 你还可以通过 [frontmatter > sticky](../../config/frontmatter/post.md#sticky) 配置文章是否置顶。
-
-- __notes__
-
- 对于 __notes__ 中的 markdown 文件名称,依然遵循 与 [文件夹命名约定](#文件夹命名约定) 相同的规则。
- 这可以为 notes 的 [自动生成侧边栏](../../config/notes.md#自动生成侧边栏) 提供排序依据。
-
-## 文章写作
-
-你可以使用 `markdown` 语法开始在 `docs` 下新建 `Markdown` 文件,编写你自己的文章了,
-关于 markdown 扩展的功能支持,请查看 [这个文档](../markdown/extensions.md)
-
-由于主题默认会为文章 的 `frontmatter` 自动生成一个 `title`,因此,文章内容的主体部分的标题,起始应该从 `h2` 即
-`## 二级标题` 开始。如果您禁用了 `autoFrontmatter.title`,那么应该使用 `h1` 即 `# 一级标题` 开始。
-
-### 标签
-
-通过 `frontmatter.tags` 可以为文章添加标签。
-
-```md
----
-title: 我的文章
-tags:
- - 标签 1
- - 标签 2
----
-```
diff --git a/docs/notes/theme/snippet/chart-1.snippet.md b/docs/snippet/chart-1.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-1.snippet.md
rename to docs/snippet/chart-1.snippet.md
diff --git a/docs/notes/theme/snippet/chart-2.snippet.md b/docs/snippet/chart-2.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-2.snippet.md
rename to docs/snippet/chart-2.snippet.md
diff --git a/docs/notes/theme/snippet/chart-3.snippet.md b/docs/snippet/chart-3.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-3.snippet.md
rename to docs/snippet/chart-3.snippet.md
diff --git a/docs/notes/theme/snippet/chart-4.snippet.md b/docs/snippet/chart-4.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-4.snippet.md
rename to docs/snippet/chart-4.snippet.md
diff --git a/docs/notes/theme/snippet/chart-5.snippet.md b/docs/snippet/chart-5.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-5.snippet.md
rename to docs/snippet/chart-5.snippet.md
diff --git a/docs/notes/theme/snippet/chart-6.snippet.md b/docs/snippet/chart-6.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/chart-6.snippet.md
rename to docs/snippet/chart-6.snippet.md
diff --git a/docs/notes/theme/snippet/code-block.snippet.md b/docs/snippet/code-block.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/code-block.snippet.md
rename to docs/snippet/code-block.snippet.md
diff --git a/docs/notes/theme/snippet/create.snippet.md b/docs/snippet/create.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/create.snippet.md
rename to docs/snippet/create.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-1.snippet.md b/docs/snippet/echarts-1.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-1.snippet.md
rename to docs/snippet/echarts-1.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-10.snippet.md b/docs/snippet/echarts-10.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-10.snippet.md
rename to docs/snippet/echarts-10.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-2.snippet.md b/docs/snippet/echarts-2.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-2.snippet.md
rename to docs/snippet/echarts-2.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-3.snippet.md b/docs/snippet/echarts-3.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-3.snippet.md
rename to docs/snippet/echarts-3.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-4.snippet.md b/docs/snippet/echarts-4.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-4.snippet.md
rename to docs/snippet/echarts-4.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-5.snippet.md b/docs/snippet/echarts-5.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-5.snippet.md
rename to docs/snippet/echarts-5.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-6.snippet.md b/docs/snippet/echarts-6.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-6.snippet.md
rename to docs/snippet/echarts-6.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-7.snippet.md b/docs/snippet/echarts-7.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-7.snippet.md
rename to docs/snippet/echarts-7.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-8.snippet.md b/docs/snippet/echarts-8.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-8.snippet.md
rename to docs/snippet/echarts-8.snippet.md
diff --git a/docs/notes/theme/snippet/echarts-9.snippet.md b/docs/snippet/echarts-9.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/echarts-9.snippet.md
rename to docs/snippet/echarts-9.snippet.md
diff --git a/docs/notes/theme/snippet/include-1.snippet.md b/docs/snippet/include-1.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/include-1.snippet.md
rename to docs/snippet/include-1.snippet.md
diff --git a/docs/notes/theme/snippet/include-2.snippet.md b/docs/snippet/include-2.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/include-2.snippet.md
rename to docs/snippet/include-2.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-1.snippet.md b/docs/snippet/mermaid-1.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-1.snippet.md
rename to docs/snippet/mermaid-1.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-10.snippet.md b/docs/snippet/mermaid-10.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-10.snippet.md
rename to docs/snippet/mermaid-10.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-11.snippet.md b/docs/snippet/mermaid-11.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-11.snippet.md
rename to docs/snippet/mermaid-11.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-12.snippet.md b/docs/snippet/mermaid-12.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-12.snippet.md
rename to docs/snippet/mermaid-12.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-13.snippet.md b/docs/snippet/mermaid-13.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-13.snippet.md
rename to docs/snippet/mermaid-13.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-14.snippet.md b/docs/snippet/mermaid-14.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-14.snippet.md
rename to docs/snippet/mermaid-14.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-15.snippet.md b/docs/snippet/mermaid-15.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-15.snippet.md
rename to docs/snippet/mermaid-15.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-16.snippet.md b/docs/snippet/mermaid-16.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-16.snippet.md
rename to docs/snippet/mermaid-16.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-17.snippet.md b/docs/snippet/mermaid-17.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-17.snippet.md
rename to docs/snippet/mermaid-17.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-2.snippet.md b/docs/snippet/mermaid-2.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-2.snippet.md
rename to docs/snippet/mermaid-2.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-3.snippet.md b/docs/snippet/mermaid-3.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-3.snippet.md
rename to docs/snippet/mermaid-3.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-4.snippet.md b/docs/snippet/mermaid-4.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-4.snippet.md
rename to docs/snippet/mermaid-4.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-5.snippet.md b/docs/snippet/mermaid-5.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-5.snippet.md
rename to docs/snippet/mermaid-5.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-6.snippet.md b/docs/snippet/mermaid-6.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-6.snippet.md
rename to docs/snippet/mermaid-6.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-7.snippet.md b/docs/snippet/mermaid-7.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-7.snippet.md
rename to docs/snippet/mermaid-7.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-8.snippet.md b/docs/snippet/mermaid-8.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-8.snippet.md
rename to docs/snippet/mermaid-8.snippet.md
diff --git a/docs/notes/theme/snippet/mermaid-9.snippet.md b/docs/snippet/mermaid-9.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/mermaid-9.snippet.md
rename to docs/snippet/mermaid-9.snippet.md
diff --git a/docs/notes/theme/snippet/snippet-1.js b/docs/snippet/snippet-1.js
similarity index 100%
rename from docs/notes/theme/snippet/snippet-1.js
rename to docs/snippet/snippet-1.js
diff --git a/docs/notes/theme/snippet/whitespace.snippet.md b/docs/snippet/whitespace.snippet.md
similarity index 100%
rename from docs/notes/theme/snippet/whitespace.snippet.md
rename to docs/snippet/whitespace.snippet.md
diff --git a/docs/notes/tools/README.md b/docs/tools/README.md
similarity index 100%
rename from docs/notes/tools/README.md
rename to docs/tools/README.md
diff --git a/docs/notes/tools/caniuse.md b/docs/tools/caniuse.md
similarity index 100%
rename from docs/notes/tools/caniuse.md
rename to docs/tools/caniuse.md
diff --git a/docs/notes/tools/custom-theme.md b/docs/tools/custom-theme.md
similarity index 100%
rename from docs/notes/tools/custom-theme.md
rename to docs/tools/custom-theme.md
diff --git a/docs/notes/tools/home-hero-tint-plate.md b/docs/tools/home-hero-tint-plate.md
similarity index 100%
rename from docs/notes/tools/home-hero-tint-plate.md
rename to docs/tools/home-hero-tint-plate.md
diff --git a/eslint.config.js b/eslint.config.js
index fd53b049..5f165cc1 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -7,8 +7,8 @@ export default config({
},
ignores: [
'lib',
- 'docs/notes/theme/snippet/code-block.snippet.md',
- 'docs/notes/theme/snippet/whitespace.snippet.md',
+ 'docs/snippet/code-block.snippet.md',
+ 'docs/snippet/whitespace.snippet.md',
],
globals: {
__VUEPRESS_VERSION__: 'readonly',
diff --git a/examples/layout-slots/docs/.vuepress/client.ts b/examples/layout-slots/docs/.vuepress/client.ts
index 1b3b3851..3e42fd49 100644
--- a/examples/layout-slots/docs/.vuepress/client.ts
+++ b/examples/layout-slots/docs/.vuepress/client.ts
@@ -45,26 +45,26 @@ export default defineClientConfig({
'page-top': () => h(SlotDemo, { name: 'page-top' }),
'page-bottom': () => h(SlotDemo, { name: 'page-bottom' }),
- 'blog-top': () => h(SlotDemo, { name: 'blog-top' }),
- 'blog-bottom': () => h(SlotDemo, { name: 'blog-bottom', mt: 16 }),
- 'blog-aside-top': () => h(SlotDemo, { name: 'blog-aside-top', h: 44, mt: 16 }),
- 'blog-aside-bottom': () => h(SlotDemo, { name: 'blog-aside-bottom', h: 44 }),
- 'blog-extract-before': () => h(SlotDemo, { name: 'blog-extract-before' }),
- 'blog-extract-after': () => h(SlotDemo, { name: 'blog-extract-after' }),
- 'blog-post-list-before': () => h(SlotDemo, { name: 'blog-post-list-before', mt: 16 }),
- 'blog-post-list-after': () => h(SlotDemo, { name: 'blog-post-list-after' }),
- 'blog-post-list-pagination-after': () => h(SlotDemo, {
- name: 'blog-post-list-pagination-after',
+ 'posts-top': () => h(SlotDemo, { name: 'posts-top' }),
+ 'posts-bottom': () => h(SlotDemo, { name: 'posts-bottom', mt: 16 }),
+ 'posts-aside-top': () => h(SlotDemo, { name: 'posts-aside-top', h: 44, mt: 16 }),
+ 'posts-aside-bottom': () => h(SlotDemo, { name: 'posts-aside-bottom', h: 44 }),
+ 'posts-extract-before': () => h(SlotDemo, { name: 'posts-extract-before' }),
+ 'posts-extract-after': () => h(SlotDemo, { name: 'posts-extract-after' }),
+ 'posts-post-list-before': () => h(SlotDemo, { name: 'posts-post-list-before', mt: 16 }),
+ 'posts-post-list-after': () => h(SlotDemo, { name: 'posts-post-list-after' }),
+ 'posts-post-list-pagination-after': () => h(SlotDemo, {
+ name: 'posts-post-list-pagination-after',
}),
- 'blog-tags-before': () => h(SlotDemo, { name: 'blog-tags-before', mt: 16 }),
- 'blog-tags-after': () => h(SlotDemo, { name: 'blog-tags-after', mt: 16 }),
- 'blog-tags-content-before': () => h(SlotDemo, { name: 'blog-tags-content-before', mt: 16 }),
- 'blog-tags-title-after': () => h(SlotDemo, { name: 'blog-tags-title-after' }),
- 'blog-archives-before': () => h(SlotDemo, { name: 'blog-archives-before', mt: 16 }),
- 'blog-archives-after': () => h(SlotDemo, { name: 'blog-archives-after' }),
- 'blog-categories-before': () => h(SlotDemo, { name: 'blog-categories-before' }),
- 'blog-categories-content-before': () => h(SlotDemo, { name: 'blog-categories-content-before' }),
- 'blog-categories-after': () => h(SlotDemo, { name: 'blog-categories-after' }),
+ 'posts-tags-before': () => h(SlotDemo, { name: 'posts-tags-before', mt: 16 }),
+ 'posts-tags-after': () => h(SlotDemo, { name: 'posts-tags-after', mt: 16 }),
+ 'posts-tags-content-before': () => h(SlotDemo, { name: 'posts-tags-content-before', mt: 16 }),
+ 'posts-tags-title-after': () => h(SlotDemo, { name: 'posts-tags-title-after' }),
+ 'posts-archives-before': () => h(SlotDemo, { name: 'posts-archives-before', mt: 16 }),
+ 'posts-archives-after': () => h(SlotDemo, { name: 'posts-archives-after' }),
+ 'posts-categories-before': () => h(SlotDemo, { name: 'posts-categories-before' }),
+ 'posts-categories-content-before': () => h(SlotDemo, { name: 'posts-categories-content-before' }),
+ 'posts-categories-after': () => h(SlotDemo, { name: 'posts-categories-after' }),
}),
NotFound: () => h(NotFound, null, {
'layout-top': () => h(SlotDemo, { name: 'layout-top' }),
diff --git a/examples/layout-slots/docs/.vuepress/navbar.ts b/examples/layout-slots/docs/.vuepress/navbar.ts
deleted file mode 100644
index 6a5128e1..00000000
--- a/examples/layout-slots/docs/.vuepress/navbar.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume'
-
-export const navbar = defineNavbarConfig([
- { text: '首页', link: '/' },
- { text: '博客', link: '/blog/' },
- { text: '404', link: '/404/' },
- { text: '笔记', link: '/notes/demo/README.md' },
-])
diff --git a/examples/layout-slots/docs/.vuepress/notes.ts b/examples/layout-slots/docs/.vuepress/notes.ts
deleted file mode 100644
index 01c39b0c..00000000
--- a/examples/layout-slots/docs/.vuepress/notes.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { defineNoteConfig, defineNotesConfig } from 'vuepress-theme-plume'
-
-const demoNote = defineNoteConfig({
- dir: 'demo',
- link: '/demo',
- sidebar: ['', 'foo', 'bar'],
-})
-
-export const notes = defineNotesConfig({
- dir: 'notes',
- link: '/',
- notes: [demoNote],
-})
diff --git a/examples/layout-slots/docs/.vuepress/plume.config.ts b/examples/layout-slots/docs/.vuepress/plume.config.ts
index 8e4f20cf..7e06a8b5 100644
--- a/examples/layout-slots/docs/.vuepress/plume.config.ts
+++ b/examples/layout-slots/docs/.vuepress/plume.config.ts
@@ -1,6 +1,4 @@
import { defineThemeConfig } from 'vuepress-theme-plume'
-import { navbar } from './navbar'
-import { notes } from './notes'
/**
* @see https://theme-plume.vuejs.press/config/basic/
@@ -26,6 +24,20 @@ export default defineThemeConfig({
// organization: '',
},
- navbar,
- notes,
+ navbar: [
+ { text: '首页', link: '/' },
+ { text: '博客', link: '/blog/' },
+ { text: '404', link: '/404/' },
+ { text: '笔记', link: '/demo/README.md' },
+ ],
+ collections: [
+ { type: 'post', dir: 'blog', title: '博客' },
+ {
+ type: 'doc',
+ dir: 'demo',
+ linkPrefix: '/demo/',
+ title: '笔记',
+ sidebar: ['', 'foo', 'bar'],
+ },
+ ],
})
diff --git a/examples/layout-slots/docs/preview/layout-page.md b/examples/layout-slots/docs/blog/preview/layout-page.md
similarity index 100%
rename from examples/layout-slots/docs/preview/layout-page.md
rename to examples/layout-slots/docs/blog/preview/layout-page.md
diff --git a/examples/layout-slots/docs/preview/markdown.md b/examples/layout-slots/docs/blog/preview/markdown.md
similarity index 100%
rename from examples/layout-slots/docs/preview/markdown.md
rename to examples/layout-slots/docs/blog/preview/markdown.md
diff --git a/examples/layout-slots/docs/notes/demo/README.md b/examples/layout-slots/docs/demo/README.md
similarity index 100%
rename from examples/layout-slots/docs/notes/demo/README.md
rename to examples/layout-slots/docs/demo/README.md
diff --git a/examples/layout-slots/docs/notes/demo/bar.md b/examples/layout-slots/docs/demo/bar.md
similarity index 100%
rename from examples/layout-slots/docs/notes/demo/bar.md
rename to examples/layout-slots/docs/demo/bar.md
diff --git a/examples/layout-slots/docs/notes/demo/foo.md b/examples/layout-slots/docs/demo/foo.md
similarity index 100%
rename from examples/layout-slots/docs/notes/demo/foo.md
rename to examples/layout-slots/docs/demo/foo.md
diff --git a/package.json b/package.json
index de40778d..ad171e75 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"type": "module",
"version": "1.0.0-rc.164",
"private": true,
- "packageManager": "pnpm@10.17.0",
+ "packageManager": "pnpm@10.18.1",
"author": "pengzhanbo (https://github.com/pengzhanbo/)",
"license": "MIT",
"keywords": [
@@ -49,6 +49,7 @@
"@types/lodash.merge": "catalog:dev",
"@types/minimist": "catalog:dev",
"@types/node": "catalog:dev",
+ "@types/picomatch": "catalog:dev",
"@types/stylus": "catalog:dev",
"@types/webpack-env": "catalog:dev",
"@vitest/coverage-istanbul": "catalog:dev",
diff --git a/plugins/plugin-md-power/src/client/components/ArtPlayer.vue b/plugins/plugin-md-power/src/client/components/ArtPlayer.vue
index 2669f924..8cec604f 100644
--- a/plugins/plugin-md-power/src/client/components/ArtPlayer.vue
+++ b/plugins/plugin-md-power/src/client/components/ArtPlayer.vue
@@ -39,7 +39,7 @@ async function createPlayer() {
loaded.value = false
const { default: ArtPlayer } = await import(
- /* webpackChunkName: "artplayer" */ 'artplayer'
+ /* webpackChunkName: "artplayer" */ 'artplayer',
)
loaded.value = true
const { src, type: _t, width: _w, height: _h, ratio: _r, ...opt } = props
diff --git a/plugins/plugin-md-power/src/client/components/FileTreeNode.vue b/plugins/plugin-md-power/src/client/components/FileTreeNode.vue
index d1abb607..f313dba0 100644
--- a/plugins/plugin-md-power/src/client/components/FileTreeNode.vue
+++ b/plugins/plugin-md-power/src/client/components/FileTreeNode.vue
@@ -16,7 +16,7 @@ const activeFileTreeNode = inject[>('active-file-tree-node', ref(''))
const onNodeClick = inject<
(filename: string, type: 'file' | 'folder') => void
- >('on-file-tree-node-click', () => {})
+>('on-file-tree-node-click', () => {})
const active = ref(props.expanded)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 41d41fa3..b41f13be 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,17 +7,17 @@ settings:
catalogs:
dev:
'@commitlint/cli':
- specifier: ^19.8.1
- version: 19.8.1
+ specifier: ^20.1.0
+ version: 20.1.0
'@commitlint/config-conventional':
- specifier: ^19.8.1
- version: 19.8.1
+ specifier: ^20.0.0
+ version: 20.0.0
'@pengzhanbo/eslint-config-vue':
- specifier: ^1.37.0
- version: 1.37.0
+ specifier: ^1.38.0
+ version: 1.38.0
'@pengzhanbo/stylelint-config':
- specifier: ^1.37.0
- version: 1.37.0
+ specifier: ^1.38.0
+ version: 1.38.0
'@simonwep/pickr':
specifier: ^1.9.1
version: 1.9.1
@@ -40,8 +40,11 @@ catalogs:
specifier: ^1.2.5
version: 1.2.5
'@types/node':
- specifier: ^24.5.2
- version: 24.5.2
+ specifier: ^24.7.0
+ version: 24.7.0
+ '@types/picomatch':
+ specifier: ^4.0.2
+ version: 4.0.2
'@types/stylus':
specifier: ^0.48.43
version: 0.48.43
@@ -52,8 +55,8 @@ catalogs:
specifier: ^3.2.4
version: 3.2.4
bumpp:
- specifier: ^10.2.3
- version: 10.2.3
+ specifier: ^10.3.1
+ version: 10.3.1
commitizen:
specifier: ^4.3.1
version: 4.3.1
@@ -70,8 +73,8 @@ catalogs:
specifier: ^3.3.0
version: 3.3.0
eslint:
- specifier: ^9.36.0
- version: 9.36.0
+ specifier: ^9.37.0
+ version: 9.37.0
http-server:
specifier: ^14.1.1
version: 14.1.1
@@ -79,17 +82,17 @@ catalogs:
specifier: ^9.1.7
version: 9.1.7
less:
- specifier: ^4.4.1
- version: 4.4.1
+ specifier: ^4.4.2
+ version: 4.4.2
lint-staged:
- specifier: ^16.1.6
- version: 16.1.6
+ specifier: ^16.2.3
+ version: 16.2.3
markdown-it:
specifier: ^14.1.0
version: 14.1.0
memfs:
- specifier: ^4.42.0
- version: 4.42.0
+ specifier: ^4.49.0
+ version: 4.49.0
mermaid:
specifier: ^11.12.0
version: 11.12.0
@@ -103,8 +106,8 @@ catalogs:
specifier: ^6.0.1
version: 6.0.1
stylelint:
- specifier: ^16.24.0
- version: 16.24.0
+ specifier: ^16.25.0
+ version: 16.25.0
stylus:
specifier: ^0.64.0
version: 0.64.0
@@ -112,11 +115,11 @@ catalogs:
specifier: ^7.0.0
version: 7.0.0
tsdown:
- specifier: ^0.15.3
- version: 0.15.3
+ specifier: ^0.15.6
+ version: 0.15.6
typescript:
- specifier: ^5.9.2
- version: 5.9.2
+ specifier: ^5.9.3
+ version: 5.9.3
vitest:
specifier: ^3.2.4
version: 3.2.4
@@ -124,12 +127,12 @@ catalogs:
specifier: ^4.5.1
version: 4.5.1
wait-on:
- specifier: ^9.0.0
- version: 9.0.0
+ specifier: ^9.0.1
+ version: 9.0.1
peer:
'@iconify/json':
- specifier: ^2.2.386
- version: 2.2.386
+ specifier: ^2.2.392
+ version: 2.2.392
artplayer:
specifier: ^5.3.0
version: 5.3.0
@@ -137,8 +140,8 @@ catalogs:
specifier: ^5.0.3
version: 5.0.3
hls.js:
- specifier: ^1.6.12
- version: 1.6.12
+ specifier: ^1.6.13
+ version: 1.6.13
mathjax-full:
specifier: ^3.2.2
version: 3.2.2
@@ -146,11 +149,11 @@ catalogs:
specifier: 1.7.3
version: 1.7.3
pyodide:
- specifier: ^0.28.2
- version: 0.28.2
+ specifier: ^0.28.3
+ version: 0.28.3
sass:
- specifier: ^1.93.0
- version: 1.93.0
+ specifier: ^1.93.2
+ version: 1.93.2
swiper:
specifier: ^12.0.2
version: 12.0.2
@@ -206,18 +209,12 @@ catalogs:
chokidar:
specifier: 4.0.3
version: 4.0.3
- create-filter:
- specifier: ^1.1.0
- version: 1.1.0
dayjs:
specifier: ^1.11.18
version: 1.11.18
echarts:
specifier: ^6.0.0
version: 6.0.0
- fast-glob:
- specifier: ^3.3.3
- version: 3.3.3
flowchart.ts:
specifier: ^3.0.1
version: 3.0.1
@@ -237,14 +234,14 @@ catalogs:
specifier: ^4.1.0
version: 4.1.0
katex:
- specifier: ^0.16.22
- version: 0.16.22
+ specifier: ^0.16.23
+ version: 0.16.23
local-pkg:
specifier: ^1.1.2
version: 1.1.2
lru-cache:
- specifier: ^11.2.1
- version: 11.2.1
+ specifier: ^11.2.2
+ version: 11.2.2
mark.js:
specifier: ^8.11.1
version: 8.11.1
@@ -267,8 +264,8 @@ catalogs:
specifier: ^1.0.3
version: 1.0.3
nanoid:
- specifier: ^5.1.5
- version: 5.1.5
+ specifier: ^5.1.6
+ version: 5.1.6
os-locale:
specifier: ^6.0.2
version: 6.0.2
@@ -276,26 +273,29 @@ catalogs:
specifier: ^7.0.3
version: 7.0.3
package-manager-detector:
- specifier: ^1.3.0
- version: 1.3.0
+ specifier: ^1.4.0
+ version: 1.4.0
picocolors:
specifier: ^1.1.1
version: 1.1.1
+ picomatch:
+ specifier: ^4.0.3
+ version: 4.0.3
shiki:
specifier: ^3.13.0
version: 3.13.0
tinyglobby:
- specifier: ^0.2.13
+ specifier: ^0.2.15
version: 0.2.15
tm-grammars:
- specifier: ^1.24.12
- version: 1.24.12
+ specifier: ^1.24.16
+ version: 1.24.16
tm-themes:
specifier: ^1.10.9
version: 1.10.9
vue:
- specifier: ^3.5.21
- version: 3.5.21
+ specifier: ^3.5.22
+ version: 3.5.22
vuepress:
'@vuepress/bundler-vite':
specifier: 2.0.0-rc.24
@@ -369,9 +369,9 @@ catalogs:
overrides:
'@bufbuild/protobuf': ^2.9.0
- '@typescript-eslint/utils': ^8.44.0
+ '@typescript-eslint/utils': ^8.46.0
esbuild: ^0.25.10
- sass-embedded: ^1.93.0
+ sass-embedded: ^1.93.2
patchedDependencies:
floating-vue:
@@ -384,16 +384,16 @@ importers:
devDependencies:
'@commitlint/cli':
specifier: catalog:dev
- version: 19.8.1(@types/node@24.5.2)(typescript@5.9.2)
+ version: 20.1.0(@types/node@24.7.0)(typescript@5.9.3)
'@commitlint/config-conventional':
specifier: catalog:dev
- version: 19.8.1
+ version: 20.0.0
'@pengzhanbo/eslint-config-vue':
specifier: catalog:dev
- version: 1.37.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))
+ version: 1.38.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))
'@pengzhanbo/stylelint-config':
specifier: catalog:dev
- version: 1.37.0(stylelint@16.24.0(typescript@5.9.2))
+ version: 1.38.0(stylelint@16.25.0(typescript@5.9.3))
'@types/js-yaml':
specifier: catalog:dev
version: 4.0.9
@@ -408,7 +408,10 @@ importers:
version: 1.2.5
'@types/node':
specifier: catalog:dev
- version: 24.5.2
+ version: 24.7.0
+ '@types/picomatch':
+ specifier: catalog:dev
+ version: 4.0.2
'@types/stylus':
specifier: catalog:dev
version: 0.48.43
@@ -417,13 +420,13 @@ importers:
version: 1.18.8
'@vitest/coverage-istanbul':
specifier: catalog:dev
- version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))
+ version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))
bumpp:
specifier: catalog:dev
- version: 10.2.3(magicast@0.3.5)
+ version: 10.3.1(magicast@0.3.5)
commitizen:
specifier: catalog:dev
- version: 4.3.1(@types/node@24.5.2)(typescript@5.9.2)
+ version: 4.3.1(@types/node@24.7.0)(typescript@5.9.3)
conventional-changelog-cli:
specifier: catalog:dev
version: 5.0.0(conventional-commits-filter@5.0.0)
@@ -435,25 +438,25 @@ importers:
version: 7.0.3
cz-conventional-changelog:
specifier: catalog:dev
- version: 3.3.0(@types/node@24.5.2)(typescript@5.9.2)
+ version: 3.3.0(@types/node@24.7.0)(typescript@5.9.3)
eslint:
specifier: catalog:dev
- version: 9.36.0(jiti@2.5.1)
+ version: 9.37.0(jiti@2.5.1)
husky:
specifier: catalog:dev
version: 9.1.7
less:
specifier: catalog:dev
- version: 4.4.1
+ version: 4.4.2
lint-staged:
specifier: catalog:dev
- version: 16.1.6
+ version: 16.2.3
markdown-it:
specifier: catalog:dev
version: 14.1.0
memfs:
specifier: catalog:dev
- version: 4.42.0
+ version: 4.49.0
minimist:
specifier: catalog:dev
version: 1.2.8
@@ -464,11 +467,11 @@ importers:
specifier: catalog:dev
version: 6.0.1
sass-embedded:
- specifier: ^1.93.0
- version: 1.93.0
+ specifier: ^1.93.2
+ version: 1.93.2
stylelint:
specifier: catalog:dev
- version: 16.24.0(typescript@5.9.2)
+ version: 16.25.0(typescript@5.9.3)
stylus:
specifier: catalog:dev
version: 0.64.0
@@ -477,16 +480,16 @@ importers:
version: 7.0.0
tsdown:
specifier: catalog:dev
- version: 0.15.3(typescript@5.9.2)
+ version: 0.15.6(typescript@5.9.3)
typescript:
specifier: catalog:dev
- version: 5.9.2
+ version: 5.9.3
vitest:
specifier: catalog:dev
- version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
wait-on:
specifier: catalog:dev
- version: 9.0.0
+ version: 9.0.1
cli:
dependencies:
@@ -516,19 +519,19 @@ importers:
dependencies:
'@iconify/json':
specifier: catalog:peer
- version: 2.2.386
+ version: 2.2.392
'@simonwep/pickr':
specifier: catalog:dev
version: 1.9.1
'@vuepress/bundler-vite':
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1)
+ version: 2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1)
'@vuepress/plugin-llms':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/shiki-twoslash':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
chart.js:
specifier: catalog:prod
version: 4.5.0
@@ -558,10 +561,10 @@ importers:
version: 12.0.2
vue:
specifier: catalog:prod
- version: 3.5.21(typescript@5.9.2)
+ version: 3.5.22(typescript@5.9.3)
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
vuepress-theme-plume:
specifier: workspace:*
version: link:../theme
@@ -574,19 +577,19 @@ importers:
dependencies:
'@iconify/json':
specifier: catalog:peer
- version: 2.2.386
+ version: 2.2.392
'@vuepress/bundler-vite':
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1)
+ version: 2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1)
http-server:
specifier: catalog:dev
version: 14.1.1
vue:
specifier: catalog:prod
- version: 3.5.21(typescript@5.9.2)
+ version: 3.5.22(typescript@5.9.3)
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
vuepress-theme-plume:
specifier: workspace:*
version: link:../../theme
@@ -595,7 +598,7 @@ importers:
dependencies:
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
plugins/plugin-md-power:
dependencies:
@@ -625,10 +628,10 @@ importers:
version: 2.1.0
'@vuepress/helper':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vueuse/core':
specifier: catalog:prod
- version: 13.9.0(vue@3.5.21(typescript@5.9.2))
+ version: 13.9.0(vue@3.5.22(typescript@5.9.3))
chokidar:
specifier: catalog:prod
version: 4.0.3
@@ -640,13 +643,13 @@ importers:
version: 2.0.2
less:
specifier: catalog:dev
- version: 4.4.1
+ version: 4.4.2
local-pkg:
specifier: catalog:prod
version: 1.1.2
lru-cache:
specifier: catalog:prod
- version: 11.2.1
+ version: 11.2.2
markdown-it:
specifier: catalog:dev
version: 14.1.0
@@ -655,16 +658,16 @@ importers:
version: 4.0.0
nanoid:
specifier: catalog:prod
- version: 5.1.5
+ version: 5.1.6
pyodide:
specifier: catalog:peer
- version: 0.28.2
+ version: 0.28.3
sass:
specifier: catalog:peer
- version: 1.93.0
+ version: 1.93.2
sass-embedded:
- specifier: ^1.93.0
- version: 1.93.0
+ specifier: ^1.93.2
+ version: 1.93.2
shiki:
specifier: catalog:prod
version: 3.13.0
@@ -676,16 +679,16 @@ importers:
version: 0.2.15
tm-grammars:
specifier: catalog:prod
- version: 1.24.12
+ version: 1.24.16
tm-themes:
specifier: catalog:prod
version: 1.10.9
vue:
specifier: catalog:prod
- version: 3.5.21(typescript@5.9.2)
+ version: 3.5.22(typescript@5.9.3)
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
devDependencies:
'@types/markdown-it':
specifier: catalog:dev
@@ -698,7 +701,7 @@ importers:
version: 5.0.3
hls.js:
specifier: catalog:peer
- version: 1.6.12
+ version: 1.6.13
mpegts.js:
specifier: catalog:peer
version: 1.7.3
@@ -707,13 +710,13 @@ importers:
dependencies:
'@vuepress/helper':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vueuse/core':
specifier: catalog:prod
- version: 13.9.0(vue@3.5.21(typescript@5.9.2))
+ version: 13.9.0(vue@3.5.22(typescript@5.9.3))
'@vueuse/integrations':
specifier: catalog:prod
- version: 13.9.0(axios@1.12.2)(change-case@5.4.4)(focus-trap@7.6.5)(vue@3.5.21(typescript@5.9.2))
+ version: 13.9.0(axios@1.12.2)(change-case@5.4.4)(focus-trap@7.6.5)(vue@3.5.22(typescript@5.9.3))
chokidar:
specifier: catalog:prod
version: 4.0.3
@@ -731,10 +734,10 @@ importers:
version: 7.0.3
vue:
specifier: catalog:prod
- version: 3.5.21(typescript@5.9.2)
+ version: 3.5.22(typescript@5.9.3)
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
theme:
dependencies:
@@ -743,7 +746,7 @@ importers:
version: 3.0.2
'@iconify/vue':
specifier: catalog:prod
- version: 5.0.0(vue@3.5.21(typescript@5.9.2))
+ version: 5.0.0(vue@3.5.22(typescript@5.9.3))
'@pengzhanbo/utils':
specifier: catalog:prod
version: 2.1.0
@@ -755,85 +758,79 @@ importers:
version: link:../plugins/plugin-search
'@vuepress/helper':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-cache':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-comment':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-copy-code':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-docsearch':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(@algolia/client-search@5.35.0)(search-insights@2.17.3)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(@algolia/client-search@5.35.0)(search-insights@2.17.3)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-git':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-markdown-chart':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(chart.js@4.5.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.12.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(chart.js@4.5.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.12.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-markdown-hint':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-markdown-image':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-markdown-include':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-markdown-math':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(katex@0.16.22)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(katex@0.16.23)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-nprogress':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-photo-swipe':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-reading-time':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-replace-assets':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-seo':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-shiki':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))))(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2)))(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))))(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-sitemap':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/plugin-watermark':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vuepress/shiki-twoslash':
specifier: catalog:vuepress
- version: 2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ version: 2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
'@vueuse/core':
specifier: catalog:prod
- version: 13.9.0(vue@3.5.21(typescript@5.9.2))
+ version: 13.9.0(vue@3.5.22(typescript@5.9.3))
bcrypt-ts:
specifier: catalog:prod
version: 7.1.0
chokidar:
specifier: catalog:prod
version: 4.0.3
- create-filter:
- specifier: catalog:prod
- version: 1.1.0
dayjs:
specifier: catalog:prod
version: 1.11.18
esbuild:
specifier: ^0.25.10
version: 0.25.10
- fast-glob:
- specifier: catalog:prod
- version: 3.3.3
gray-matter:
specifier: catalog:prod
version: 4.0.3
@@ -842,7 +839,7 @@ importers:
version: 4.1.0
katex:
specifier: catalog:prod
- version: 0.16.22
+ version: 0.16.23
local-pkg:
specifier: catalog:prod
version: 1.1.2
@@ -851,29 +848,35 @@ importers:
version: 3.2.2
nanoid:
specifier: catalog:prod
- version: 5.1.5
+ version: 5.1.6
+ p-map:
+ specifier: catalog:prod
+ version: 7.0.3
package-manager-detector:
specifier: catalog:prod
- version: 1.3.0
+ version: 1.4.0
+ picomatch:
+ specifier: catalog:prod
+ version: 4.0.3
vue:
specifier: catalog:prod
- version: 3.5.21(typescript@5.9.2)
+ version: 3.5.22(typescript@5.9.3)
vuepress:
specifier: catalog:vuepress
- version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ version: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
vuepress-plugin-md-power:
specifier: workspace:*
version: link:../plugins/plugin-md-power
devDependencies:
'@iconify/json':
specifier: catalog:peer
- version: 2.2.386
+ version: 2.2.392
swiper:
specifier: catalog:peer
version: 12.0.2
vue-router:
specifier: catalog:dev
- version: 4.5.1(vue@3.5.21(typescript@5.9.2))
+ version: 4.5.1(vue@3.5.22(typescript@5.9.3))
packages:
@@ -1025,11 +1028,6 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.28.3':
- resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/parser@7.28.4':
resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
engines: {node: '>=6.0.0'}
@@ -1082,75 +1080,95 @@ packages:
'@clack/prompts@0.11.0':
resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
- '@commitlint/cli@19.8.1':
- resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==}
+ '@commitlint/cli@20.1.0':
+ resolution: {integrity: sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==}
engines: {node: '>=v18'}
hasBin: true
- '@commitlint/config-conventional@19.8.1':
- resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==}
+ '@commitlint/config-conventional@20.0.0':
+ resolution: {integrity: sha512-q7JroPIkDBtyOkVe9Bca0p7kAUYxZMxkrBArCfuD3yN4KjRAenP9PmYwnn7rsw8Q+hHq1QB2BRmBh0/Z19ZoJw==}
engines: {node: '>=v18'}
'@commitlint/config-validator@19.8.1':
resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==}
engines: {node: '>=v18'}
- '@commitlint/ensure@19.8.1':
- resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==}
+ '@commitlint/config-validator@20.0.0':
+ resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/ensure@20.0.0':
+ resolution: {integrity: sha512-WBV47Fffvabe68n+13HJNFBqiMH5U1Ryls4W3ieGwPC0C7kJqp3OVQQzG2GXqOALmzrgAB+7GXmyy8N9ct8/Fg==}
engines: {node: '>=v18'}
'@commitlint/execute-rule@19.8.1':
resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==}
engines: {node: '>=v18'}
- '@commitlint/format@19.8.1':
- resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==}
+ '@commitlint/execute-rule@20.0.0':
+ resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==}
engines: {node: '>=v18'}
- '@commitlint/is-ignored@19.8.1':
- resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==}
+ '@commitlint/format@20.0.0':
+ resolution: {integrity: sha512-zrZQXUcSDmQ4eGGrd+gFESiX0Rw+WFJk7nW4VFOmxub4mAATNKBQ4vNw5FgMCVehLUKG2OT2LjOqD0Hk8HvcRg==}
engines: {node: '>=v18'}
- '@commitlint/lint@19.8.1':
- resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==}
+ '@commitlint/is-ignored@20.0.0':
+ resolution: {integrity: sha512-ayPLicsqqGAphYIQwh9LdAYOVAQ9Oe5QCgTNTj+BfxZb9b/JW222V5taPoIBzYnAP0z9EfUtljgBk+0BN4T4Cw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/lint@20.0.0':
+ resolution: {integrity: sha512-kWrX8SfWk4+4nCexfLaQT3f3EcNjJwJBsSZ5rMBw6JCd6OzXufFHgel2Curos4LKIxwec9WSvs2YUD87rXlxNQ==}
engines: {node: '>=v18'}
'@commitlint/load@19.8.1':
resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==}
engines: {node: '>=v18'}
- '@commitlint/message@19.8.1':
- resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==}
+ '@commitlint/load@20.1.0':
+ resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==}
engines: {node: '>=v18'}
- '@commitlint/parse@19.8.1':
- resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==}
+ '@commitlint/message@20.0.0':
+ resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==}
engines: {node: '>=v18'}
- '@commitlint/read@19.8.1':
- resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==}
+ '@commitlint/parse@20.0.0':
+ resolution: {integrity: sha512-j/PHCDX2bGM5xGcWObOvpOc54cXjn9g6xScXzAeOLwTsScaL4Y+qd0pFC6HBwTtrH92NvJQc+2Lx9HFkVi48cg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/read@20.0.0':
+ resolution: {integrity: sha512-Ti7Y7aEgxsM1nkwA4ZIJczkTFRX/+USMjNrL9NXwWQHqNqrBX2iMi+zfuzZXqfZ327WXBjdkRaytJ+z5vNqTOA==}
engines: {node: '>=v18'}
'@commitlint/resolve-extends@19.8.1':
resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==}
engines: {node: '>=v18'}
- '@commitlint/rules@19.8.1':
- resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==}
+ '@commitlint/resolve-extends@20.1.0':
+ resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==}
engines: {node: '>=v18'}
- '@commitlint/to-lines@19.8.1':
- resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==}
+ '@commitlint/rules@20.0.0':
+ resolution: {integrity: sha512-gvg2k10I/RfvHn5I5sxvVZKM1fl72Sqrv2YY/BnM7lMHcYqO0E2jnRWoYguvBfEcZ39t+rbATlciggVe77E4zA==}
engines: {node: '>=v18'}
- '@commitlint/top-level@19.8.1':
- resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==}
+ '@commitlint/to-lines@20.0.0':
+ resolution: {integrity: sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/top-level@20.0.0':
+ resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==}
engines: {node: '>=v18'}
'@commitlint/types@19.8.1':
resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==}
engines: {node: '>=v18'}
+ '@commitlint/types@20.0.0':
+ resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==}
+ engines: {node: '>=v18'}
+
'@conventional-changelog/git-client@1.0.1':
resolution: {integrity: sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==}
engines: {node: '>=18'}
@@ -1209,8 +1227,8 @@ packages:
search-insights:
optional: true
- '@dual-bundle/import-meta-resolve@4.1.0':
- resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==}
+ '@dual-bundle/import-meta-resolve@4.2.1':
+ resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==}
'@emnapi/core@1.5.0':
resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
@@ -1225,8 +1243,8 @@ packages:
resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
engines: {node: '>=18'}
- '@es-joy/jsdoccomment@0.53.0':
- resolution: {integrity: sha512-Wyed8Wfn3vMNVwrZrgLMxmqwmlcCE1/RfUAOHFzMJb3QLH03mi9Yv1iOCZjif0yx5EZUeJ+17VD1MHPka9IQjQ==}
+ '@es-joy/jsdoccomment@0.68.1':
+ resolution: {integrity: sha512-wJJXnfG2Pq7ZC8IeOupkkAVtEH6OYy1uVxRTeshXDQfSNsZneS7FUQlNf710osZ5Yz/b5ev9xChvybTT7CM63g==}
engines: {node: '>=20.11.0'}
'@esbuild/aix-ppc64@0.25.10':
@@ -1391,12 +1409,6 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
- '@eslint-community/eslint-utils@4.7.0':
- resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
'@eslint-community/eslint-utils@4.9.0':
resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1420,24 +1432,28 @@ packages:
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/config-helpers@0.3.1':
- resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
+ '@eslint/config-helpers@0.4.0':
+ resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/core@0.15.2':
resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/core@0.16.0':
+ resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/eslintrc@3.3.1':
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.36.0':
- resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==}
+ '@eslint/js@9.37.0':
+ resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/markdown@7.2.0':
- resolution: {integrity: sha512-cmDloByulvKzofM0tIkSGWwxMcrKOLsXZC+EM0FLkRIrxKzW+2RkZAt9TAh37EtQRmx1M4vjBEmlC6R0wiGkog==}
+ '@eslint/markdown@7.3.0':
+ resolution: {integrity: sha512-v9Cpl9IvzGmWMUwDAwSbf1b2GMwjQJiD0TSHegFrIu23mjqGQOvaCwnetzbG3/fjk8x7baKaIbSTBlpCktZRRg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
@@ -1448,6 +1464,10 @@ packages:
resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/plugin-kit@0.4.0':
+ resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@floating-ui/core@1.7.3':
resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
@@ -1504,8 +1524,8 @@ packages:
resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==}
engines: {node: '>=10.13.0'}
- '@iconify/json@2.2.386':
- resolution: {integrity: sha512-qvSvaRBu4B1PXKLoXc2yme+eRy3NDTQh/CO3k1vmXjwDKFTFUEVmn8nTD4elPMJZEQa3OOVjh4NfYopnxiAabA==}
+ '@iconify/json@2.2.392':
+ resolution: {integrity: sha512-WkkQIDpmgetgvIn1jso6XKY3S5Pf9L6QD1J2RNLeiF+jzdouyayoRm2LLxe4dmnp9i3Cbf8w7oRuaVlhwK8Xtg==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
@@ -1807,8 +1827,8 @@ packages:
'@mermaid-js/parser@0.6.2':
resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==}
- '@napi-rs/wasm-runtime@1.0.5':
- resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==}
+ '@napi-rs/wasm-runtime@1.0.6':
+ resolution: {integrity: sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g==}
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
@@ -1822,8 +1842,8 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@oxc-project/types@0.89.0':
- resolution: {integrity: sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==}
+ '@oxc-project/types@0.94.0':
+ resolution: {integrity: sha512-+UgQT/4o59cZfH6Cp7G0hwmqEQ0wE+AdIwhikdwnhWI9Dp8CgSY081+Q3O67/wq3VJu8mgUEB93J9EHHn70fOw==}
'@parcel/watcher-android-arm64@2.5.1':
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
@@ -1907,13 +1927,13 @@ packages:
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
engines: {node: '>= 10.0.0'}
- '@pengzhanbo/eslint-config-vue@1.37.0':
- resolution: {integrity: sha512-6AAGag4OgUu7blwLFl6opvzCBJUa5AJDA9rQuKWPJKwjY6/S/TAfPnI2Y3J2+ianTpD9W4FmDPBgi6mpwIUEVw==}
+ '@pengzhanbo/eslint-config-vue@1.38.0':
+ resolution: {integrity: sha512-jNGkW/jCKkvdBbKiGuOS8p/fxGKXRxd5jJnaWq+Fn/vmNGiik7Ouv83tG7G7rwWxAQfWu5RQ+GuGoBzqeLquLw==}
peerDependencies:
'@prettier/plugin-xml': ^3.4.2
- '@unocss/eslint-plugin': ^66.5.0
- eslint: ^9.34.0
- eslint-plugin-format: ^1.0.1
+ '@unocss/eslint-plugin': ^66.5.2
+ eslint: ^9.37.0
+ eslint-plugin-format: ^1.0.2
eslint-plugin-tailwindcss: ^3.18.2
peerDependenciesMeta:
'@prettier/plugin-xml':
@@ -1925,28 +1945,28 @@ packages:
eslint-plugin-tailwindcss:
optional: true
- '@pengzhanbo/eslint-config@1.37.0':
- resolution: {integrity: sha512-L2X2KHO/IJ+oBwucJ8i62mRJNA4bf9EK409XZd2vIa3ZV5Imk92et9UjBct0rnHh+dnIbJk/88c1E5901P8hBA==}
+ '@pengzhanbo/eslint-config@1.38.0':
+ resolution: {integrity: sha512-uUWw1LG3CzZZuFqj/ThnBRfMrKpIfmSCVYxyv+kHsmp65GGT+XM/erHbmi1vjQsDfeBg1rlPWLVdzRJeJqIc8g==}
peerDependencies:
- '@eslint-react/eslint-plugin': ^1.52.9
- '@next/eslint-plugin-next': ^15.5.2
+ '@eslint-react/eslint-plugin': ^2.0.6
+ '@next/eslint-plugin-next': ^15.5.4
'@prettier/plugin-xml': ^3.4.2
- '@unocss/eslint-plugin': ^66.5.0
+ '@unocss/eslint-plugin': ^66.5.2
astro-eslint-parser: ^1.2.2
- eslint: ^9.34.0
+ eslint: ^9.37.0
eslint-plugin-astro: ^1.3.1
- eslint-plugin-format: ^1.0.1
- eslint-plugin-react-hooks: ^5.2.0
- eslint-plugin-react-refresh: ^0.4.20
+ eslint-plugin-format: ^1.0.2
+ eslint-plugin-react-hooks: ^6.1.1
+ eslint-plugin-react-refresh: ^0.4.23
eslint-plugin-solid: ^0.14.5
- eslint-plugin-svelte: ^3.11.0
+ eslint-plugin-svelte: ^3.12.4
eslint-plugin-tailwindcss: ^3.18.2
- eslint-plugin-vue: ^10.4.0
+ eslint-plugin-vue: ^10.5.0
eslint-plugin-vuejs-accessibility: ^2.4.1
eslint-processor-vue-blocks: ^2.0.0
prettier-plugin-astro: ^0.14.1
prettier-plugin-slidev: ^1.0.5
- svelte-eslint-parser: ^1.3.1
+ svelte-eslint-parser: ^1.3.3
vue-eslint-parser: ^10.2.0
peerDependenciesMeta:
'@eslint-react/eslint-plugin':
@@ -1986,10 +2006,10 @@ packages:
vue-eslint-parser:
optional: true
- '@pengzhanbo/stylelint-config@1.37.0':
- resolution: {integrity: sha512-9qVWA+33/zsZ4c21chh+vnBIOrOlFHzSOVygA8611OxIlJSEPx2Hsz/nzs7gzMg0t6w1MmqUWE9DBjcqxSID1g==}
+ '@pengzhanbo/stylelint-config@1.38.0':
+ resolution: {integrity: sha512-8crl1EEoNvJ6daw8exv9B2NAQNsFLIV8/qODICgr6vx4HAbV50T30tLkgfAVFdYgeMfnFexFoj1vvIUbnvNzyQ==}
peerDependencies:
- stylelint: ^16.23.1
+ stylelint: ^16.25.0
'@pengzhanbo/utils@2.1.0':
resolution: {integrity: sha512-mdcNoYZ6S9EhRqAIpjnD2dcFxaP7E9JdMrP2z5uXuEesddNcmQ4GvEs/wcyxKmFXqeFdL88fJu7l8a6hNN4zPQ==}
@@ -2005,85 +2025,85 @@ packages:
'@quansync/fs@0.1.5':
resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==}
- '@rolldown/binding-android-arm64@1.0.0-beta.38':
- resolution: {integrity: sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==}
+ '@rolldown/binding-android-arm64@1.0.0-beta.42':
+ resolution: {integrity: sha512-W5ZKF3TP3bOWuBfotAGp+UGjxOkGV7jRmIRbBA7NFjggx7Oi6vOmGDqpHEIX7kDCiry1cnIsWQaxNvWbMdkvzQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.0.0-beta.38':
- resolution: {integrity: sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==}
+ '@rolldown/binding-darwin-arm64@1.0.0-beta.42':
+ resolution: {integrity: sha512-abw/wtgJA8OCgaTlL+xJxnN/Z01BwV1rfzIp5Hh9x+IIO6xOBfPsQ0nzi0+rWx3TyZ9FZXyC7bbC+5NpQ9EaXQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.0.0-beta.38':
- resolution: {integrity: sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==}
+ '@rolldown/binding-darwin-x64@1.0.0-beta.42':
+ resolution: {integrity: sha512-Y/UrZIRVr8CvXVEB88t6PeC46r1K9/QdPEo2ASE/b/KBEyXIx+QbM6kv9QfQVWU2Atly2+SVsQzxQsIvuk3lZQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.0.0-beta.38':
- resolution: {integrity: sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==}
+ '@rolldown/binding-freebsd-x64@1.0.0-beta.42':
+ resolution: {integrity: sha512-zRM0oOk7BZiy6DoWBvdV4hyEg+j6+WcBZIMHVirMEZRu8hd18kZdJkg+bjVMfCEhwpWeFUfBfZ1qcaZ5UdYzlQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38':
- resolution: {integrity: sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==}
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.42':
+ resolution: {integrity: sha512-6RjFaC52QNwo7ilU8C5H7swbGlgfTkG9pudXwzr3VYyT18s0C9gLg3mvc7OMPIGqNxnQ0M5lU8j6aQCk2DTRVg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38':
- resolution: {integrity: sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==}
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.42':
+ resolution: {integrity: sha512-LMYHM5Sf6ROq+VUwHMDVX2IAuEsWTv4SnlFEedBnMGpvRuQ14lCmD4m5Q8sjyAQCgyha9oghdGoK8AEg1sXZKg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38':
- resolution: {integrity: sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==}
+ '@rolldown/binding-linux-arm64-musl@1.0.0-beta.42':
+ resolution: {integrity: sha512-/bNTYb9aKNhzdbPn3O4MK2aLv55AlrkUKPE4KNfBYjkoZUfDr4jWp7gsSlvTc5A/99V1RCm9axvt616ZzeXGyA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38':
- resolution: {integrity: sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==}
+ '@rolldown/binding-linux-x64-gnu@1.0.0-beta.42':
+ resolution: {integrity: sha512-n/SLa4h342oyeGykZdch7Y3GNCNliRPL4k5wkeZ/5eQZs+c6/ZG1SHCJQoy7bZcmxiMyaXs9HoFmv1PEKrZgWg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rolldown/binding-linux-x64-musl@1.0.0-beta.38':
- resolution: {integrity: sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==}
+ '@rolldown/binding-linux-x64-musl@1.0.0-beta.42':
+ resolution: {integrity: sha512-4PSd46sFzqpLHSGdaSViAb1mk55sCUMpJg+X8ittXaVocQsV3QLG/uydSH8RyL0ngHX5fy3D70LcCzlB15AgHw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rolldown/binding-openharmony-arm64@1.0.0-beta.38':
- resolution: {integrity: sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==}
+ '@rolldown/binding-openharmony-arm64@1.0.0-beta.42':
+ resolution: {integrity: sha512-BmWoeJJyeZXmZBcfoxG6J9+rl2G7eO47qdTkAzEegj4n3aC6CBIHOuDcbE8BvhZaEjQR0nh0nJrtEDlt65Q7Sw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-wasm32-wasi@1.0.0-beta.38':
- resolution: {integrity: sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==}
+ '@rolldown/binding-wasm32-wasi@1.0.0-beta.42':
+ resolution: {integrity: sha512-2Ft32F7uiDTrGZUKws6CLNTlvTWHC33l4vpXrzUucf9rYtUThAdPCOt89Pmn13tNX6AulxjGEP2R0nZjTSW3eQ==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
- '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38':
- resolution: {integrity: sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==}
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.42':
+ resolution: {integrity: sha512-hC1kShXW/z221eG+WzQMN06KepvPbMBknF0iGR3VMYJLOe9gwnSTfGxFT5hf8XrPv7CEZqTWRd0GQpkSHRbGsw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38':
- resolution: {integrity: sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==}
+ '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.42':
+ resolution: {integrity: sha512-AICBYromawouGjj+GS33369E8Vwhy6UwhQEhQ5evfS8jPCsyVvoICJatbDGDGH01dwtVGLD5eDFzPicUOVpe4g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38':
- resolution: {integrity: sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==}
+ '@rolldown/binding-win32-x64-msvc@1.0.0-beta.42':
+ resolution: {integrity: sha512-XpZ0M+tjoEiSc9c+uZR7FCnOI0uxDRNs1elGOMjeB0pUP1QmvVbZGYNsyLbLoP4u7e3VQN8rie1OQ8/mB6rcJg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -2091,8 +2111,8 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.29':
resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==}
- '@rolldown/pluginutils@1.0.0-beta.38':
- resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==}
+ '@rolldown/pluginutils@1.0.0-beta.42':
+ resolution: {integrity: sha512-N7pQzk9CyE7q0bBN/q0J8s6Db279r5kUZc6d7/wWRe9/zXqC52HQovVyu6iXPIDY4BEzzgbVLhVFXrOuGJ22ZQ==}
'@rollup/rollup-android-arm-eabi@4.46.2':
resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==}
@@ -2287,8 +2307,8 @@ packages:
stylelint:
optional: true
- '@stylistic/eslint-plugin@5.2.3':
- resolution: {integrity: sha512-oY7GVkJGVMI5benlBDCaRrSC1qPasafyv5dOBLLv5MTilMGnErKhO6ziEfodDDIZbo5QxPUNW360VudJOFODMw==}
+ '@stylistic/eslint-plugin@5.4.0':
+ resolution: {integrity: sha512-UG8hdElzuBDzIbjG1QDwnYH0MQ73YLXDFHgZzB4Zh/YJfnw8XNsloVtytqzx0I2Qky9THSdpTmi8Vjn/pf/Lew==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: '>=9.0.0'
@@ -2485,15 +2505,18 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- '@types/node@24.3.1':
- resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==}
-
'@types/node@24.5.2':
resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
+ '@types/node@24.7.0':
+ resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==}
+
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+ '@types/picomatch@4.0.2':
+ resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==}
+
'@types/qs@6.14.0':
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
@@ -2530,97 +2553,105 @@ packages:
'@types/webpack-env@1.18.8':
resolution: {integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==}
- '@typescript-eslint/eslint-plugin@8.42.0':
- resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==}
+ '@typescript-eslint/eslint-plugin@8.45.0':
+ resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.42.0
+ '@typescript-eslint/parser': ^8.45.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.42.0':
- resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==}
+ '@typescript-eslint/parser@8.45.0':
+ resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.42.0':
- resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==}
+ '@typescript-eslint/project-service@8.45.0':
+ resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.44.0':
- resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==}
+ '@typescript-eslint/project-service@8.46.0':
+ resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.42.0':
- resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==}
+ '@typescript-eslint/scope-manager@8.44.1':
+ resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.44.0':
- resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==}
+ '@typescript-eslint/scope-manager@8.45.0':
+ resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.42.0':
- resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==}
+ '@typescript-eslint/scope-manager@8.46.0':
+ resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.45.0':
+ resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/tsconfig-utils@8.44.0':
- resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==}
+ '@typescript-eslint/tsconfig-utils@8.46.0':
+ resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.42.0':
- resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==}
+ '@typescript-eslint/type-utils@8.45.0':
+ resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/types@8.40.0':
- resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==}
+ '@typescript-eslint/types@8.44.1':
+ resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.42.0':
- resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==}
+ '@typescript-eslint/types@8.45.0':
+ resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.44.0':
- resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==}
+ '@typescript-eslint/types@8.46.0':
+ resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.42.0':
- resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==}
+ '@typescript-eslint/typescript-estree@8.45.0':
+ resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/typescript-estree@8.44.0':
- resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==}
+ '@typescript-eslint/typescript-estree@8.46.0':
+ resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.44.0':
- resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==}
+ '@typescript-eslint/utils@8.46.0':
+ resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.42.0':
- resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==}
+ '@typescript-eslint/visitor-keys@8.44.1':
+ resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.44.0':
- resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==}
+ '@typescript-eslint/visitor-keys@8.45.0':
+ resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/visitor-keys@8.46.0':
+ resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript/vfs@1.6.1':
@@ -2643,8 +2674,8 @@ packages:
peerDependencies:
vitest: 3.2.4
- '@vitest/eslint-plugin@1.3.8':
- resolution: {integrity: sha512-+M0eRDo/UiIF4xZZbZBBAR2Resx0ihdLRNpYevkrDJ6F3xHuEXSAAJGt6Ahabd0eJC4mQKvLA1JY1qBM058Cag==}
+ '@vitest/eslint-plugin@1.3.15':
+ resolution: {integrity: sha512-U9NGRhN4QrIsxRl4LITQ/deLD5Hv6MC8KrLx+exFX1ri41naX2EaBJAJdbtAyjGnQnBGaXpC6kNFmQac7Ogm2w==}
peerDependencies:
eslint: '>= 8.57.0'
typescript: '>= 5.0.0'
@@ -2696,20 +2727,20 @@ packages:
'@vue/compiler-core@3.5.18':
resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==}
- '@vue/compiler-core@3.5.21':
- resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==}
+ '@vue/compiler-core@3.5.22':
+ resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==}
'@vue/compiler-dom@3.5.18':
resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==}
- '@vue/compiler-dom@3.5.21':
- resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==}
+ '@vue/compiler-dom@3.5.22':
+ resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==}
- '@vue/compiler-sfc@3.5.21':
- resolution: {integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==}
+ '@vue/compiler-sfc@3.5.22':
+ resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==}
- '@vue/compiler-ssr@3.5.21':
- resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==}
+ '@vue/compiler-ssr@3.5.22':
+ resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==}
'@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
@@ -2734,25 +2765,25 @@ packages:
typescript:
optional: true
- '@vue/reactivity@3.5.21':
- resolution: {integrity: sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==}
+ '@vue/reactivity@3.5.22':
+ resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==}
- '@vue/runtime-core@3.5.21':
- resolution: {integrity: sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==}
+ '@vue/runtime-core@3.5.22':
+ resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==}
- '@vue/runtime-dom@3.5.21':
- resolution: {integrity: sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==}
+ '@vue/runtime-dom@3.5.22':
+ resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==}
- '@vue/server-renderer@3.5.21':
- resolution: {integrity: sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==}
+ '@vue/server-renderer@3.5.22':
+ resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==}
peerDependencies:
- vue: 3.5.21
+ vue: 3.5.22
'@vue/shared@3.5.18':
resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==}
- '@vue/shared@3.5.21':
- resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==}
+ '@vue/shared@3.5.22':
+ resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==}
'@vuepress/bundler-vite@2.0.0-rc.24':
resolution: {integrity: sha512-prgT3f6xOBC43rhfvzlfXY0wJKsI+oV5RC4s0YyVPZ0s5VQKI3RRD1aY+euiVFPks3Mjx+DxEtKBOLsJ7I6crA==}
@@ -3053,8 +3084,8 @@ packages:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
- ansis@4.1.0:
- resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==}
+ ansis@4.2.0:
+ resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
engines: {node: '>=14'}
anymatch@3.1.3:
@@ -3229,8 +3260,8 @@ packages:
resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
engines: {node: '>=18.20'}
- bumpp@10.2.3:
- resolution: {integrity: sha512-nsFBZACxuBVu6yzDSaZZaWpX5hTQ+++9WtYkmO+0Bd3cpSq0Mzvqw5V83n+fOyRj3dYuZRFCQf5Z9NNfZj+Rnw==}
+ bumpp@10.3.1:
+ resolution: {integrity: sha512-cOKPRFCWvHcYPJQAHN6V7Jp/wAfnyqQRXQ+2fgWIL6Gao20rpu7xQ1cGGo1APOfmbQmmHngEPg9Fy7nJ3giRkQ==}
engines: {node: '>=18'}
hasBin: true
@@ -3243,8 +3274,8 @@ packages:
'@75lb/nature':
optional: true
- c12@3.2.0:
- resolution: {integrity: sha512-ixkEtbYafL56E6HiFuonMm1ZjoKtIo7TH68/uiEq4DAwv9NcUX2nJ95F8TrbMeNjqIkZpruo3ojXQJ+MGG5gcQ==}
+ c12@3.3.0:
+ resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==}
peerDependencies:
magicast: ^0.3.5
peerDependenciesMeta:
@@ -3377,9 +3408,9 @@ packages:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
- cli-truncate@4.0.0:
- resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
- engines: {node: '>=18'}
+ cli-truncate@5.1.0:
+ resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==}
+ engines: {node: '>=20'}
cli-width@3.0.0:
resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
@@ -3429,8 +3460,8 @@ packages:
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
- commander@14.0.0:
- resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==}
+ commander@14.0.1:
+ resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==}
engines: {node: '>=20'}
commander@7.2.0:
@@ -3601,9 +3632,6 @@ packages:
engines: {node: ^20.0.0 || >=22.0.0, npm: '>=10'}
hasBin: true
- create-filter@1.1.0:
- resolution: {integrity: sha512-mSHedS8IpVElLHvTFY9Bg+P0Fs5EyOypkoAWQRhSDyl1c2kzzFJVPv9o7ueOaYxmx/Cn4Cl3HWMLny6pE1b/aA==}
-
cross-env@7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
@@ -3903,6 +3931,10 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ diff-sequences@27.5.1:
+ resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
diff@8.0.2:
resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==}
engines: {node: '>=0.3.1'}
@@ -3931,8 +3963,8 @@ packages:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
engines: {node: '>=8'}
- dotenv@17.2.1:
- resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==}
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
engines: {node: '>=12'}
dts-resolver@2.1.2:
@@ -4080,8 +4112,8 @@ packages:
peerDependencies:
eslint: ^9.5.0
- eslint-flat-config-utils@2.1.1:
- resolution: {integrity: sha512-K8eaPkBemHkfbYsZH7z4lZ/tt6gNSsVh535Wh9W9gQBS2WjvfUbbVr2NZR3L1yiRCLuOEimYfPxCxODczD4Opg==}
+ eslint-flat-config-utils@2.1.4:
+ resolution: {integrity: sha512-bEnmU5gqzS+4O+id9vrbP43vByjF+8KOs+QuuV4OlqAuXmnRW2zfI/Rza1fQvdihQ5h4DUo0NqFAiViD4mSrzQ==}
eslint-json-compat-utils@0.2.1:
resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
@@ -4125,14 +4157,14 @@ packages:
typescript:
optional: true
- eslint-plugin-jsdoc@54.3.1:
- resolution: {integrity: sha512-6KlEwRCaQfSi1Wsis4cxsqDfOuQDPG56ozSPCkG+N9aISTQpahbo2n0YZs6c7CIVXQzVdYSxuvQ6w31rfeiMhw==}
+ eslint-plugin-jsdoc@60.8.1:
+ resolution: {integrity: sha512-LDcQpH4cYzU+EEri907GSzr16U2UOBiQcm95dK8ka5SnTwIT3Y7bC0iiY/MKyOotTRXaw4MY3Ec9BgHIfDBvHQ==}
engines: {node: '>=20.11.0'}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
- eslint-plugin-jsonc@2.20.1:
- resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==}
+ eslint-plugin-jsonc@2.21.0:
+ resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
@@ -4143,8 +4175,8 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- eslint-plugin-n@17.21.3:
- resolution: {integrity: sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw==}
+ eslint-plugin-n@17.23.1:
+ resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: '>=8.23.0'
@@ -4153,14 +4185,14 @@ packages:
resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
engines: {node: '>=5.0.0'}
- eslint-plugin-perfectionist@4.15.0:
- resolution: {integrity: sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw==}
+ eslint-plugin-perfectionist@4.15.1:
+ resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
eslint: '>=8.45.0'
- eslint-plugin-pnpm@1.1.1:
- resolution: {integrity: sha512-gNo+swrLCgvT8L6JX6hVmxuKeuStGK2l8IwVjDxmYIn+wP4SW/d0ORLKyUiYamsp+UxknQo3f2M1irrTpqahCw==}
+ eslint-plugin-pnpm@1.2.0:
+ resolution: {integrity: sha512-HKIFEmRGVxXvPx/hCpZY0qUGCYoaSYO6EVut4Hf9bckC0qP6F23mBgdoIExRZIWoViHuMznSaDU1FpQmc2xpgw==}
peerDependencies:
eslint: ^9.0.0
@@ -4176,8 +4208,8 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
- eslint-plugin-unicorn@60.0.0:
- resolution: {integrity: sha512-QUzTefvP8stfSXsqKQ+vBQSEsXIlAiCduS/V1Em+FKgL9c21U/IIm20/e3MFy1jyCf14tHAhqC1sX8OTy6VUCg==}
+ eslint-plugin-unicorn@61.0.2:
+ resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==}
engines: {node: ^20.10.0 || >=21.0.0}
peerDependencies:
eslint: '>=9.29.0'
@@ -4191,14 +4223,17 @@ packages:
'@typescript-eslint/eslint-plugin':
optional: true
- eslint-plugin-vue@10.4.0:
- resolution: {integrity: sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw==}
+ eslint-plugin-vue@10.5.0:
+ resolution: {integrity: sha512-7BZHsG3kC2vei8F2W8hnfDi9RK+cv5eKPMvzBdrl8Vuc0hR5odGQRli8VVzUkrmUHkxFEm4Iio1r5HOKslO0Aw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
+ '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
'@typescript-eslint/parser': ^7.0.0 || ^8.0.0
eslint: ^8.57.0 || ^9.0.0
vue-eslint-parser: ^10.0.0
peerDependenciesMeta:
+ '@stylistic/eslint-plugin':
+ optional: true
'@typescript-eslint/parser':
optional: true
@@ -4208,8 +4243,8 @@ packages:
peerDependencies:
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
- eslint-plugin-yml@1.18.0:
- resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==}
+ eslint-plugin-yml@1.19.0:
+ resolution: {integrity: sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
@@ -4236,8 +4271,8 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.36.0:
- resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==}
+ eslint@9.37.0:
+ resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -4593,8 +4628,8 @@ packages:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
- globals@16.3.0:
- resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==}
+ globals@16.4.0:
+ resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==}
engines: {node: '>=18'}
globalthis@1.0.4:
@@ -4700,8 +4735,8 @@ packages:
resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
engines: {node: '>=12.0.0'}
- hls.js@1.6.12:
- resolution: {integrity: sha512-Pz+7IzvkbAht/zXvwLzA/stUHNqztqKvlLbfpq6ZYU68+gZ+CZMlsbQBPUviRap+3IQ41E39ke7Ia+yvhsehEQ==}
+ hls.js@1.6.13:
+ resolution: {integrity: sha512-hNEzjZNHf5bFrUNvdS4/1RjIanuJ6szpWNfTaX5I6WfGynWXGT7K/YQLYtemSvFExzeMdgdE4SsyVLJbd5PcZA==}
homedir-polyfill@1.0.3:
resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
@@ -4923,10 +4958,6 @@ packages:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
- is-fullwidth-code-point@4.0.0:
- resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
- engines: {node: '>=12'}
-
is-fullwidth-code-point@5.0.0:
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
engines: {node: '>=18'}
@@ -5104,6 +5135,10 @@ packages:
resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==}
engines: {node: '>=12.0.0'}
+ jsdoc-type-pratt-parser@6.3.3:
+ resolution: {integrity: sha512-N1HQK15ZXdwgmXsALjUWW9Cwyg1BQS5hfP8KzDkbR4mjb+Ep8Uxcfwz+OU1tsNCRg99rk62d8GMNdG8Qz4k+Gg==}
+ engines: {node: '>=20.0.0'}
+
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -5134,8 +5169,8 @@ packages:
engines: {node: '>=6'}
hasBin: true
- jsonc-eslint-parser@2.4.0:
- resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
+ jsonc-eslint-parser@2.4.1:
+ resolution: {integrity: sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
jsonc-parser@3.3.1:
@@ -5156,6 +5191,10 @@ packages:
resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==}
hasBin: true
+ katex@0.16.23:
+ resolution: {integrity: sha512-7VlC1hsEEolL9xNO05v9VjrvWZePkCVBJqj8ruICxYjZfHaHbaU53AlP+PODyFIXEnaEIEWi3wJy7FPZ95JAVg==}
+ hasBin: true
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -5199,8 +5238,8 @@ packages:
resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==}
engines: {node: '>=8'}
- less@4.4.1:
- resolution: {integrity: sha512-X9HKyiXPi0f/ed0XhgUlBeFfxrlDP3xR4M7768Zl+WXLUViuL9AOPPJP4nCV0tgRWvTYvpNmN0SFhZOQzy16PA==}
+ less@4.4.2:
+ resolution: {integrity: sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==}
engines: {node: '>=14'}
hasBin: true
@@ -5221,13 +5260,13 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
- lint-staged@16.1.6:
- resolution: {integrity: sha512-U4kuulU3CKIytlkLlaHcGgKscNfJPNTiDF2avIUGFCv7K95/DCYQ7Ra62ydeRWmgQGg9zJYw2dzdbztwJlqrow==}
+ lint-staged@16.2.3:
+ resolution: {integrity: sha512-1OnJEESB9zZqsp61XHH2fvpS1es3hRCxMplF/AJUDa8Ho8VrscYDIuxGrj3m8KPXbcWZ8fT9XTMUhEQmOVKpKw==}
engines: {node: '>=20.17'}
hasBin: true
- listr2@9.0.3:
- resolution: {integrity: sha512-0aeh5HHHgmq1KRdMMDHfhMWQmIT/m7nRDTlxlFqni2Sp0had9baqsjJRvDGdlvgd6NmPE0nPloOipiQJGFtTHQ==}
+ listr2@9.0.4:
+ resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==}
engines: {node: '>=20.0.0'}
lit-element@4.2.1:
@@ -5318,23 +5357,20 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@11.1.0:
- resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
- engines: {node: 20 || >=22}
-
lru-cache@11.2.1:
resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==}
engines: {node: 20 || >=22}
+ lru-cache@11.2.2:
+ resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
- magic-string@0.30.18:
- resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==}
-
magic-string@0.30.19:
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
@@ -5469,9 +5505,8 @@ packages:
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
- memfs@4.42.0:
- resolution: {integrity: sha512-RG+4HMGyIVp6UWDWbFmZ38yKrSzblPnfJu0PyPt0hw52KW4PPlPp+HdV4qZBG0hLDuYVnf8wfQT4NymKXnlQjA==}
- engines: {node: '>= 4.0.0'}
+ memfs@4.49.0:
+ resolution: {integrity: sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==}
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
@@ -5659,10 +5694,6 @@ packages:
mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
- nano-spawn@1.0.2:
- resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==}
- engines: {node: '>=20.17'}
-
nano-spawn@1.0.3:
resolution: {integrity: sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA==}
engines: {node: '>=20.17'}
@@ -5672,8 +5703,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanoid@5.1.5:
- resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
+ nanoid@5.1.6:
+ resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==}
engines: {node: ^18 || >=20}
hasBin: true
@@ -5727,6 +5758,9 @@ packages:
engines: {node: ^14.16.0 || >=16.10.0}
hasBin: true
+ object-deep-merge@1.0.5:
+ resolution: {integrity: sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==}
+
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
@@ -5824,6 +5858,9 @@ packages:
package-manager-detector@1.3.0:
resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==}
+ package-manager-detector@1.4.0:
+ resolution: {integrity: sha512-rRZ+pR1Usc+ND9M2NkmCvE/LYJS+8ORVV9X0KuNSY/gFsp7RBHJM/ADh9LYq4Vvfq6QkKrW6/weuh8SMEtN5gw==}
+
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -5904,9 +5941,6 @@ packages:
resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
engines: {node: '>=18'}
- pathe@1.1.2:
- resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
-
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
@@ -5917,6 +5951,9 @@ packages:
perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+ perfect-debounce@2.0.0:
+ resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==}
+
photoswipe@5.4.4:
resolution: {integrity: sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==}
engines: {node: '>= 0.12.0'}
@@ -5944,9 +5981,6 @@ packages:
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
- pkg-types@2.2.0:
- resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
-
pkg-types@2.3.0:
resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
@@ -5954,8 +5988,8 @@ packages:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
- pnpm-workspace-yaml@1.1.1:
- resolution: {integrity: sha512-nGBB7h3Ped3g9dBrR6d3YNwXCKYsEg8K9J3GMmSrwGEXq3RHeGW44/B4MZW51p4FRMnyxJzTY5feSBbUjRhIHQ==}
+ pnpm-workspace-yaml@1.2.0:
+ resolution: {integrity: sha512-4CnZHmLSaprRnIm2iQ27Zl1cWPRHdX7Ehw7ckRwujoPKCk2QAz4agsA2MbTodg4sgbqYfJ68ULT+Q5A8dU+Mow==}
points-on-curve@0.2.0:
resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
@@ -6065,8 +6099,8 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- pyodide@0.28.2:
- resolution: {integrity: sha512-2BrZHrALvhYZfIuTGDHOvyiirHNLziHfBiBb1tpBFzLgAvDBb2ACxNPFFROCOzLnqapORmgArDYY8mJmMWH1Eg==}
+ pyodide@0.28.3:
+ resolution: {integrity: sha512-rtCsyTU55oNGpLzSVuAd55ZvruJDEX8o6keSdWKN9jPeBVSNlynaKFG7eRqkiIgU7i2M6HEgYtm0atCEQX3u4A==}
engines: {node: '>=18.0.0'}
qs@6.14.0:
@@ -6210,8 +6244,8 @@ packages:
robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
- rolldown-plugin-dts@0.16.6:
- resolution: {integrity: sha512-OPQKAft45efpjU3ppcI9GyRHAT0otTIdMv0gcoBlcR9B3QssZvTFH6zbT3Ij5x+7ymX5TCPyHb+VIkRYTJrTaA==}
+ rolldown-plugin-dts@0.16.8:
+ resolution: {integrity: sha512-lsx7yrYA0ZXfARLEcPKgHIw8DX4fLQOhmMChgZbn5eFhqibY2Bav1+/Yn5WNm+ATtw+cefXYgEYO/7njeHsgAA==}
engines: {node: '>=20.18.0'}
peerDependencies:
'@ts-macro/tsc': ^0.3.6
@@ -6229,8 +6263,8 @@ packages:
vue-tsc:
optional: true
- rolldown@1.0.0-beta.38:
- resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==}
+ rolldown@1.0.0-beta.42:
+ resolution: {integrity: sha512-xaPcckj+BbJhYLsv8gOqezc8EdMcKKe/gk8v47B0KPvgABDrQ0qmNPAiT/gh9n9Foe0bUkEv2qzj42uU5q1WRg==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -6276,117 +6310,117 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- sass-embedded-all-unknown@1.93.0:
- resolution: {integrity: sha512-fBTnh5qgOyw0CGVaF2iPsIIRj40D9Mnf19WerixjmWwmYKaGhxd62STsuMt6t1dWS5lkUZWRgrJ+2biQiEcCBg==}
+ sass-embedded-all-unknown@1.93.2:
+ resolution: {integrity: sha512-GdEuPXIzmhRS5J7UKAwEvtk8YyHQuFZRcpnEnkA3rwRUI27kwjyXkNeIj38XjUQ3DzrfMe8HcKFaqWGHvblS7Q==}
cpu: ['!arm', '!arm64', '!riscv64', '!x64']
- sass-embedded-android-arm64@1.93.0:
- resolution: {integrity: sha512-bwU+0uWUVoATaYAb9mnDj7GCEnNAIrinzT4UlA6GlicH+ELEZlNwVjaPJfdCyyYs8iOKuzUPfZrFZuwRCsXXqw==}
+ sass-embedded-android-arm64@1.93.2:
+ resolution: {integrity: sha512-346f4iVGAPGcNP6V6IOOFkN5qnArAoXNTPr5eA/rmNpeGwomdb7kJyQ717r9rbJXxOG8OAAUado6J0qLsjnjXQ==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [android]
- sass-embedded-android-arm@1.93.0:
- resolution: {integrity: sha512-oMm6RafXdpWDejufUs+GcgBSS/wa/iG1zRhwsCrkIkMLhqa34oN7xLkNs9Ieg337nlIryUBijwAVMFlAs/mgIg==}
+ sass-embedded-android-arm@1.93.2:
+ resolution: {integrity: sha512-I8bpO8meZNo5FvFx5FIiE7DGPVOYft0WjuwcCCdeJ6duwfkl6tZdatex1GrSigvTsuz9L0m4ngDcX/Tj/8yMow==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [android]
- sass-embedded-android-riscv64@1.93.0:
- resolution: {integrity: sha512-lKk7elql2abYeLY+wNBW8DB13W8An9JWlAr/BWOAtluz1RMsPVZwv0amQiP2PcR6HA02QDoLfRE/QpnPDHzCuw==}
+ sass-embedded-android-riscv64@1.93.2:
+ resolution: {integrity: sha512-hSMW1s4yJf5guT9mrdkumluqrwh7BjbZ4MbBW9tmi1DRDdlw1Wh9Oy1HnnmOG8x9XcI1qkojtPL6LUuEJmsiDg==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [android]
- sass-embedded-android-x64@1.93.0:
- resolution: {integrity: sha512-wuyphs1VMS/PRXtCBLhA0bVo5nyKFCXKaVKMbqPylOTvoTHe7u0zxjWRN4eF5LTPVuQp0A+LYgJz07duzxwJew==}
+ sass-embedded-android-x64@1.93.2:
+ resolution: {integrity: sha512-JqktiHZduvn+ldGBosE40ALgQ//tGCVNAObgcQ6UIZznEJbsHegqStqhRo8UW3x2cgOO2XYJcrInH6cc7wdKbw==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [android]
- sass-embedded-darwin-arm64@1.93.0:
- resolution: {integrity: sha512-lEb5J/jabesh16xdocRFgpzIa8GAZCLrdKtUnGbn9a4Y4WkEKHtUkvAm9ZtqE8YiuIm8PwHW/zBUKtZYoGYoYA==}
+ sass-embedded-darwin-arm64@1.93.2:
+ resolution: {integrity: sha512-qI1X16qKNeBJp+M/5BNW7v/JHCDYWr1/mdoJ7+UMHmP0b5AVudIZtimtK0hnjrLnBECURifd6IkulybR+h+4UA==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [darwin]
- sass-embedded-darwin-x64@1.93.0:
- resolution: {integrity: sha512-mo9OfKyNF6MiFf711c+QGR7aPpFqAC9FttiLKPYH3RRBZQZU/UcG4mbg+yXfKbhZrJmYngbGiTzE9B+xiOz27Q==}
+ sass-embedded-darwin-x64@1.93.2:
+ resolution: {integrity: sha512-4KeAvlkQ0m0enKUnDGQJZwpovYw99iiMb8CTZRSsQm8Eh7halbJZVmx67f4heFY/zISgVOCcxNg19GrM5NTwtA==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [darwin]
- sass-embedded-linux-arm64@1.93.0:
- resolution: {integrity: sha512-bJclpjTeP/qCu7zYLZQXROx4xIT3x+qfj/q92fripV9L9Oj2khfUm+2nW0Cq7DS6UrHphrWZ9QSnVYFhkCKtEA==}
+ sass-embedded-linux-arm64@1.93.2:
+ resolution: {integrity: sha512-9ftX6nd5CsShJqJ2WRg+ptaYvUW+spqZfJ88FbcKQBNFQm6L87luj3UI1rB6cP5EWrLwHA754OKxRJyzWiaN6g==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
- sass-embedded-linux-arm@1.93.0:
- resolution: {integrity: sha512-wtO2vB8rMc5zF29xwC3AMgmBgNgm3i3/8zog5vQBD4yddqCJ93JcWDjdUqYmq0H/DLD/Z7q91j6X/YgPq1WuEg==}
+ sass-embedded-linux-arm@1.93.2:
+ resolution: {integrity: sha512-N3+D/ToHtzwLDO+lSH05Wo6/KRxFBPnbjVHASOlHzqJnK+g5cqex7IFAp6ozzlRStySk61Rp6d+YGrqZ6/P0PA==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
- sass-embedded-linux-musl-arm64@1.93.0:
- resolution: {integrity: sha512-VH0zFGqsTy+lThHAm3y8Dpd/X4nC5DLJvk66+mJTg7rwblRhfPpsVO6n8QHeN5ZV1ATTnLh/PbZ7uEPiyAg2wg==}
+ sass-embedded-linux-musl-arm64@1.93.2:
+ resolution: {integrity: sha512-+3EHuDPkMiAX5kytsjEC1bKZCawB9J6pm2eBIzzLMPWbf5xdx++vO1DpT7hD4bm4ZGn0eVHgSOKIfP6CVz6tVg==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
- sass-embedded-linux-musl-arm@1.93.0:
- resolution: {integrity: sha512-mMGAy+2VLLTMDPDG/mfzMmoy09potXp/ZRPRsyJEYVjF0rQij6Iss3qsZbCjVJa4atLwBtPJ14M0NvqpAa2WIg==}
+ sass-embedded-linux-musl-arm@1.93.2:
+ resolution: {integrity: sha512-XBTvx66yRenvEsp3VaJCb3HQSyqCsUh7R+pbxcN5TuzueybZi0LXvn9zneksdXcmjACMlMpIVXi6LyHPQkYc8A==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
- sass-embedded-linux-musl-riscv64@1.93.0:
- resolution: {integrity: sha512-/a+MvExFEKvwPXyZsQ8b1DWYJMpTnXSdwpe9pDNkdTIcliMAtP952krCx14nBP0UqqNoU/TetyMR8H0WwyeJEA==}
+ sass-embedded-linux-musl-riscv64@1.93.2:
+ resolution: {integrity: sha512-0sB5kmVZDKTYzmCSlTUnjh6mzOhzmQiW/NNI5g8JS4JiHw2sDNTvt1dsFTuqFkUHyEOY3ESTsfHHBQV8Ip4bEA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
- sass-embedded-linux-musl-x64@1.93.0:
- resolution: {integrity: sha512-o168nV9QI5U+2LFBMmMecWzu6yJ7WJZZfQGlo4Frvg9vC3Em3W02GfAel+g9leJg+0PDnpJLqOsPdrngg25T/Q==}
+ sass-embedded-linux-musl-x64@1.93.2:
+ resolution: {integrity: sha512-t3ejQ+1LEVuHy7JHBI2tWHhoMfhedUNDjGJR2FKaLgrtJntGnyD1RyX0xb3nuqL/UXiEAtmTmZY+Uh3SLUe1Hg==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
- sass-embedded-linux-riscv64@1.93.0:
- resolution: {integrity: sha512-KYHED49coJQT633cBbqBfBOPmRe3yNbE+D2kqMONADBqzGyxHZpQRStCenhPmDabVLI4fgc3fn//6ubqH724jA==}
+ sass-embedded-linux-riscv64@1.93.2:
+ resolution: {integrity: sha512-e7AndEwAbFtXaLy6on4BfNGTr3wtGZQmypUgYpSNVcYDO+CWxatKVY4cxbehMPhxG9g5ru+eaMfynvhZt7fLaA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
- sass-embedded-linux-x64@1.93.0:
- resolution: {integrity: sha512-9OD9OlZ61dmz/BbW4n29l3v74//ibiQCmWu8YBoXVgxxgcbi+2CFv+vRE8guA73BgEdPComw0tpgD1FkW3v12g==}
+ sass-embedded-linux-x64@1.93.2:
+ resolution: {integrity: sha512-U3EIUZQL11DU0xDDHXexd4PYPHQaSQa2hzc4EzmhHqrAj+TyfYO94htjWOd+DdTPtSwmLp+9cTWwPZBODzC96w==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
- sass-embedded-unknown-all@1.93.0:
- resolution: {integrity: sha512-Hh9OPBMg+i1g8OzQyOtQuJg/3ncup4Z+FHdXNzPIeFXcIeS+TVuVQyvJfnB+hYgvVGyBJ+9ekuUYzB+1zA82nw==}
+ sass-embedded-unknown-all@1.93.2:
+ resolution: {integrity: sha512-7VnaOmyewcXohiuoFagJ3SK5ddP9yXpU0rzz+pZQmS1/+5O6vzyFCUoEt3HDRaLctH4GT3nUGoK1jg0ae62IfQ==}
os: ['!android', '!darwin', '!linux', '!win32']
- sass-embedded-win32-arm64@1.93.0:
- resolution: {integrity: sha512-3SNRTxBVk+c0Oyd4gCp4/KAQ+S6B9S5ihq5dxMMfWpvoQSUqn6mqhkEFrofG1oNlP7KsA2UzhTnFGDRid1An+A==}
+ sass-embedded-win32-arm64@1.93.2:
+ resolution: {integrity: sha512-Y90DZDbQvtv4Bt0GTXKlcT9pn4pz8AObEjFF8eyul+/boXwyptPZ/A1EyziAeNaIEIfxyy87z78PUgCeGHsx3Q==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [win32]
- sass-embedded-win32-x64@1.93.0:
- resolution: {integrity: sha512-6/RJGOdm3bwe71YJaYanQ81I6KA//T/a+MnKlRpP5zk5fy2ygAIGNeNr2ENEBu/KZCuFg7KY49g46v+hPKT6Ow==}
+ sass-embedded-win32-x64@1.93.2:
+ resolution: {integrity: sha512-BbSucRP6PVRZGIwlEBkp+6VQl2GWdkWFMN+9EuOTPrLxCJZoq+yhzmbjspd3PeM8+7WJ7AdFu/uRYdO8tor1iQ==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [win32]
- sass-embedded@1.93.0:
- resolution: {integrity: sha512-dQACVfrbwKtvnrA0xH67YAdUYi6k7XcPg8uNF3DPf/VaJMQzduE1z5w3NFa9oVjtqXM4+FA9P7Qdv06Bzf614g==}
+ sass-embedded@1.93.2:
+ resolution: {integrity: sha512-FvQdkn2dZ8DGiLgi0Uf4zsj7r/BsiLImNa5QJ10eZalY6NfZyjrmWGFcuCN5jNwlDlXFJnftauv+UtvBKLvepQ==}
engines: {node: '>=16.0.0'}
hasBin: true
- sass@1.93.0:
- resolution: {integrity: sha512-CQi5/AzCwiubU3dSqRDJ93RfOfg/hhpW1l6wCIvolmehfwgCI35R/0QDs1+R+Ygrl8jFawwwIojE2w47/mf94A==}
+ sass@1.93.2:
+ resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -6499,10 +6533,6 @@ packages:
resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
engines: {node: '>=10'}
- slice-ansi@5.0.0:
- resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
- engines: {node: '>=12'}
-
slice-ansi@7.1.0:
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
engines: {node: '>=18'}
@@ -6582,6 +6612,10 @@ packages:
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
engines: {node: '>=18'}
+ string-width@8.1.0:
+ resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==}
+ engines: {node: '>=20'}
+
string.prototype.includes@2.0.1:
resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
engines: {node: '>= 0.4'}
@@ -6641,52 +6675,40 @@ packages:
postcss-html: ^1.0.0
stylelint: '>=14.0.0'
- stylelint-config-recommended-scss@15.0.1:
- resolution: {integrity: sha512-V24bxkNkFGggqPVJlP9iXaBabwSGEG7QTz+PyxrRtjPkcF+/NsWtB3tKYvFYEmczRkWiIEfuFMhGpJFj9Fxe6Q==}
+ stylelint-config-recommended-scss@16.0.2:
+ resolution: {integrity: sha512-aUTHhPPWCvFyWaxtckJlCPaXTDFsp4pKO8evXNCsW9OwsaUWyMd6jvcUhSmfGWPrTddvzNqK4rS/UuSLcbVGdQ==}
engines: {node: '>=20'}
peerDependencies:
postcss: ^8.3.3
- stylelint: ^16.16.0
+ stylelint: ^16.24.0
peerDependenciesMeta:
postcss:
optional: true
- stylelint-config-recommended@16.0.0:
- resolution: {integrity: sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==}
- engines: {node: '>=18.12.0'}
- peerDependencies:
- stylelint: ^16.16.0
-
stylelint-config-recommended@17.0.0:
resolution: {integrity: sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^16.23.0
- stylelint-config-standard-scss@15.0.1:
- resolution: {integrity: sha512-8pmmfutrMlPHukLp+Th9asmk21tBXMVGxskZCzkRVWt1d8Z0SrXjUUQ3vn9KcBj1bJRd5msk6yfEFM0UYHBRdg==}
+ stylelint-config-standard-scss@16.0.0:
+ resolution: {integrity: sha512-/FHECLUu+med/e6OaPFpprG86ShC4SYT7Tzb2PTVdDjJsehhFBOioSlWqYFqJxmGPIwO3AMBxNo+kY3dxrbczA==}
engines: {node: '>=20'}
peerDependencies:
postcss: ^8.3.3
- stylelint: ^16.18.0
+ stylelint: ^16.23.1
peerDependenciesMeta:
postcss:
optional: true
- stylelint-config-standard@38.0.0:
- resolution: {integrity: sha512-uj3JIX+dpFseqd/DJx8Gy3PcRAJhlEZ2IrlFOc4LUxBX/PNMEQ198x7LCOE2Q5oT9Vw8nyc4CIL78xSqPr6iag==}
- engines: {node: '>=18.12.0'}
- peerDependencies:
- stylelint: ^16.18.0
-
stylelint-config-standard@39.0.0:
resolution: {integrity: sha512-JabShWORb8Bmc1A47ZyJstran60P3yUdI1zWMpGYPeFiC6xzHXJMkpKAd8EjIhq3HPUplIWWMDJ/xu0AiPd+kA==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^16.23.0
- stylelint-define-config@16.22.0:
- resolution: {integrity: sha512-EEgHRugsryKo7LpenYyd4yLoZon3lHvRAi7WsMaZoRX9GPOkeDXrMga+N4VA4nK4Zus02EQwyYkndNQ64jaB2A==}
+ stylelint-define-config@16.24.0:
+ resolution: {integrity: sha512-QktXPtFnT7EQNVOTNA0Rju1lVM0wHWkYvXTLFWpA832vS+EUsDf9ay6GBMjm9MQ0ocPRJBU+apyJetCbsMcj8A==}
engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>=8.6.0'}
peerDependencies:
stylelint: '>=16.0.0'
@@ -6703,8 +6725,8 @@ packages:
peerDependencies:
stylelint: ^16.0.2
- stylelint@16.24.0:
- resolution: {integrity: sha512-7ksgz3zJaSbTUGr/ujMXvLVKdDhLbGl3R/3arNudH7z88+XZZGNLMTepsY28WlnvEFcuOmUe7fg40Q3lfhOfSQ==}
+ stylelint@16.25.0:
+ resolution: {integrity: sha512-Li0avYWV4nfv1zPbdnxLYBGq4z8DVZxbRgx4Kn6V+Uftz1rMoF1qiEI3oL4kgWqyYgCgs7gT5maHNZ82Gk03vQ==}
engines: {node: '>=18.12.0'}
hasBin: true
@@ -6823,8 +6845,8 @@ packages:
resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==}
engines: {node: '>=14.0.0'}
- tm-grammars@1.24.12:
- resolution: {integrity: sha512-p7U/SQtyw5Ae9gBZYubEt5zOS0g8peGpyEF8bFnV4N+tb3YOJApDHpWhWvPtasQtGRHyNDa87qzlLSnsPQ+jmw==}
+ tm-grammars@1.24.16:
+ resolution: {integrity: sha512-zbT9/jJYh8DJ0NnZJe7P2Egf9Nd6m7dfNDOBYGLLrcWSUwGQ7DqbOterJ5zeU0fE/2AuF/k2NPkRuYwHPmjwcg==}
tm-themes@1.10.9:
resolution: {integrity: sha512-2pBK8ZHXFibHOoKmi1aE2VF1ISsMpqTU+RS3+YS8LGNEm4WSkmnDqdylbtsmZIfFTxy/8KbsiBKbrmnHYVTZFw==}
@@ -6881,8 +6903,8 @@ packages:
tsconfig-vuepress@7.0.0:
resolution: {integrity: sha512-P3EoKacv1UWp5X30/huXjxUinnj8rl4FcTS29nW4TANflkvoh7JDDiXp2c/Tmcy7Ex4N+3exjr/BjPn7Jadnew==}
- tsdown@0.15.3:
- resolution: {integrity: sha512-51p2z1F3GBAG9+9J+BNo6rYCvajZ9TAGtFMq/hCwjhvxFbzJ/Py4SHmLNltbraR4QFepW694cZwab33Nb7H2Ew==}
+ tsdown@0.15.6:
+ resolution: {integrity: sha512-W6++O3JeV9gm3JY6P/vLiC7zzTcJbZhQxXb+p3AvRMpDOPBIg82yXULyZCcwjsihY/bFG+Qw37HkezZbP7fzUg==}
engines: {node: '>=20.19.0'}
hasBin: true
peerDependencies:
@@ -6930,6 +6952,10 @@ packages:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
+ type-fest@4.2.0:
+ resolution: {integrity: sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==}
+ engines: {node: '>=16'}
+
type-fest@4.41.0:
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
@@ -6950,8 +6976,8 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
- typescript@5.9.2:
- resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -6977,12 +7003,12 @@ packages:
unconfig@7.3.3:
resolution: {integrity: sha512-QCkQoOnJF8L107gxfHL0uavn7WD9b3dpBcFX6HtfQYmjw2YzWxGuFQ0N0J6tE9oguCBJn9KOvfqYDCMPHIZrBA==}
- undici-types@7.10.0:
- resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
-
undici-types@7.12.0:
resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
+ undici-types@7.14.0:
+ resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==}
+
undici@6.21.3:
resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==}
engines: {node: '>=18.17'}
@@ -7085,7 +7111,7 @@ packages:
less: ^4.0.0
lightningcss: ^1.21.0
sass: ^1.70.0
- sass-embedded: ^1.93.0
+ sass-embedded: ^1.93.2
stylus: '>=0.54.8'
sugarss: ^5.0.0
terser: ^5.16.0
@@ -7125,7 +7151,7 @@ packages:
less: ^4.0.0
lightningcss: ^1.21.0
sass: ^1.70.0
- sass-embedded: ^1.93.0
+ sass-embedded: ^1.93.2
stylus: '>=0.54.8'
sugarss: ^5.0.0
terser: ^5.16.0
@@ -7225,8 +7251,8 @@ packages:
peerDependencies:
vue: ^3.2.0
- vue@3.5.21:
- resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==}
+ vue@3.5.22:
+ resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -7247,8 +7273,8 @@ packages:
'@vuepress/bundler-webpack':
optional: true
- wait-on@9.0.0:
- resolution: {integrity: sha512-bKOl7CJ4zGhKW4qvoasLM5t2NtLUcc1Ar2N6XeYCQpW0w+DMdLC0YH1JUH3bTWDCsHblapHMzhtFmmPc+ITNJw==}
+ wait-on@9.0.1:
+ resolution: {integrity: sha512-noeCAI+XbqWMXY23sKril0BSURhuLYarkVXwJv1uUWwoojZJE7pmX3vJ7kh7SZaNgPGzfsCSQIZM/AGvu0Q9pA==}
engines: {node: '>=20.0.0'}
hasBin: true
@@ -7515,7 +7541,7 @@ snapshots:
'@antfu/install-pkg@1.1.0':
dependencies:
- package-manager-detector: 1.3.0
+ package-manager-detector: 1.4.0
tinyexec: 1.0.1
'@antfu/utils@9.2.0': {}
@@ -7605,10 +7631,6 @@ snapshots:
dependencies:
'@babel/types': 7.28.2
- '@babel/parser@7.28.3':
- dependencies:
- '@babel/types': 7.28.2
-
'@babel/parser@7.28.4':
dependencies:
'@babel/types': 7.28.4
@@ -7675,66 +7697,92 @@ snapshots:
picocolors: 1.1.1
sisteransi: 1.0.5
- '@commitlint/cli@19.8.1(@types/node@24.5.2)(typescript@5.9.2)':
+ '@commitlint/cli@20.1.0(@types/node@24.7.0)(typescript@5.9.3)':
dependencies:
- '@commitlint/format': 19.8.1
- '@commitlint/lint': 19.8.1
- '@commitlint/load': 19.8.1(@types/node@24.5.2)(typescript@5.9.2)
- '@commitlint/read': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/format': 20.0.0
+ '@commitlint/lint': 20.0.0
+ '@commitlint/load': 20.1.0(@types/node@24.7.0)(typescript@5.9.3)
+ '@commitlint/read': 20.0.0
+ '@commitlint/types': 20.0.0
tinyexec: 1.0.1
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
- typescript
- '@commitlint/config-conventional@19.8.1':
+ '@commitlint/config-conventional@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
conventional-changelog-conventionalcommits: 7.0.2
'@commitlint/config-validator@19.8.1':
dependencies:
'@commitlint/types': 19.8.1
ajv: 8.17.1
+ optional: true
- '@commitlint/ensure@19.8.1':
+ '@commitlint/config-validator@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
+ ajv: 8.17.1
+
+ '@commitlint/ensure@20.0.0':
+ dependencies:
+ '@commitlint/types': 20.0.0
lodash.camelcase: 4.3.0
lodash.kebabcase: 4.1.1
lodash.snakecase: 4.1.1
lodash.startcase: 4.4.0
lodash.upperfirst: 4.3.1
- '@commitlint/execute-rule@19.8.1': {}
+ '@commitlint/execute-rule@19.8.1':
+ optional: true
- '@commitlint/format@19.8.1':
- dependencies:
- '@commitlint/types': 19.8.1
- chalk: 5.5.0
+ '@commitlint/execute-rule@20.0.0': {}
- '@commitlint/is-ignored@19.8.1':
+ '@commitlint/format@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
+ chalk: 5.6.0
+
+ '@commitlint/is-ignored@20.0.0':
+ dependencies:
+ '@commitlint/types': 20.0.0
semver: 7.7.2
- '@commitlint/lint@19.8.1':
+ '@commitlint/lint@20.0.0':
dependencies:
- '@commitlint/is-ignored': 19.8.1
- '@commitlint/parse': 19.8.1
- '@commitlint/rules': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/is-ignored': 20.0.0
+ '@commitlint/parse': 20.0.0
+ '@commitlint/rules': 20.0.0
+ '@commitlint/types': 20.0.0
- '@commitlint/load@19.8.1(@types/node@24.5.2)(typescript@5.9.2)':
+ '@commitlint/load@19.8.1(@types/node@24.7.0)(typescript@5.9.3)':
dependencies:
'@commitlint/config-validator': 19.8.1
'@commitlint/execute-rule': 19.8.1
'@commitlint/resolve-extends': 19.8.1
'@commitlint/types': 19.8.1
chalk: 5.5.0
- cosmiconfig: 9.0.0(typescript@5.9.2)
- cosmiconfig-typescript-loader: 6.1.0(@types/node@24.5.2)(cosmiconfig@9.0.0(typescript@5.9.2))(typescript@5.9.2)
+ cosmiconfig: 9.0.0(typescript@5.9.3)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@24.7.0)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3)
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ lodash.uniq: 4.5.0
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+ optional: true
+
+ '@commitlint/load@20.1.0(@types/node@24.7.0)(typescript@5.9.3)':
+ dependencies:
+ '@commitlint/config-validator': 20.0.0
+ '@commitlint/execute-rule': 20.0.0
+ '@commitlint/resolve-extends': 20.1.0
+ '@commitlint/types': 20.0.0
+ chalk: 5.6.0
+ cosmiconfig: 9.0.0(typescript@5.9.3)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@24.7.0)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -7742,18 +7790,18 @@ snapshots:
- '@types/node'
- typescript
- '@commitlint/message@19.8.1': {}
+ '@commitlint/message@20.0.0': {}
- '@commitlint/parse@19.8.1':
+ '@commitlint/parse@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
conventional-changelog-angular: 7.0.0
conventional-commits-parser: 5.0.0
- '@commitlint/read@19.8.1':
+ '@commitlint/read@20.0.0':
dependencies:
- '@commitlint/top-level': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/top-level': 20.0.0
+ '@commitlint/types': 20.0.0
git-raw-commits: 4.0.0
minimist: 1.2.8
tinyexec: 1.0.1
@@ -7766,17 +7814,27 @@ snapshots:
import-meta-resolve: 4.1.0
lodash.mergewith: 4.6.2
resolve-from: 5.0.0
+ optional: true
- '@commitlint/rules@19.8.1':
+ '@commitlint/resolve-extends@20.1.0':
dependencies:
- '@commitlint/ensure': 19.8.1
- '@commitlint/message': 19.8.1
- '@commitlint/to-lines': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/config-validator': 20.0.0
+ '@commitlint/types': 20.0.0
+ global-directory: 4.0.1
+ import-meta-resolve: 4.1.0
+ lodash.mergewith: 4.6.2
+ resolve-from: 5.0.0
- '@commitlint/to-lines@19.8.1': {}
+ '@commitlint/rules@20.0.0':
+ dependencies:
+ '@commitlint/ensure': 20.0.0
+ '@commitlint/message': 20.0.0
+ '@commitlint/to-lines': 20.0.0
+ '@commitlint/types': 20.0.0
- '@commitlint/top-level@19.8.1':
+ '@commitlint/to-lines@20.0.0': {}
+
+ '@commitlint/top-level@20.0.0':
dependencies:
find-up: 7.0.0
@@ -7784,6 +7842,12 @@ snapshots:
dependencies:
'@types/conventional-commits-parser': 5.0.1
chalk: 5.5.0
+ optional: true
+
+ '@commitlint/types@20.0.0':
+ dependencies:
+ '@types/conventional-commits-parser': 5.0.1
+ chalk: 5.6.0
'@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)':
dependencies:
@@ -7832,7 +7896,7 @@ snapshots:
transitivePeerDependencies:
- '@algolia/client-search'
- '@dual-bundle/import-meta-resolve@4.1.0': {}
+ '@dual-bundle/import-meta-resolve@4.2.1': {}
'@emnapi/core@1.5.0':
dependencies:
@@ -7853,18 +7917,18 @@ snapshots:
'@es-joy/jsdoccomment@0.50.2':
dependencies:
'@types/estree': 1.0.8
- '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/types': 8.44.1
comment-parser: 1.4.1
esquery: 1.6.0
jsdoc-type-pratt-parser: 4.1.0
- '@es-joy/jsdoccomment@0.53.0':
+ '@es-joy/jsdoccomment@0.68.1':
dependencies:
'@types/estree': 1.0.8
- '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/types': 8.45.0
comment-parser: 1.4.1
esquery: 1.6.0
- jsdoc-type-pratt-parser: 4.8.0
+ jsdoc-type-pratt-parser: 6.3.3
'@esbuild/aix-ppc64@0.25.10':
optional: true
@@ -7944,46 +8008,47 @@ snapshots:
'@esbuild/win32-x64@0.25.10':
optional: true
- '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.36.0(jiti@2.5.1))':
+ '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.37.0(jiti@2.5.1))':
dependencies:
escape-string-regexp: 4.0.0
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
ignore: 5.3.2
- '@eslint-community/eslint-utils@4.7.0(eslint@9.36.0(jiti@2.5.1))':
+ '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.5.1))':
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.5.1))':
- dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/compat@1.3.2(eslint@9.36.0(jiti@2.5.1))':
+ '@eslint/compat@1.3.2(eslint@9.37.0(jiti@2.5.1))':
optionalDependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
'@eslint/config-array@0.21.0':
dependencies:
'@eslint/object-schema': 2.1.6
- debug: 4.4.1
+ debug: 4.4.3
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.3.1': {}
+ '@eslint/config-helpers@0.4.0':
+ dependencies:
+ '@eslint/core': 0.16.0
'@eslint/core@0.15.2':
dependencies:
'@types/json-schema': 7.0.15
+ '@eslint/core@0.16.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.1
+ debug: 4.4.3
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
@@ -7994,9 +8059,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.36.0': {}
+ '@eslint/js@9.37.0': {}
- '@eslint/markdown@7.2.0':
+ '@eslint/markdown@7.3.0':
dependencies:
'@eslint/core': 0.15.2
'@eslint/plugin-kit': 0.3.5
@@ -8017,6 +8082,11 @@ snapshots:
'@eslint/core': 0.15.2
levn: 0.4.1
+ '@eslint/plugin-kit@0.4.0':
+ dependencies:
+ '@eslint/core': 0.16.0
+ levn: 0.4.1
+
'@floating-ui/core@1.7.3':
dependencies:
'@floating-ui/utils': 0.2.10
@@ -8062,10 +8132,10 @@ snapshots:
'@hutson/parse-repository-url@5.0.0': {}
- '@iconify/json@2.2.386':
+ '@iconify/json@2.2.392':
dependencies:
'@iconify/types': 2.0.0
- pathe: 1.1.2
+ pathe: 2.0.3
'@iconify/types@2.0.0': {}
@@ -8095,10 +8165,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@iconify/vue@5.0.0(vue@3.5.21(typescript@5.9.2))':
+ '@iconify/vue@5.0.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@iconify/types': 2.0.0
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
'@isaacs/balanced-match@4.0.1': {}
@@ -8286,13 +8356,13 @@ snapshots:
optionalDependencies:
markdown-it: 14.1.0
- '@mdit/plugin-katex-slim@0.23.1(katex@0.16.22)(markdown-it@14.1.0)':
+ '@mdit/plugin-katex-slim@0.23.1(katex@0.16.23)(markdown-it@14.1.0)':
dependencies:
'@mdit/helper': 0.22.1(markdown-it@14.1.0)
'@mdit/plugin-tex': 0.22.1(markdown-it@14.1.0)
'@types/markdown-it': 14.1.2
optionalDependencies:
- katex: 0.16.22
+ katex: 0.16.23
markdown-it: 14.1.0
'@mdit/plugin-mark@0.22.1(markdown-it@14.1.0)':
@@ -8361,7 +8431,7 @@ snapshots:
dependencies:
langium: 3.3.1
- '@napi-rs/wasm-runtime@1.0.5':
+ '@napi-rs/wasm-runtime@1.0.6':
dependencies:
'@emnapi/core': 1.5.0
'@emnapi/runtime': 1.5.0
@@ -8380,7 +8450,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
- '@oxc-project/types@0.89.0': {}
+ '@oxc-project/types@0.94.0': {}
'@parcel/watcher-android-arm64@2.5.1':
optional: true
@@ -8443,18 +8513,19 @@ snapshots:
'@parcel/watcher-win32-x64': 2.5.1
optional: true
- '@pengzhanbo/eslint-config-vue@1.37.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))':
+ '@pengzhanbo/eslint-config-vue@1.38.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))':
dependencies:
- '@pengzhanbo/eslint-config': 1.37.0(eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))))(eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.36.0(jiti@2.5.1)))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1)))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)))
- eslint: 9.36.0(jiti@2.5.1)
- eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)))
- eslint-plugin-vuejs-accessibility: 2.4.1(eslint@9.36.0(jiti@2.5.1))
- eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1))
- vue-eslint-parser: 10.2.0(eslint@9.36.0(jiti@2.5.1))
+ '@pengzhanbo/eslint-config': 1.38.0(eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1))))(eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.37.0(jiti@2.5.1)))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1)))
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-plugin-vue: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1)))
+ eslint-plugin-vuejs-accessibility: 2.4.1(eslint@9.37.0(jiti@2.5.1))
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1))
+ vue-eslint-parser: 10.2.0(eslint@9.37.0(jiti@2.5.1))
transitivePeerDependencies:
- '@eslint-react/eslint-plugin'
- '@eslint/json'
- '@next/eslint-plugin-next'
+ - '@stylistic/eslint-plugin'
- '@typescript-eslint/parser'
- '@vue/compiler-sfc'
- astro-eslint-parser
@@ -8470,67 +8541,67 @@ snapshots:
- typescript
- vitest
- '@pengzhanbo/eslint-config@1.37.0(eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))))(eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.36.0(jiti@2.5.1)))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1)))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)))':
+ '@pengzhanbo/eslint-config@1.38.0(eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1))))(eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.37.0(jiti@2.5.1)))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1)))':
dependencies:
'@antfu/install-pkg': 1.1.0
- '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.36.0(jiti@2.5.1))
- '@eslint/markdown': 7.2.0
- '@stylistic/eslint-plugin': 5.2.3(eslint@9.36.0(jiti@2.5.1))
- '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- '@typescript-eslint/parser': 8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- '@vitest/eslint-plugin': 1.3.8(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))
- eslint: 9.36.0(jiti@2.5.1)
- eslint-config-flat-gitignore: 2.1.0(eslint@9.36.0(jiti@2.5.1))
- eslint-flat-config-utils: 2.1.1
- eslint-merge-processors: 2.0.0(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-antfu: 3.1.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-command: 3.3.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-import-lite: 0.3.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- eslint-plugin-jsdoc: 54.3.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-jsonc: 2.20.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-n: 17.21.3(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
+ '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.37.0(jiti@2.5.1))
+ '@eslint/markdown': 7.3.0
+ '@stylistic/eslint-plugin': 5.4.0(eslint@9.37.0(jiti@2.5.1))
+ '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ '@vitest/eslint-plugin': 1.3.15(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-config-flat-gitignore: 2.1.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-flat-config-utils: 2.1.4
+ eslint-merge-processors: 2.0.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-antfu: 3.1.1(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-command: 3.3.1(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-import-lite: 0.3.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ eslint-plugin-jsdoc: 60.8.1(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-jsonc: 2.21.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-n: 17.23.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
eslint-plugin-no-only-tests: 3.3.0
- eslint-plugin-perfectionist: 4.15.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- eslint-plugin-pnpm: 1.1.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-regexp: 2.10.0(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-toml: 0.12.0(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-unicorn: 60.0.0(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-vuejs-accessibility: 2.4.1(eslint@9.36.0(jiti@2.5.1))
- eslint-plugin-yml: 1.18.0(eslint@9.36.0(jiti@2.5.1))
- globals: 16.3.0
- jsonc-eslint-parser: 2.4.0
+ eslint-plugin-perfectionist: 4.15.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ eslint-plugin-pnpm: 1.2.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-regexp: 2.10.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-toml: 0.12.0(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-unicorn: 61.0.2(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-vuejs-accessibility: 2.4.1(eslint@9.37.0(jiti@2.5.1))
+ eslint-plugin-yml: 1.19.0(eslint@9.37.0(jiti@2.5.1))
+ globals: 16.4.0
+ jsonc-eslint-parser: 2.4.1
local-pkg: 1.1.2
parse-gitignore: 2.0.0
toml-eslint-parser: 0.10.0
yaml-eslint-parser: 1.3.0
optionalDependencies:
- eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)))
- eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1))
- vue-eslint-parser: 10.2.0(eslint@9.36.0(jiti@2.5.1))
+ eslint-plugin-vue: 10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1)))
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1))
+ vue-eslint-parser: 10.2.0(eslint@9.37.0(jiti@2.5.1))
transitivePeerDependencies:
- '@eslint/json'
- supports-color
- typescript
- vitest
- '@pengzhanbo/stylelint-config@1.37.0(stylelint@16.24.0(typescript@5.9.2))':
+ '@pengzhanbo/stylelint-config@1.38.0(stylelint@16.25.0(typescript@5.9.3))':
dependencies:
'@pengzhanbo/utils': 2.1.0
- '@stylelint-types/stylelint-order': 7.0.0(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))
- '@stylelint-types/stylelint-scss': 6.11.0(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))
- '@stylelint-types/stylelint-stylistic': 3.1.3(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))
- '@stylistic/stylelint-plugin': 4.0.0(stylelint@16.24.0(typescript@5.9.2))
+ '@stylelint-types/stylelint-order': 7.0.0(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))
+ '@stylelint-types/stylelint-scss': 6.11.0(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))
+ '@stylelint-types/stylelint-stylistic': 3.1.3(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))
+ '@stylistic/stylelint-plugin': 4.0.0(stylelint@16.25.0(typescript@5.9.3))
local-pkg: 1.1.2
postcss: 8.5.6
postcss-html: 1.8.0
- stylelint: 16.24.0(typescript@5.9.2)
- stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.9.2))
- stylelint-config-standard: 39.0.0(stylelint@16.24.0(typescript@5.9.2))
- stylelint-config-standard-scss: 15.0.1(postcss@8.5.6)(stylelint@16.24.0(typescript@5.9.2))
- stylelint-define-config: 16.22.0(stylelint@16.24.0(typescript@5.9.2))
- stylelint-order: 7.0.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint: 16.25.0(typescript@5.9.3)
+ stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-config-standard: 39.0.0(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-config-standard-scss: 16.0.0(postcss@8.5.6)(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-define-config: 16.24.0(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-order: 7.0.0(stylelint@16.25.0(typescript@5.9.3))
'@pengzhanbo/utils@2.1.0': {}
@@ -8543,53 +8614,53 @@ snapshots:
dependencies:
quansync: 0.2.11
- '@rolldown/binding-android-arm64@1.0.0-beta.38':
+ '@rolldown/binding-android-arm64@1.0.0-beta.42':
optional: true
- '@rolldown/binding-darwin-arm64@1.0.0-beta.38':
+ '@rolldown/binding-darwin-arm64@1.0.0-beta.42':
optional: true
- '@rolldown/binding-darwin-x64@1.0.0-beta.38':
+ '@rolldown/binding-darwin-x64@1.0.0-beta.42':
optional: true
- '@rolldown/binding-freebsd-x64@1.0.0-beta.38':
+ '@rolldown/binding-freebsd-x64@1.0.0-beta.42':
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38':
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.42':
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38':
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.42':
optional: true
- '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38':
+ '@rolldown/binding-linux-arm64-musl@1.0.0-beta.42':
optional: true
- '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38':
+ '@rolldown/binding-linux-x64-gnu@1.0.0-beta.42':
optional: true
- '@rolldown/binding-linux-x64-musl@1.0.0-beta.38':
+ '@rolldown/binding-linux-x64-musl@1.0.0-beta.42':
optional: true
- '@rolldown/binding-openharmony-arm64@1.0.0-beta.38':
+ '@rolldown/binding-openharmony-arm64@1.0.0-beta.42':
optional: true
- '@rolldown/binding-wasm32-wasi@1.0.0-beta.38':
+ '@rolldown/binding-wasm32-wasi@1.0.0-beta.42':
dependencies:
- '@napi-rs/wasm-runtime': 1.0.5
+ '@napi-rs/wasm-runtime': 1.0.6
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38':
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.42':
optional: true
- '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38':
+ '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.42':
optional: true
- '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38':
+ '@rolldown/binding-win32-x64-msvc@1.0.0-beta.42':
optional: true
'@rolldown/pluginutils@1.0.0-beta.29': {}
- '@rolldown/pluginutils@1.0.0-beta.38': {}
+ '@rolldown/pluginutils@1.0.0-beta.42': {}
'@rollup/rollup-android-arm-eabi@4.46.2':
optional: true
@@ -8715,12 +8786,12 @@ snapshots:
'@shikijs/core': 3.9.2
'@shikijs/types': 3.9.2
- '@shikijs/twoslash@3.9.2(typescript@5.9.2)':
+ '@shikijs/twoslash@3.9.2(typescript@5.9.3)':
dependencies:
'@shikijs/core': 3.9.2
'@shikijs/types': 3.9.2
- twoslash: 0.3.3(typescript@5.9.2)
- typescript: 5.9.2
+ twoslash: 0.3.3(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -8750,35 +8821,35 @@ snapshots:
'@standard-schema/spec@1.0.0': {}
- '@stylelint-types/stylelint-order@7.0.0(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))':
+ '@stylelint-types/stylelint-order@7.0.0(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))':
dependencies:
- stylelint-define-config: 16.22.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint-define-config: 16.24.0(stylelint@16.25.0(typescript@5.9.3))
optionalDependencies:
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- '@stylelint-types/stylelint-scss@6.11.0(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))':
+ '@stylelint-types/stylelint-scss@6.11.0(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))':
dependencies:
- stylelint-define-config: 16.22.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint-define-config: 16.24.0(stylelint@16.25.0(typescript@5.9.3))
optionalDependencies:
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- '@stylelint-types/stylelint-stylistic@3.1.3(stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)))(stylelint@16.24.0(typescript@5.9.2))':
+ '@stylelint-types/stylelint-stylistic@3.1.3(stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)))(stylelint@16.25.0(typescript@5.9.3))':
dependencies:
- stylelint-define-config: 16.22.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint-define-config: 16.24.0(stylelint@16.25.0(typescript@5.9.3))
optionalDependencies:
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- '@stylistic/eslint-plugin@5.2.3(eslint@9.36.0(jiti@2.5.1))':
+ '@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1))':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
- '@typescript-eslint/types': 8.40.0
- eslint: 9.36.0(jiti@2.5.1)
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
+ '@typescript-eslint/types': 8.44.1
+ eslint: 9.37.0(jiti@2.5.1)
eslint-visitor-keys: 4.2.1
espree: 10.4.0
estraverse: 5.3.0
picomatch: 4.0.3
- '@stylistic/stylelint-plugin@4.0.0(stylelint@16.24.0(typescript@5.9.2))':
+ '@stylistic/stylelint-plugin@4.0.0(stylelint@16.25.0(typescript@5.9.3))':
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
@@ -8787,7 +8858,7 @@ snapshots:
postcss-selector-parser: 7.1.0
postcss-value-parser: 4.2.0
style-search: 0.1.0
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
'@svta/common-media-library@0.12.4': {}
@@ -8799,7 +8870,7 @@ snapshots:
'@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/chai@5.2.2':
dependencies:
@@ -8807,11 +8878,11 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/conventional-commits-parser@5.0.1':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.0
'@types/d3-array@3.2.1': {}
@@ -8940,7 +9011,7 @@ snapshots:
'@types/express-serve-static-core@5.0.7':
dependencies:
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/qs': 6.14.0
'@types/range-parser': 1.2.7
'@types/send': 0.17.5
@@ -8954,7 +9025,7 @@ snapshots:
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/geojson@7946.0.16': {}
@@ -8972,7 +9043,7 @@ snapshots:
'@types/jsonfile@6.1.4':
dependencies:
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/less@3.0.8': {}
@@ -9007,16 +9078,18 @@ snapshots:
'@types/node@17.0.45': {}
- '@types/node@24.3.1':
- dependencies:
- undici-types: 7.10.0
-
'@types/node@24.5.2':
dependencies:
undici-types: 7.12.0
+ '@types/node@24.7.0':
+ dependencies:
+ undici-types: 7.14.0
+
'@types/normalize-package-data@2.4.4': {}
+ '@types/picomatch@4.0.2': {}
+
'@types/qs@6.14.0': {}
'@types/range-parser@1.2.7': {}
@@ -9025,24 +9098,24 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/semver@7.7.0': {}
'@types/send@0.17.5':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/serve-static@1.15.8':
dependencies:
'@types/http-errors': 2.0.5
- '@types/node': 24.3.1
+ '@types/node': 24.5.2
'@types/send': 0.17.5
'@types/stylus@0.48.43':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.0
'@types/trusted-types@2.0.7': {}
@@ -9052,158 +9125,168 @@ snapshots:
'@types/webpack-env@1.18.8': {}
- '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
+ '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- '@typescript-eslint/scope-manager': 8.42.0
- '@typescript-eslint/type-utils': 8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.42.0
- eslint: 9.36.0(jiti@2.5.1)
+ '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.45.0
+ '@typescript-eslint/type-utils': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.45.0
+ eslint: 9.37.0(jiti@2.5.1)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
+ '@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.42.0
- '@typescript-eslint/types': 8.42.0
- '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.42.0
- debug: 4.4.1
- eslint: 9.36.0(jiti@2.5.1)
- typescript: 5.9.2
+ '@typescript-eslint/scope-manager': 8.45.0
+ '@typescript-eslint/types': 8.45.0
+ '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.45.0
+ debug: 4.4.3
+ eslint: 9.37.0(jiti@2.5.1)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)':
+ '@typescript-eslint/project-service@8.45.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.42.0
- debug: 4.4.1
- typescript: 5.9.2
+ '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.45.0
+ debug: 4.4.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)':
+ '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.44.0
- debug: 4.4.1
- typescript: 5.9.2
+ '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.0
+ debug: 4.4.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.42.0':
+ '@typescript-eslint/scope-manager@8.44.1':
dependencies:
- '@typescript-eslint/types': 8.42.0
- '@typescript-eslint/visitor-keys': 8.42.0
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/visitor-keys': 8.44.1
- '@typescript-eslint/scope-manager@8.44.0':
+ '@typescript-eslint/scope-manager@8.45.0':
dependencies:
- '@typescript-eslint/types': 8.44.0
- '@typescript-eslint/visitor-keys': 8.44.0
+ '@typescript-eslint/types': 8.45.0
+ '@typescript-eslint/visitor-keys': 8.45.0
- '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)':
+ '@typescript-eslint/scope-manager@8.46.0':
dependencies:
- typescript: 5.9.2
+ '@typescript-eslint/types': 8.46.0
+ '@typescript-eslint/visitor-keys': 8.46.0
- '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)':
+ '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.3)':
dependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@typescript-eslint/type-utils@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
+ '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.42.0
- '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
- '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- debug: 4.4.1
- eslint: 9.36.0(jiti@2.5.1)
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.45.0
+ '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.37.0(jiti@2.5.1)
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.40.0': {}
+ '@typescript-eslint/types@8.44.1': {}
- '@typescript-eslint/types@8.42.0': {}
+ '@typescript-eslint/types@8.45.0': {}
- '@typescript-eslint/types@8.44.0': {}
+ '@typescript-eslint/types@8.46.0': {}
- '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)':
+ '@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2)
- '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.42.0
- '@typescript-eslint/visitor-keys': 8.42.0
- debug: 4.4.1
+ '@typescript-eslint/project-service': 8.45.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.45.0
+ '@typescript-eslint/visitor-keys': 8.45.0
+ debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)':
+ '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2)
- '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.44.0
- '@typescript-eslint/visitor-keys': 8.44.0
- debug: 4.4.1
+ '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.0
+ '@typescript-eslint/visitor-keys': 8.46.0
+ debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
+ '@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
- '@typescript-eslint/scope-manager': 8.44.0
- '@typescript-eslint/types': 8.44.0
- '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2)
- eslint: 9.36.0(jiti@2.5.1)
- typescript: 5.9.2
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
+ '@typescript-eslint/scope-manager': 8.46.0
+ '@typescript-eslint/types': 8.46.0
+ '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
+ eslint: 9.37.0(jiti@2.5.1)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.42.0':
+ '@typescript-eslint/visitor-keys@8.44.1':
dependencies:
- '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/types': 8.44.1
eslint-visitor-keys: 4.2.1
- '@typescript-eslint/visitor-keys@8.44.0':
+ '@typescript-eslint/visitor-keys@8.45.0':
dependencies:
- '@typescript-eslint/types': 8.44.0
+ '@typescript-eslint/types': 8.45.0
eslint-visitor-keys: 4.2.1
- '@typescript/vfs@1.6.1(typescript@5.9.2)':
+ '@typescript-eslint/visitor-keys@8.46.0':
+ dependencies:
+ '@typescript-eslint/types': 8.46.0
+ eslint-visitor-keys: 4.2.1
+
+ '@typescript/vfs@1.6.1(typescript@5.9.3)':
dependencies:
debug: 4.4.1
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@ungap/structured-clone@1.3.0': {}
- '@vitejs/plugin-vue@6.0.1(vite@7.0.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))':
+ '@vitejs/plugin-vue@6.0.1(vite@7.0.6(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
- vite: 7.0.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
- vue: 3.5.21(typescript@5.9.2)
+ vite: 7.0.6(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
+ vue: 3.5.22(typescript@5.9.3)
- '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))':
+ '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))':
dependencies:
'@istanbuljs/schema': 0.1.3
debug: 4.4.1
@@ -9215,18 +9298,18 @@ snapshots:
magicast: 0.3.5
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
- '@vitest/eslint-plugin@1.3.8(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))':
+ '@vitest/eslint-plugin@1.3.15(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))':
dependencies:
- '@typescript-eslint/scope-manager': 8.42.0
- '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- eslint: 9.36.0(jiti@2.5.1)
+ '@typescript-eslint/scope-manager': 8.44.1
+ '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ eslint: 9.37.0(jiti@2.5.1)
optionalDependencies:
- typescript: 5.9.2
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ typescript: 5.9.3
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -9238,13 +9321,13 @@ snapshots:
chai: 5.2.1
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(vite@7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ vite: 7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -9290,10 +9373,10 @@ snapshots:
estree-walker: 2.0.2
source-map-js: 1.2.1
- '@vue/compiler-core@3.5.21':
+ '@vue/compiler-core@3.5.22':
dependencies:
- '@babel/parser': 7.28.3
- '@vue/shared': 3.5.21
+ '@babel/parser': 7.28.4
+ '@vue/shared': 3.5.22
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
@@ -9303,27 +9386,27 @@ snapshots:
'@vue/compiler-core': 3.5.18
'@vue/shared': 3.5.18
- '@vue/compiler-dom@3.5.21':
+ '@vue/compiler-dom@3.5.22':
dependencies:
- '@vue/compiler-core': 3.5.21
- '@vue/shared': 3.5.21
+ '@vue/compiler-core': 3.5.22
+ '@vue/shared': 3.5.22
- '@vue/compiler-sfc@3.5.21':
+ '@vue/compiler-sfc@3.5.22':
dependencies:
- '@babel/parser': 7.28.3
- '@vue/compiler-core': 3.5.21
- '@vue/compiler-dom': 3.5.21
- '@vue/compiler-ssr': 3.5.21
- '@vue/shared': 3.5.21
+ '@babel/parser': 7.28.4
+ '@vue/compiler-core': 3.5.22
+ '@vue/compiler-dom': 3.5.22
+ '@vue/compiler-ssr': 3.5.22
+ '@vue/shared': 3.5.22
estree-walker: 2.0.2
- magic-string: 0.30.18
+ magic-string: 0.30.19
postcss: 8.5.6
source-map-js: 1.2.1
- '@vue/compiler-ssr@3.5.21':
+ '@vue/compiler-ssr@3.5.22':
dependencies:
- '@vue/compiler-dom': 3.5.21
- '@vue/shared': 3.5.21
+ '@vue/compiler-dom': 3.5.22
+ '@vue/shared': 3.5.22
'@vue/compiler-vue2@2.7.16':
dependencies:
@@ -9350,7 +9433,7 @@ snapshots:
dependencies:
rfdc: 1.4.1
- '@vue/language-core@3.0.5(typescript@5.9.2)':
+ '@vue/language-core@3.0.5(typescript@5.9.3)':
dependencies:
'@volar/language-core': 2.4.22
'@vue/compiler-dom': 3.5.18
@@ -9361,40 +9444,40 @@ snapshots:
path-browserify: 1.0.1
picomatch: 4.0.3
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@vue/reactivity@3.5.21':
+ '@vue/reactivity@3.5.22':
dependencies:
- '@vue/shared': 3.5.21
+ '@vue/shared': 3.5.22
- '@vue/runtime-core@3.5.21':
+ '@vue/runtime-core@3.5.22':
dependencies:
- '@vue/reactivity': 3.5.21
- '@vue/shared': 3.5.21
+ '@vue/reactivity': 3.5.22
+ '@vue/shared': 3.5.22
- '@vue/runtime-dom@3.5.21':
+ '@vue/runtime-dom@3.5.22':
dependencies:
- '@vue/reactivity': 3.5.21
- '@vue/runtime-core': 3.5.21
- '@vue/shared': 3.5.21
+ '@vue/reactivity': 3.5.22
+ '@vue/runtime-core': 3.5.22
+ '@vue/shared': 3.5.22
csstype: 3.1.3
- '@vue/server-renderer@3.5.21(vue@3.5.21(typescript@5.9.2))':
+ '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))':
dependencies:
- '@vue/compiler-ssr': 3.5.21
- '@vue/shared': 3.5.21
- vue: 3.5.21(typescript@5.9.2)
+ '@vue/compiler-ssr': 3.5.22
+ '@vue/shared': 3.5.22
+ vue: 3.5.22(typescript@5.9.3)
'@vue/shared@3.5.18': {}
- '@vue/shared@3.5.21': {}
+ '@vue/shared@3.5.22': {}
- '@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1)':
+ '@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1)':
dependencies:
- '@vitejs/plugin-vue': 6.0.1(vite@7.0.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
- '@vuepress/bundlerutils': 2.0.0-rc.24(typescript@5.9.2)
- '@vuepress/client': 2.0.0-rc.24(typescript@5.9.2)
- '@vuepress/core': 2.0.0-rc.24(typescript@5.9.2)
+ '@vitejs/plugin-vue': 6.0.1(vite@7.0.6(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))
+ '@vuepress/bundlerutils': 2.0.0-rc.24(typescript@5.9.3)
+ '@vuepress/client': 2.0.0-rc.24(typescript@5.9.3)
+ '@vuepress/core': 2.0.0-rc.24(typescript@5.9.3)
'@vuepress/shared': 2.0.0-rc.24
'@vuepress/utils': 2.0.0-rc.24
autoprefixer: 10.4.21(postcss@8.5.6)
@@ -9402,9 +9485,9 @@ snapshots:
postcss: 8.5.6
postcss-load-config: 6.0.1(jiti@2.5.1)(postcss@8.5.6)(yaml@2.8.1)
rollup: 4.46.2
- vite: 7.0.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
- vue: 3.5.21(typescript@5.9.2)
- vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2))
+ vite: 7.0.6(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
+ vue: 3.5.22(typescript@5.9.3)
+ vue-router: 4.5.1(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -9420,21 +9503,21 @@ snapshots:
- typescript
- yaml
- '@vuepress/bundlerutils@2.0.0-rc.24(typescript@5.9.2)':
+ '@vuepress/bundlerutils@2.0.0-rc.24(typescript@5.9.3)':
dependencies:
- '@vuepress/client': 2.0.0-rc.24(typescript@5.9.2)
- '@vuepress/core': 2.0.0-rc.24(typescript@5.9.2)
+ '@vuepress/client': 2.0.0-rc.24(typescript@5.9.3)
+ '@vuepress/core': 2.0.0-rc.24(typescript@5.9.3)
'@vuepress/shared': 2.0.0-rc.24
'@vuepress/utils': 2.0.0-rc.24
- vue: 3.5.21(typescript@5.9.2)
- vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vue-router: 4.5.1(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- supports-color
- typescript
- '@vuepress/cli@2.0.0-rc.24(typescript@5.9.2)':
+ '@vuepress/cli@2.0.0-rc.24(typescript@5.9.3)':
dependencies:
- '@vuepress/core': 2.0.0-rc.24(typescript@5.9.2)
+ '@vuepress/core': 2.0.0-rc.24(typescript@5.9.3)
'@vuepress/shared': 2.0.0-rc.24
'@vuepress/utils': 2.0.0-rc.24
cac: 6.7.14
@@ -9445,44 +9528,44 @@ snapshots:
- supports-color
- typescript
- '@vuepress/client@2.0.0-rc.24(typescript@5.9.2)':
+ '@vuepress/client@2.0.0-rc.24(typescript@5.9.3)':
dependencies:
'@vue/devtools-api': 7.7.7
'@vue/devtools-kit': 7.7.7
'@vuepress/shared': 2.0.0-rc.24
- vue: 3.5.21(typescript@5.9.2)
- vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vue-router: 4.5.1(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/core@2.0.0-rc.24(typescript@5.9.2)':
+ '@vuepress/core@2.0.0-rc.24(typescript@5.9.3)':
dependencies:
- '@vuepress/client': 2.0.0-rc.24(typescript@5.9.2)
+ '@vuepress/client': 2.0.0-rc.24(typescript@5.9.3)
'@vuepress/markdown': 2.0.0-rc.24
'@vuepress/shared': 2.0.0-rc.24
'@vuepress/utils': 2.0.0-rc.24
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
- typescript
- '@vuepress/helper@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/helper@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@vue/shared': 3.5.18
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
cheerio: 1.1.2
fflate: 0.8.2
gray-matter: 4.0.3
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/highlighter-helper@2.0.0-rc.112(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2)))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/highlighter-helper@2.0.0-rc.112(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3)))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
optionalDependencies:
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
'@vuepress/markdown@2.0.0-rc.24':
dependencies:
@@ -9505,41 +9588,41 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@vuepress/plugin-cache@2.0.0-rc.112(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-cache@2.0.0-rc.112(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
ci-info: 4.3.0
- lru-cache: 11.1.0
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ lru-cache: 11.2.1
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
- '@vuepress/plugin-comment@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-comment@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
giscus: 1.6.0
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-copy-code@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-copy-code@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-docsearch@2.0.0-rc.112(@algolia/client-search@5.35.0)(search-insights@2.17.3)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-docsearch@2.0.0-rc.112(@algolia/client-search@5.35.0)(search-insights@2.17.3)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@docsearch/css': 3.9.0
'@docsearch/js': 3.9.0(@algolia/client-search@5.35.0)(search-insights@2.17.3)
'@docsearch/react': 3.9.0(@algolia/client-search@5.35.0)(search-insights@2.17.3)
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
ts-debounce: 4.0.0
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- '@algolia/client-search'
- '@types/react'
@@ -9548,42 +9631,42 @@ snapshots:
- search-insights
- typescript
- '@vuepress/plugin-git@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-git@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
rehype-parse: 9.0.1
rehype-sanitize: 6.0.0
rehype-stringify: 10.0.1
unified: 11.0.5
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-llms@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-llms@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
byte-size: 9.0.1
gray-matter: 4.0.3
millify: 6.1.0
remark: 15.0.1
tokenx: 1.1.0
unist-util-remove: 4.0.0
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- '@75lb/nature'
- supports-color
- typescript
- '@vuepress/plugin-markdown-chart@2.0.0-rc.112(chart.js@4.5.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.12.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-markdown-chart@2.0.0-rc.112(chart.js@4.5.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.12.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@mdit/plugin-container': 0.22.1(markdown-it@14.1.0)
'@mdit/plugin-plantuml': 0.22.2(markdown-it@14.1.0)
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
optionalDependencies:
chart.js: 4.5.0
flowchart.ts: 3.0.1
@@ -9595,128 +9678,128 @@ snapshots:
- markdown-it
- typescript
- '@vuepress/plugin-markdown-hint@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-markdown-hint@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@mdit/plugin-alert': 0.22.2(markdown-it@14.1.0)
'@mdit/plugin-container': 0.22.1(markdown-it@14.1.0)
'@types/markdown-it': 14.1.2
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- markdown-it
- typescript
- vue
- '@vuepress/plugin-markdown-image@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-markdown-image@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@mdit/plugin-figure': 0.22.1(markdown-it@14.1.0)
'@mdit/plugin-img-lazyload': 0.22.1(markdown-it@14.1.0)
'@mdit/plugin-img-mark': 0.22.1(markdown-it@14.1.0)
'@mdit/plugin-img-size': 0.22.2(markdown-it@14.1.0)
'@types/markdown-it': 14.1.2
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- markdown-it
- typescript
- '@vuepress/plugin-markdown-include@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-markdown-include@2.0.0-rc.112(markdown-it@14.1.0)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@mdit/plugin-include': 0.22.1(markdown-it@14.1.0)
'@types/markdown-it': 14.1.2
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- markdown-it
- typescript
- '@vuepress/plugin-markdown-math@2.0.0-rc.112(katex@0.16.22)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-markdown-math@2.0.0-rc.112(katex@0.16.23)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@mdit/plugin-katex-slim': 0.23.1(katex@0.16.22)(markdown-it@14.1.0)
+ '@mdit/plugin-katex-slim': 0.23.1(katex@0.16.23)(markdown-it@14.1.0)
'@mdit/plugin-mathjax-slim': 0.23.1(markdown-it@14.1.0)(mathjax-full@3.2.2)
'@types/markdown-it': 14.1.2
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
optionalDependencies:
- katex: 0.16.22
+ katex: 0.16.23
mathjax-full: 3.2.2
transitivePeerDependencies:
- markdown-it
- typescript
- '@vuepress/plugin-nprogress@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-nprogress@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-photo-swipe@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-photo-swipe@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
photoswipe: 5.4.4
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-reading-time@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-reading-time@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-replace-assets@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-replace-assets@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
magic-string: 0.30.17
unplugin: 2.3.5
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-seo@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-seo@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-shiki@2.0.0-rc.112(@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))))(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2)))(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-shiki@2.0.0-rc.112(@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))))(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
'@shikijs/transformers': 3.9.2
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vuepress/highlighter-helper': 2.0.0-rc.112(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2)))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- nanoid: 5.1.5
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vuepress/highlighter-helper': 2.0.0-rc.112(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3)))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ nanoid: 5.1.6
shiki: 3.12.2
synckit: 0.11.11
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
optionalDependencies:
- '@vuepress/shiki-twoslash': 2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ '@vuepress/shiki-twoslash': 2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
transitivePeerDependencies:
- '@vueuse/core'
- typescript
- '@vuepress/plugin-sitemap@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-sitemap@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
sitemap: 8.0.0
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- typescript
- '@vuepress/plugin-watermark@2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/plugin-watermark@2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
watermark-js-plus: 1.6.3
transitivePeerDependencies:
- typescript
@@ -9725,17 +9808,17 @@ snapshots:
dependencies:
'@mdit-vue/types': 2.1.4
- '@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))':
+ '@vuepress/shiki-twoslash@2.0.0-rc.112(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))':
dependencies:
- '@shikijs/twoslash': 3.9.2(typescript@5.9.2)
- '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.2)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)))
- floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.21(typescript@5.9.2))
+ '@shikijs/twoslash': 3.9.2(typescript@5.9.3)
+ '@vuepress/helper': 2.0.0-rc.112(typescript@5.9.3)(vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)))
+ floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.22(typescript@5.9.3))
mdast-util-from-markdown: 2.0.2
mdast-util-gfm: 3.1.0
mdast-util-to-hast: 13.2.0
- twoslash: 0.3.3(typescript@5.9.2)
- twoslash-vue: 0.3.3(typescript@5.9.2)
- vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))
+ twoslash: 0.3.3(typescript@5.9.3)
+ twoslash-vue: 0.3.3(typescript@5.9.3)
+ vuepress: 2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
@@ -9758,18 +9841,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2))':
+ '@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 13.9.0
- '@vueuse/shared': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
+ '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
- '@vueuse/integrations@13.9.0(axios@1.12.2)(change-case@5.4.4)(focus-trap@7.6.5)(vue@3.5.21(typescript@5.9.2))':
+ '@vueuse/integrations@13.9.0(axios@1.12.2)(change-case@5.4.4)(focus-trap@7.6.5)(vue@3.5.22(typescript@5.9.3))':
dependencies:
- '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2))
- '@vueuse/shared': 13.9.0(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
+ '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
optionalDependencies:
axios: 1.12.2
change-case: 5.4.4
@@ -9777,9 +9860,9 @@ snapshots:
'@vueuse/metadata@13.9.0': {}
- '@vueuse/shared@13.9.0(vue@3.5.21(typescript@5.9.2))':
+ '@vueuse/shared@13.9.0(vue@3.5.22(typescript@5.9.3))':
dependencies:
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
'@xmldom/xmldom@0.9.8': {}
@@ -9851,7 +9934,7 @@ snapshots:
ansi-styles@6.2.1: {}
- ansis@4.1.0: {}
+ ansis@4.2.0: {}
anymatch@3.1.3:
dependencies:
@@ -10033,11 +10116,11 @@ snapshots:
builtin-modules@5.0.0: {}
- bumpp@10.2.3(magicast@0.3.5):
+ bumpp@10.3.1(magicast@0.3.5):
dependencies:
- ansis: 4.1.0
+ ansis: 4.2.0
args-tokenizer: 0.3.0
- c12: 3.2.0(magicast@0.3.5)
+ c12: 3.3.0(magicast@0.3.5)
cac: 6.7.14
escalade: 3.2.0
jsonc-parser: 3.3.1
@@ -10051,19 +10134,19 @@ snapshots:
byte-size@9.0.1: {}
- c12@3.2.0(magicast@0.3.5):
+ c12@3.3.0(magicast@0.3.5):
dependencies:
chokidar: 4.0.3
confbox: 0.2.2
defu: 6.1.4
- dotenv: 17.2.1
+ dotenv: 17.2.3
exsolve: 1.0.7
giget: 2.0.0
jiti: 2.5.1
ohash: 2.0.11
pathe: 2.0.3
- perfect-debounce: 1.0.0
- pkg-types: 2.2.0
+ perfect-debounce: 2.0.0
+ pkg-types: 2.3.0
rc9: 2.1.2
optionalDependencies:
magicast: 0.3.5
@@ -10226,10 +10309,10 @@ snapshots:
cli-spinners@2.9.2: {}
- cli-truncate@4.0.0:
+ cli-truncate@5.1.0:
dependencies:
- slice-ansi: 5.0.0
- string-width: 7.2.0
+ slice-ansi: 7.1.0
+ string-width: 8.1.0
cli-width@3.0.0: {}
@@ -10269,7 +10352,7 @@ snapshots:
commander@13.1.0: {}
- commander@14.0.0: {}
+ commander@14.0.1: {}
commander@7.2.0: {}
@@ -10277,10 +10360,10 @@ snapshots:
comment-parser@1.4.1: {}
- commitizen@4.3.1(@types/node@24.5.2)(typescript@5.9.2):
+ commitizen@4.3.1(@types/node@24.7.0)(typescript@5.9.3):
dependencies:
cachedir: 2.3.0
- cz-conventional-changelog: 3.3.0(@types/node@24.5.2)(typescript@5.9.2)
+ cz-conventional-changelog: 3.3.0(@types/node@24.7.0)(typescript@5.9.3)
dedent: 0.7.0
detect-indent: 6.1.0
find-node-modules: 2.1.3
@@ -10434,21 +10517,21 @@ snapshots:
dependencies:
layout-base: 2.0.1
- cosmiconfig-typescript-loader@6.1.0(@types/node@24.5.2)(cosmiconfig@9.0.0(typescript@5.9.2))(typescript@5.9.2):
+ cosmiconfig-typescript-loader@6.1.0(@types/node@24.7.0)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3):
dependencies:
- '@types/node': 24.5.2
- cosmiconfig: 9.0.0(typescript@5.9.2)
+ '@types/node': 24.7.0
+ cosmiconfig: 9.0.0(typescript@5.9.3)
jiti: 2.5.1
- typescript: 5.9.2
+ typescript: 5.9.3
- cosmiconfig@9.0.0(typescript@5.9.2):
+ cosmiconfig@9.0.0(typescript@5.9.3):
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.1
js-yaml: 4.1.0
parse-json: 5.2.0
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
cpx2@8.0.0:
dependencies:
@@ -10468,10 +10551,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- create-filter@1.1.0:
- dependencies:
- picomatch: 4.0.3
-
cross-env@7.0.3:
dependencies:
cross-spawn: 7.0.6
@@ -10515,16 +10594,16 @@ snapshots:
cytoscape@3.33.0: {}
- cz-conventional-changelog@3.3.0(@types/node@24.5.2)(typescript@5.9.2):
+ cz-conventional-changelog@3.3.0(@types/node@24.7.0)(typescript@5.9.3):
dependencies:
chalk: 2.4.2
- commitizen: 4.3.1(@types/node@24.5.2)(typescript@5.9.2)
+ commitizen: 4.3.1(@types/node@24.7.0)(typescript@5.9.3)
conventional-commit-types: 3.0.0
lodash.map: 4.6.0
longest: 2.0.1
word-wrap: 1.2.5
optionalDependencies:
- '@commitlint/load': 19.8.1(@types/node@24.5.2)(typescript@5.9.2)
+ '@commitlint/load': 19.8.1(@types/node@24.7.0)(typescript@5.9.3)
transitivePeerDependencies:
- '@types/node'
- typescript
@@ -10799,6 +10878,8 @@ snapshots:
dependencies:
dequal: 2.0.3
+ diff-sequences@27.5.1: {}
+
diff@8.0.2: {}
dir-glob@3.0.1:
@@ -10831,7 +10912,7 @@ snapshots:
dependencies:
is-obj: 2.0.0
- dotenv@17.2.1: {}
+ dotenv@17.2.3: {}
dts-resolver@2.1.2: {}
@@ -11012,90 +11093,93 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-compat-utils@0.5.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-compat-utils@0.5.1(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
semver: 7.7.2
- eslint-compat-utils@0.6.5(eslint@9.36.0(jiti@2.5.1)):
+ eslint-compat-utils@0.6.5(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
semver: 7.7.2
- eslint-config-flat-gitignore@2.1.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-config-flat-gitignore@2.1.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@eslint/compat': 1.3.2(eslint@9.36.0(jiti@2.5.1))
- eslint: 9.36.0(jiti@2.5.1)
+ '@eslint/compat': 1.3.2(eslint@9.37.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
- eslint-flat-config-utils@2.1.1:
+ eslint-flat-config-utils@2.1.4:
dependencies:
pathe: 2.0.3
- eslint-json-compat-utils@0.2.1(eslint@9.36.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0):
+ eslint-json-compat-utils@0.2.1(eslint@9.37.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.1):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
esquery: 1.6.0
- jsonc-eslint-parser: 2.4.0
+ jsonc-eslint-parser: 2.4.1
- eslint-merge-processors@2.0.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-merge-processors@2.0.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
- eslint-plugin-antfu@3.1.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-antfu@3.1.1(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
- eslint-plugin-command@3.3.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-command@3.3.1(eslint@9.37.0(jiti@2.5.1)):
dependencies:
'@es-joy/jsdoccomment': 0.50.2
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
- eslint-plugin-es-x@7.8.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-es-x@7.8.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
'@eslint-community/regexpp': 4.12.1
- eslint: 9.36.0(jiti@2.5.1)
- eslint-compat-utils: 0.5.1(eslint@9.36.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-compat-utils: 0.5.1(eslint@9.37.0(jiti@2.5.1))
- eslint-plugin-import-lite@0.3.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2):
+ eslint-plugin-import-lite@0.3.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
- '@typescript-eslint/types': 8.40.0
- eslint: 9.36.0(jiti@2.5.1)
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
+ '@typescript-eslint/types': 8.44.1
+ eslint: 9.37.0(jiti@2.5.1)
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- eslint-plugin-jsdoc@54.3.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-jsdoc@60.8.1(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@es-joy/jsdoccomment': 0.53.0
+ '@es-joy/jsdoccomment': 0.68.1
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.4.1
+ debug: 4.4.3
escape-string-regexp: 4.0.0
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
espree: 10.4.0
esquery: 1.6.0
+ html-entities: 2.6.0
+ object-deep-merge: 1.0.5
parse-imports-exports: 0.2.4
semver: 7.7.2
spdx-expression-parse: 4.0.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsonc@2.20.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-jsonc@2.21.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
- eslint: 9.36.0(jiti@2.5.1)
- eslint-compat-utils: 0.6.5(eslint@9.36.0(jiti@2.5.1))
- eslint-json-compat-utils: 0.2.1(eslint@9.36.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0)
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
+ diff-sequences: 27.5.1
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.5.1))
+ eslint-json-compat-utils: 0.2.1(eslint@9.37.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.1)
espree: 10.4.0
graphemer: 1.4.0
- jsonc-eslint-parser: 2.4.0
+ jsonc-eslint-parser: 2.4.1
natural-compare: 1.4.0
synckit: 0.11.11
transitivePeerDependencies:
- '@eslint/json'
- eslint-plugin-jsx-a11y@6.10.2(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-jsx-a11y@6.10.2(eslint@9.37.0(jiti@2.5.1)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
@@ -11105,7 +11189,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -11114,77 +11198,77 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
- eslint-plugin-n@17.21.3(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2):
+ eslint-plugin-n@17.23.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
enhanced-resolve: 5.18.3
- eslint: 9.36.0(jiti@2.5.1)
- eslint-plugin-es-x: 7.8.0(eslint@9.36.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-plugin-es-x: 7.8.0(eslint@9.37.0(jiti@2.5.1))
get-tsconfig: 4.10.1
globals: 15.15.0
globrex: 0.1.2
ignore: 5.3.2
semver: 7.7.2
- ts-declaration-location: 1.0.7(typescript@5.9.2)
+ ts-declaration-location: 1.0.7(typescript@5.9.3)
transitivePeerDependencies:
- typescript
eslint-plugin-no-only-tests@3.3.0: {}
- eslint-plugin-perfectionist@4.15.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2):
+ eslint-plugin-perfectionist@4.15.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
- eslint: 9.36.0(jiti@2.5.1)
+ '@typescript-eslint/types': 8.44.1
+ '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
+ eslint: 9.37.0(jiti@2.5.1)
natural-orderby: 5.0.0
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-pnpm@1.1.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-pnpm@1.2.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
empathic: 2.0.0
- eslint: 9.36.0(jiti@2.5.1)
- jsonc-eslint-parser: 2.4.0
+ eslint: 9.37.0(jiti@2.5.1)
+ jsonc-eslint-parser: 2.4.1
pathe: 2.0.3
- pnpm-workspace-yaml: 1.1.1
+ pnpm-workspace-yaml: 1.2.0
tinyglobby: 0.2.15
yaml-eslint-parser: 1.3.0
- eslint-plugin-regexp@2.10.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-regexp@2.10.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
'@eslint-community/regexpp': 4.12.1
comment-parser: 1.4.1
- eslint: 9.36.0(jiti@2.5.1)
- jsdoc-type-pratt-parser: 4.1.0
+ eslint: 9.37.0(jiti@2.5.1)
+ jsdoc-type-pratt-parser: 4.8.0
refa: 0.12.1
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
- eslint-plugin-toml@0.12.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-toml@0.12.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1
- eslint: 9.36.0(jiti@2.5.1)
- eslint-compat-utils: 0.6.5(eslint@9.36.0(jiti@2.5.1))
+ debug: 4.4.3
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.5.1))
lodash: 4.17.21
toml-eslint-parser: 0.10.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-unicorn@60.0.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-unicorn@61.0.2(eslint@9.37.0(jiti@2.5.1)):
dependencies:
'@babel/helper-validator-identifier': 7.27.1
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
'@eslint/plugin-kit': 0.3.5
change-case: 5.4.4
ci-info: 4.3.0
clean-regexp: 1.0.0
core-js-compat: 3.45.0
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
esquery: 1.6.0
find-up-simple: 1.0.1
- globals: 16.3.0
+ globals: 16.4.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
jsesc: 3.1.0
@@ -11194,49 +11278,51 @@ snapshots:
semver: 7.7.2
strip-indent: 4.0.0
- eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- eslint: 9.36.0(jiti@2.5.1)
+ eslint: 9.37.0(jiti@2.5.1)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
+ '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
- eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1))):
+ eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.5.1)))(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1))):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0(jiti@2.5.1))
- eslint: 9.36.0(jiti@2.5.1)
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.2
semver: 7.7.2
- vue-eslint-parser: 10.2.0(eslint@9.36.0(jiti@2.5.1))
+ vue-eslint-parser: 10.2.0(eslint@9.37.0(jiti@2.5.1))
xml-name-validator: 4.0.0
optionalDependencies:
- '@typescript-eslint/parser': 8.42.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
+ '@stylistic/eslint-plugin': 5.4.0(eslint@9.37.0(jiti@2.5.1))
+ '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)
- eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-vuejs-accessibility@2.4.1(eslint@9.37.0(jiti@2.5.1)):
dependencies:
aria-query: 5.3.2
emoji-regex: 10.4.0
- eslint: 9.36.0(jiti@2.5.1)
- vue-eslint-parser: 9.4.3(eslint@9.36.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
+ vue-eslint-parser: 9.4.3(eslint@9.37.0(jiti@2.5.1))
transitivePeerDependencies:
- supports-color
- eslint-plugin-yml@1.18.0(eslint@9.36.0(jiti@2.5.1)):
+ eslint-plugin-yml@1.19.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
+ diff-sequences: 27.5.1
escape-string-regexp: 4.0.0
- eslint: 9.36.0(jiti@2.5.1)
- eslint-compat-utils: 0.6.5(eslint@9.36.0(jiti@2.5.1))
+ eslint: 9.37.0(jiti@2.5.1)
+ eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.5.1))
natural-compare: 1.4.0
yaml-eslint-parser: 1.3.0
transitivePeerDependencies:
- supports-color
- eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.36.0(jiti@2.5.1)):
+ eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- '@vue/compiler-sfc': 3.5.21
- eslint: 9.36.0(jiti@2.5.1)
+ '@vue/compiler-sfc': 3.5.22
+ eslint: 9.37.0(jiti@2.5.1)
eslint-scope@7.2.2:
dependencies:
@@ -11252,16 +11338,16 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.36.0(jiti@2.5.1):
+ eslint@9.37.0(jiti@2.5.1):
dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.5.1))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.21.0
- '@eslint/config-helpers': 0.3.1
- '@eslint/core': 0.15.2
+ '@eslint/config-helpers': 0.4.0
+ '@eslint/core': 0.16.0
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.36.0
- '@eslint/plugin-kit': 0.3.5
+ '@eslint/js': 9.37.0
+ '@eslint/plugin-kit': 0.4.0
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
@@ -11270,7 +11356,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1
+ debug: 4.4.3
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -11448,11 +11534,11 @@ snapshots:
flatted@3.3.3: {}
- floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.21(typescript@5.9.2)):
+ floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.22(typescript@5.9.3)):
dependencies:
'@floating-ui/dom': 1.1.1
- vue: 3.5.21(typescript@5.9.2)
- vue-resize: 2.0.0-alpha.1(vue@3.5.21(typescript@5.9.2))
+ vue: 3.5.22(typescript@5.9.3)
+ vue-resize: 2.0.0-alpha.1(vue@3.5.22(typescript@5.9.3))
flowchart.ts@3.0.1:
dependencies:
@@ -11664,7 +11750,7 @@ snapshots:
globals@15.15.0: {}
- globals@16.3.0: {}
+ globals@16.4.0: {}
globalthis@1.0.4:
dependencies:
@@ -11803,7 +11889,7 @@ snapshots:
highlight.js@11.11.1: {}
- hls.js@1.6.12: {}
+ hls.js@1.6.13: {}
homedir-polyfill@1.0.3:
dependencies:
@@ -12033,8 +12119,6 @@ snapshots:
is-fullwidth-code-point@3.0.0: {}
- is-fullwidth-code-point@4.0.0: {}
-
is-fullwidth-code-point@5.0.0:
dependencies:
get-east-asian-width: 1.3.0
@@ -12202,6 +12286,8 @@ snapshots:
jsdoc-type-pratt-parser@4.8.0: {}
+ jsdoc-type-pratt-parser@6.3.3: {}
+
jsesc@3.0.2: {}
jsesc@3.1.0: {}
@@ -12218,7 +12304,7 @@ snapshots:
json5@2.2.3: {}
- jsonc-eslint-parser@2.4.0:
+ jsonc-eslint-parser@2.4.1:
dependencies:
acorn: 8.15.0
eslint-visitor-keys: 3.4.3
@@ -12246,6 +12332,10 @@ snapshots:
dependencies:
commander: 8.3.0
+ katex@0.16.23:
+ dependencies:
+ commander: 8.3.0
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -12286,7 +12376,7 @@ snapshots:
dependencies:
invert-kv: 3.0.1
- less@4.4.1:
+ less@4.4.2:
dependencies:
copy-anything: 2.0.6
parse-node-version: 1.0.1
@@ -12317,24 +12407,19 @@ snapshots:
dependencies:
uc.micro: 2.1.0
- lint-staged@16.1.6:
+ lint-staged@16.2.3:
dependencies:
- chalk: 5.6.0
- commander: 14.0.0
- debug: 4.4.1
- lilconfig: 3.1.3
- listr2: 9.0.3
+ commander: 14.0.1
+ listr2: 9.0.4
micromatch: 4.0.8
- nano-spawn: 1.0.2
+ nano-spawn: 1.0.3
pidtree: 0.6.0
string-argv: 0.3.2
yaml: 2.8.1
- transitivePeerDependencies:
- - supports-color
- listr2@9.0.3:
+ listr2@9.0.4:
dependencies:
- cli-truncate: 4.0.0
+ cli-truncate: 5.1.0
colorette: 2.0.20
eventemitter3: 5.0.1
log-update: 6.1.0
@@ -12427,10 +12512,10 @@ snapshots:
lru-cache@10.4.3: {}
- lru-cache@11.1.0: {}
-
lru-cache@11.2.1: {}
+ lru-cache@11.2.2: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -12439,10 +12524,6 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
- magic-string@0.30.18:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
-
magic-string@0.30.19:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -12678,7 +12759,7 @@ snapshots:
mdurl@2.0.0: {}
- memfs@4.42.0:
+ memfs@4.49.0:
dependencies:
'@jsonjoy.com/json-pack': 1.11.0(tslib@2.8.1)
'@jsonjoy.com/util': 1.9.0(tslib@2.8.1)
@@ -12985,13 +13066,11 @@ snapshots:
mute-stream@0.0.8: {}
- nano-spawn@1.0.2: {}
-
nano-spawn@1.0.3: {}
nanoid@3.3.11: {}
- nanoid@5.1.5: {}
+ nanoid@5.1.6: {}
nanopop@2.4.2: {}
@@ -13035,9 +13114,13 @@ snapshots:
citty: 0.1.6
consola: 3.4.2
pathe: 2.0.3
- pkg-types: 2.2.0
+ pkg-types: 2.3.0
tinyexec: 1.0.1
+ object-deep-merge@1.0.5:
+ dependencies:
+ type-fest: 4.2.0
+
object-inspect@1.13.4: {}
object-keys@1.1.1: {}
@@ -13160,6 +13243,8 @@ snapshots:
package-manager-detector@1.3.0: {}
+ package-manager-detector@1.4.0: {}
+
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@@ -13223,21 +13308,21 @@ snapshots:
path-scurry@2.0.0:
dependencies:
- lru-cache: 11.1.0
+ lru-cache: 11.2.1
minipass: 7.1.2
path-type@4.0.0: {}
path-type@6.0.0: {}
- pathe@1.1.2: {}
-
pathe@2.0.3: {}
pathval@2.0.1: {}
perfect-debounce@1.0.0: {}
+ perfect-debounce@2.0.0: {}
+
photoswipe@5.4.4: {}
picocolors@1.1.1: {}
@@ -13257,12 +13342,6 @@ snapshots:
mlly: 1.7.4
pathe: 2.0.3
- pkg-types@2.2.0:
- dependencies:
- confbox: 0.2.2
- exsolve: 1.0.7
- pathe: 2.0.3
-
pkg-types@2.3.0:
dependencies:
confbox: 0.2.2
@@ -13271,7 +13350,7 @@ snapshots:
pluralize@8.0.0: {}
- pnpm-workspace-yaml@1.1.1:
+ pnpm-workspace-yaml@1.2.0:
dependencies:
yaml: 2.8.1
@@ -13361,7 +13440,7 @@ snapshots:
punycode@2.3.1: {}
- pyodide@0.28.2:
+ pyodide@0.28.3:
dependencies:
ws: 8.18.3
transitivePeerDependencies:
@@ -13541,7 +13620,7 @@ snapshots:
robust-predicates@3.0.2: {}
- rolldown-plugin-dts@0.16.6(rolldown@1.0.0-beta.38)(typescript@5.9.2):
+ rolldown-plugin-dts@0.16.8(rolldown@1.0.0-beta.42)(typescript@5.9.3):
dependencies:
'@babel/generator': 7.28.3
'@babel/parser': 7.28.4
@@ -13552,33 +13631,33 @@ snapshots:
dts-resolver: 2.1.2
get-tsconfig: 4.10.1
magic-string: 0.30.19
- rolldown: 1.0.0-beta.38
+ rolldown: 1.0.0-beta.42
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- oxc-resolver
- supports-color
- rolldown@1.0.0-beta.38:
+ rolldown@1.0.0-beta.42:
dependencies:
- '@oxc-project/types': 0.89.0
- '@rolldown/pluginutils': 1.0.0-beta.38
- ansis: 4.1.0
+ '@oxc-project/types': 0.94.0
+ '@rolldown/pluginutils': 1.0.0-beta.42
+ ansis: 4.2.0
optionalDependencies:
- '@rolldown/binding-android-arm64': 1.0.0-beta.38
- '@rolldown/binding-darwin-arm64': 1.0.0-beta.38
- '@rolldown/binding-darwin-x64': 1.0.0-beta.38
- '@rolldown/binding-freebsd-x64': 1.0.0-beta.38
- '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.38
- '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.38
- '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.38
- '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.38
- '@rolldown/binding-linux-x64-musl': 1.0.0-beta.38
- '@rolldown/binding-openharmony-arm64': 1.0.0-beta.38
- '@rolldown/binding-wasm32-wasi': 1.0.0-beta.38
- '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.38
- '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.38
- '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.38
+ '@rolldown/binding-android-arm64': 1.0.0-beta.42
+ '@rolldown/binding-darwin-arm64': 1.0.0-beta.42
+ '@rolldown/binding-darwin-x64': 1.0.0-beta.42
+ '@rolldown/binding-freebsd-x64': 1.0.0-beta.42
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.42
+ '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.42
+ '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.42
+ '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.42
+ '@rolldown/binding-linux-x64-musl': 1.0.0-beta.42
+ '@rolldown/binding-openharmony-arm64': 1.0.0-beta.42
+ '@rolldown/binding-wasm32-wasi': 1.0.0-beta.42
+ '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.42
+ '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.42
+ '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.42
rollup@4.46.2:
dependencies:
@@ -13650,65 +13729,65 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-embedded-all-unknown@1.93.0:
+ sass-embedded-all-unknown@1.93.2:
dependencies:
- sass: 1.93.0
+ sass: 1.93.2
optional: true
- sass-embedded-android-arm64@1.93.0:
+ sass-embedded-android-arm64@1.93.2:
optional: true
- sass-embedded-android-arm@1.93.0:
+ sass-embedded-android-arm@1.93.2:
optional: true
- sass-embedded-android-riscv64@1.93.0:
+ sass-embedded-android-riscv64@1.93.2:
optional: true
- sass-embedded-android-x64@1.93.0:
+ sass-embedded-android-x64@1.93.2:
optional: true
- sass-embedded-darwin-arm64@1.93.0:
+ sass-embedded-darwin-arm64@1.93.2:
optional: true
- sass-embedded-darwin-x64@1.93.0:
+ sass-embedded-darwin-x64@1.93.2:
optional: true
- sass-embedded-linux-arm64@1.93.0:
+ sass-embedded-linux-arm64@1.93.2:
optional: true
- sass-embedded-linux-arm@1.93.0:
+ sass-embedded-linux-arm@1.93.2:
optional: true
- sass-embedded-linux-musl-arm64@1.93.0:
+ sass-embedded-linux-musl-arm64@1.93.2:
optional: true
- sass-embedded-linux-musl-arm@1.93.0:
+ sass-embedded-linux-musl-arm@1.93.2:
optional: true
- sass-embedded-linux-musl-riscv64@1.93.0:
+ sass-embedded-linux-musl-riscv64@1.93.2:
optional: true
- sass-embedded-linux-musl-x64@1.93.0:
+ sass-embedded-linux-musl-x64@1.93.2:
optional: true
- sass-embedded-linux-riscv64@1.93.0:
+ sass-embedded-linux-riscv64@1.93.2:
optional: true
- sass-embedded-linux-x64@1.93.0:
+ sass-embedded-linux-x64@1.93.2:
optional: true
- sass-embedded-unknown-all@1.93.0:
+ sass-embedded-unknown-all@1.93.2:
dependencies:
- sass: 1.93.0
+ sass: 1.93.2
optional: true
- sass-embedded-win32-arm64@1.93.0:
+ sass-embedded-win32-arm64@1.93.2:
optional: true
- sass-embedded-win32-x64@1.93.0:
+ sass-embedded-win32-x64@1.93.2:
optional: true
- sass-embedded@1.93.0:
+ sass-embedded@1.93.2:
dependencies:
'@bufbuild/protobuf': 2.9.0
buffer-builder: 0.2.0
@@ -13719,26 +13798,26 @@ snapshots:
sync-child-process: 1.0.2
varint: 6.0.0
optionalDependencies:
- sass-embedded-all-unknown: 1.93.0
- sass-embedded-android-arm: 1.93.0
- sass-embedded-android-arm64: 1.93.0
- sass-embedded-android-riscv64: 1.93.0
- sass-embedded-android-x64: 1.93.0
- sass-embedded-darwin-arm64: 1.93.0
- sass-embedded-darwin-x64: 1.93.0
- sass-embedded-linux-arm: 1.93.0
- sass-embedded-linux-arm64: 1.93.0
- sass-embedded-linux-musl-arm: 1.93.0
- sass-embedded-linux-musl-arm64: 1.93.0
- sass-embedded-linux-musl-riscv64: 1.93.0
- sass-embedded-linux-musl-x64: 1.93.0
- sass-embedded-linux-riscv64: 1.93.0
- sass-embedded-linux-x64: 1.93.0
- sass-embedded-unknown-all: 1.93.0
- sass-embedded-win32-arm64: 1.93.0
- sass-embedded-win32-x64: 1.93.0
+ sass-embedded-all-unknown: 1.93.2
+ sass-embedded-android-arm: 1.93.2
+ sass-embedded-android-arm64: 1.93.2
+ sass-embedded-android-riscv64: 1.93.2
+ sass-embedded-android-x64: 1.93.2
+ sass-embedded-darwin-arm64: 1.93.2
+ sass-embedded-darwin-x64: 1.93.2
+ sass-embedded-linux-arm: 1.93.2
+ sass-embedded-linux-arm64: 1.93.2
+ sass-embedded-linux-musl-arm: 1.93.2
+ sass-embedded-linux-musl-arm64: 1.93.2
+ sass-embedded-linux-musl-riscv64: 1.93.2
+ sass-embedded-linux-musl-x64: 1.93.2
+ sass-embedded-linux-riscv64: 1.93.2
+ sass-embedded-linux-x64: 1.93.2
+ sass-embedded-unknown-all: 1.93.2
+ sass-embedded-win32-arm64: 1.93.2
+ sass-embedded-win32-x64: 1.93.2
- sass@1.93.0:
+ sass@1.93.2:
dependencies:
chokidar: 4.0.3
immutable: 5.1.3
@@ -13877,11 +13956,6 @@ snapshots:
astral-regex: 2.0.0
is-fullwidth-code-point: 3.0.0
- slice-ansi@5.0.0:
- dependencies:
- ansi-styles: 6.2.1
- is-fullwidth-code-point: 4.0.0
-
slice-ansi@7.1.0:
dependencies:
ansi-styles: 6.2.1
@@ -13957,6 +14031,11 @@ snapshots:
get-east-asian-width: 1.3.0
strip-ansi: 7.1.0
+ string-width@8.1.0:
+ dependencies:
+ get-east-asian-width: 1.3.0
+ strip-ansi: 7.1.0
+
string.prototype.includes@2.0.1:
dependencies:
call-bind: 1.0.8
@@ -14019,58 +14098,49 @@ snapshots:
style-search@0.1.0: {}
- stylelint-config-html@1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-config-html@1.1.0(postcss-html@1.8.0)(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
postcss-html: 1.8.0
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- stylelint-config-recommended-scss@15.0.1(postcss@8.5.6)(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-config-recommended-scss@16.0.2(postcss@8.5.6)(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
postcss-scss: 4.0.9(postcss@8.5.6)
- stylelint: 16.24.0(typescript@5.9.2)
- stylelint-config-recommended: 16.0.0(stylelint@16.24.0(typescript@5.9.2))
- stylelint-scss: 6.12.1(stylelint@16.24.0(typescript@5.9.2))
+ stylelint: 16.25.0(typescript@5.9.3)
+ stylelint-config-recommended: 17.0.0(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-scss: 6.12.1(stylelint@16.25.0(typescript@5.9.3))
optionalDependencies:
postcss: 8.5.6
- stylelint-config-recommended@16.0.0(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-config-recommended@17.0.0(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- stylelint-config-recommended@17.0.0(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-config-standard-scss@16.0.0(postcss@8.5.6)(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
- stylelint: 16.24.0(typescript@5.9.2)
-
- stylelint-config-standard-scss@15.0.1(postcss@8.5.6)(stylelint@16.24.0(typescript@5.9.2)):
- dependencies:
- stylelint: 16.24.0(typescript@5.9.2)
- stylelint-config-recommended-scss: 15.0.1(postcss@8.5.6)(stylelint@16.24.0(typescript@5.9.2))
- stylelint-config-standard: 38.0.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint: 16.25.0(typescript@5.9.3)
+ stylelint-config-recommended-scss: 16.0.2(postcss@8.5.6)(stylelint@16.25.0(typescript@5.9.3))
+ stylelint-config-standard: 39.0.0(stylelint@16.25.0(typescript@5.9.3))
optionalDependencies:
postcss: 8.5.6
- stylelint-config-standard@38.0.0(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-config-standard@39.0.0(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
- stylelint: 16.24.0(typescript@5.9.2)
- stylelint-config-recommended: 16.0.0(stylelint@16.24.0(typescript@5.9.2))
+ stylelint: 16.25.0(typescript@5.9.3)
+ stylelint-config-recommended: 17.0.0(stylelint@16.25.0(typescript@5.9.3))
- stylelint-config-standard@39.0.0(stylelint@16.24.0(typescript@5.9.2)):
- dependencies:
- stylelint: 16.24.0(typescript@5.9.2)
- stylelint-config-recommended: 17.0.0(stylelint@16.24.0(typescript@5.9.2))
-
- stylelint-define-config@16.22.0(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-define-config@16.24.0(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
csstype: 3.1.3
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- stylelint-order@7.0.0(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-order@7.0.0(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
postcss: 8.5.6
postcss-sorting: 9.1.0(postcss@8.5.6)
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- stylelint-scss@6.12.1(stylelint@16.24.0(typescript@5.9.2)):
+ stylelint-scss@6.12.1(stylelint@16.25.0(typescript@5.9.3)):
dependencies:
css-tree: 3.1.0
is-plain-object: 5.0.0
@@ -14080,21 +14150,21 @@ snapshots:
postcss-resolve-nested-selector: 0.1.6
postcss-selector-parser: 7.1.0
postcss-value-parser: 4.2.0
- stylelint: 16.24.0(typescript@5.9.2)
+ stylelint: 16.25.0(typescript@5.9.3)
- stylelint@16.24.0(typescript@5.9.2):
+ stylelint@16.25.0(typescript@5.9.3):
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
'@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
- '@dual-bundle/import-meta-resolve': 4.1.0
+ '@dual-bundle/import-meta-resolve': 4.2.1
balanced-match: 2.0.0
colord: 2.9.3
- cosmiconfig: 9.0.0(typescript@5.9.2)
+ cosmiconfig: 9.0.0(typescript@5.9.3)
css-functions-list: 3.2.3
css-tree: 3.1.0
- debug: 4.4.1
+ debug: 4.4.3
fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
file-entry-cache: 10.1.4
@@ -14228,7 +14298,7 @@ snapshots:
tinyspy@4.0.3: {}
- tm-grammars@1.24.12: {}
+ tm-grammars@1.24.16: {}
tm-themes@1.10.9: {}
@@ -14256,39 +14326,39 @@ snapshots:
trough@2.2.0: {}
- ts-api-utils@2.1.0(typescript@5.9.2):
+ ts-api-utils@2.1.0(typescript@5.9.3):
dependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
ts-debounce@4.0.0: {}
- ts-declaration-location@1.0.7(typescript@5.9.2):
+ ts-declaration-location@1.0.7(typescript@5.9.3):
dependencies:
picomatch: 4.0.3
- typescript: 5.9.2
+ typescript: 5.9.3
ts-dedent@2.2.0: {}
tsconfig-vuepress@7.0.0: {}
- tsdown@0.15.3(typescript@5.9.2):
+ tsdown@0.15.6(typescript@5.9.3):
dependencies:
- ansis: 4.1.0
+ ansis: 4.2.0
cac: 6.7.14
chokidar: 4.0.3
debug: 4.4.3
diff: 8.0.2
empathic: 2.0.0
hookable: 5.5.3
- rolldown: 1.0.0-beta.38
- rolldown-plugin-dts: 0.16.6(rolldown@1.0.0-beta.38)(typescript@5.9.2)
+ rolldown: 1.0.0-beta.42
+ rolldown-plugin-dts: 0.16.8(rolldown@1.0.0-beta.42)(typescript@5.9.3)
semver: 7.7.2
tinyexec: 1.0.1
tinyglobby: 0.2.15
tree-kill: 1.2.2
unconfig: 7.3.3
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- '@ts-macro/tsc'
- '@typescript/native-preview'
@@ -14302,20 +14372,20 @@ snapshots:
twoslash-protocol@0.3.3: {}
- twoslash-vue@0.3.3(typescript@5.9.2):
+ twoslash-vue@0.3.3(typescript@5.9.3):
dependencies:
- '@vue/language-core': 3.0.5(typescript@5.9.2)
- twoslash: 0.3.3(typescript@5.9.2)
+ '@vue/language-core': 3.0.5(typescript@5.9.3)
+ twoslash: 0.3.3(typescript@5.9.3)
twoslash-protocol: 0.3.3
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- twoslash@0.3.3(typescript@5.9.2):
+ twoslash@0.3.3(typescript@5.9.3):
dependencies:
- '@typescript/vfs': 1.6.1(typescript@5.9.2)
+ '@typescript/vfs': 1.6.1(typescript@5.9.3)
twoslash-protocol: 0.3.3
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -14325,6 +14395,8 @@ snapshots:
type-fest@0.21.3: {}
+ type-fest@4.2.0: {}
+
type-fest@4.41.0: {}
typed-array-buffer@1.0.3:
@@ -14360,7 +14432,7 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript@5.9.2: {}
+ typescript@5.9.3: {}
ua-parser-js@1.0.40: {}
@@ -14385,10 +14457,10 @@ snapshots:
jiti: 2.5.1
quansync: 0.2.11
- undici-types@7.10.0: {}
-
undici-types@7.12.0: {}
+ undici-types@7.14.0: {}
+
undici@6.21.3: {}
undici@7.13.0: {}
@@ -14488,13 +14560,13 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vite-node@3.2.4(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1):
+ vite-node@3.2.4(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1):
dependencies:
cac: 6.7.14
debug: 4.4.1
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ vite: 7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -14509,7 +14581,7 @@ snapshots:
- tsx
- yaml
- vite@7.0.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1):
+ vite@7.0.6(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1):
dependencies:
esbuild: 0.25.10
fdir: 6.4.6(picomatch@4.0.3)
@@ -14518,16 +14590,16 @@ snapshots:
rollup: 4.46.2
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.0
fsevents: 2.3.3
jiti: 2.5.1
- less: 4.4.1
- sass: 1.93.0
- sass-embedded: 1.93.0
+ less: 4.4.2
+ sass: 1.93.2
+ sass-embedded: 1.93.2
stylus: 0.64.0
yaml: 2.8.1
- vite@7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1):
+ vite@7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1):
dependencies:
esbuild: 0.25.10
fdir: 6.5.0(picomatch@4.0.3)
@@ -14536,20 +14608,20 @@ snapshots:
rollup: 4.46.2
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.0
fsevents: 2.3.3
jiti: 2.5.1
- less: 4.4.1
- sass: 1.93.0
- sass-embedded: 1.93.0
+ less: 4.4.2
+ sass: 1.93.2
+ sass-embedded: 1.93.2
stylus: 0.64.0
yaml: 2.8.1
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(vite@7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -14567,12 +14639,12 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.1.1(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(yaml@2.8.1)
+ vite: 7.1.1(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
- '@types/node': 24.5.2
+ '@types/node': 24.7.0
transitivePeerDependencies:
- jiti
- less
@@ -14604,10 +14676,10 @@ snapshots:
vscode-uri@3.0.8: {}
- vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)):
+ vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1
- eslint: 9.36.0(jiti@2.5.1)
+ debug: 4.4.3
+ eslint: 9.37.0(jiti@2.5.1)
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
espree: 10.4.0
@@ -14616,10 +14688,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-eslint-parser@9.4.3(eslint@9.36.0(jiti@2.5.1)):
+ vue-eslint-parser@9.4.3(eslint@9.37.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1
- eslint: 9.36.0(jiti@2.5.1)
+ debug: 4.4.3
+ eslint: 9.37.0(jiti@2.5.1)
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
@@ -14629,41 +14701,41 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-resize@2.0.0-alpha.1(vue@3.5.21(typescript@5.9.2)):
+ vue-resize@2.0.0-alpha.1(vue@3.5.22(typescript@5.9.3)):
dependencies:
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
- vue-router@4.5.1(vue@3.5.21(typescript@5.9.2)):
+ vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 6.6.4
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
- vue@3.5.21(typescript@5.9.2):
+ vue@3.5.22(typescript@5.9.3):
dependencies:
- '@vue/compiler-dom': 3.5.21
- '@vue/compiler-sfc': 3.5.21
- '@vue/runtime-dom': 3.5.21
- '@vue/server-renderer': 3.5.21(vue@3.5.21(typescript@5.9.2))
- '@vue/shared': 3.5.21
+ '@vue/compiler-dom': 3.5.22
+ '@vue/compiler-sfc': 3.5.22
+ '@vue/runtime-dom': 3.5.22
+ '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3))
+ '@vue/shared': 3.5.22
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)):
+ vuepress@2.0.0-rc.24(@vuepress/bundler-vite@2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1))(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)):
dependencies:
- '@vuepress/cli': 2.0.0-rc.24(typescript@5.9.2)
- '@vuepress/client': 2.0.0-rc.24(typescript@5.9.2)
- '@vuepress/core': 2.0.0-rc.24(typescript@5.9.2)
+ '@vuepress/cli': 2.0.0-rc.24(typescript@5.9.3)
+ '@vuepress/client': 2.0.0-rc.24(typescript@5.9.3)
+ '@vuepress/core': 2.0.0-rc.24(typescript@5.9.3)
'@vuepress/markdown': 2.0.0-rc.24
'@vuepress/shared': 2.0.0-rc.24
'@vuepress/utils': 2.0.0-rc.24
- vue: 3.5.21(typescript@5.9.2)
+ vue: 3.5.22(typescript@5.9.3)
optionalDependencies:
- '@vuepress/bundler-vite': 2.0.0-rc.24(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(sass-embedded@1.93.0)(sass@1.93.0)(stylus@0.64.0)(typescript@5.9.2)(yaml@2.8.1)
+ '@vuepress/bundler-vite': 2.0.0-rc.24(@types/node@24.7.0)(jiti@2.5.1)(less@4.4.2)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
- typescript
- wait-on@9.0.0:
+ wait-on@9.0.1:
dependencies:
axios: 1.12.2
joi: 18.0.1
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 66b33c0a..5c29539b 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -7,19 +7,19 @@ packages:
overrides:
'@bufbuild/protobuf': ^2.9.0
- '@typescript-eslint/utils': ^8.44.0
+ '@typescript-eslint/utils': ^8.46.0
esbuild: ^0.25.10
- sass-embedded: ^1.93.0
+ sass-embedded: ^1.93.2
patchedDependencies:
floating-vue: patches/floating-vue.patch
catalogs:
dev:
- '@commitlint/cli': ^19.8.1
- '@commitlint/config-conventional': ^19.8.1
- '@pengzhanbo/eslint-config-vue': ^1.37.0
- '@pengzhanbo/stylelint-config': ^1.37.0
+ '@commitlint/cli': ^20.1.0
+ '@commitlint/config-conventional': ^20.0.0
+ '@pengzhanbo/eslint-config-vue': ^1.38.0
+ '@pengzhanbo/stylelint-config': ^1.38.0
'@simonwep/pickr': ^1.9.1
'@types/express': ^5.0.3
'@types/js-yaml': ^4.0.9
@@ -27,45 +27,46 @@ catalogs:
'@types/lodash.merge': ^4.6.9
'@types/markdown-it': ^14.1.2
'@types/minimist': ^1.2.5
- '@types/node': ^24.5.2
+ '@types/node': ^24.7.0
+ '@types/picomatch': ^4.0.2
'@types/stylus': ^0.48.43
'@types/webpack-env': ^1.18.8
'@vitest/coverage-istanbul': ^3.2.4
- bumpp: ^10.2.3
+ bumpp: ^10.3.1
commitizen: ^4.3.1
conventional-changelog-cli: ^5.0.0
cpx2: ^8.0.0
cross-env: 7.0.3
cz-conventional-changelog: ^3.3.0
- eslint: ^9.36.0
+ eslint: ^9.37.0
http-server: ^14.1.1
husky: ^9.1.7
- less: ^4.4.1
- lint-staged: ^16.1.6
+ less: ^4.4.2
+ lint-staged: ^16.2.3
markdown-it: ^14.1.0
- memfs: ^4.42.0
+ memfs: ^4.49.0
mermaid: ^11.12.0
minimist: ^1.2.8
postcss: ^8.5.6
rimraf: ^6.0.1
- stylelint: ^16.24.0
+ stylelint: ^16.25.0
stylus: ^0.64.0
tsconfig-vuepress: ^7.0.0
- tsdown: ^0.15.3
- typescript: ^5.9.2
+ tsdown: ^0.15.6
+ typescript: ^5.9.3
vitest: ^3.2.4
vue-router: ^4.5.1
- wait-on: ^9.0.0
+ wait-on: ^9.0.1
peer:
- '@iconify/json': ^2.2.386
+ '@iconify/json': ^2.2.392
artplayer: ^5.3.0
dashjs: ^5.0.3
- hls.js: ^1.6.12
+ hls.js: ^1.6.13
mathjax-full: ^3.2.2
mpegts.js: 1.7.3
- pyodide: ^0.28.2
- sass: ^1.93.0
- sass-embedded: ^1.93.0
+ pyodide: ^0.28.3
+ sass: ^1.93.2
+ sass-embedded: ^1.93.2
swiper: ^12.0.2
prod:
'@clack/prompts': ^0.11.0
@@ -85,20 +86,18 @@ catalogs:
cac: ^6.7.14
chart.js: ^4.5.0
chokidar: 4.0.3
- create-filter: ^1.1.0
dayjs: ^1.11.18
echarts: ^6.0.0
esbuild: ^0.25.10
- fast-glob: ^3.3.3
flowchart.ts: ^3.0.1
focus-trap: ^7.6.5
gray-matter: ^4.0.3
handlebars: ^4.7.8
image-size: ^2.0.2
js-yaml: ^4.1.0
- katex: ^0.16.22
+ katex: ^0.16.23
local-pkg: ^1.1.2
- lru-cache: ^11.2.1
+ lru-cache: ^11.2.2
mark.js: ^8.11.1
markdown-it-container: ^4.0.0
markmap-lib: ^0.18.12
@@ -106,16 +105,17 @@ catalogs:
markmap-view: ^0.18.12
minisearch: ^7.2.0
nano-spawn: ^1.0.3
- nanoid: ^5.1.5
+ nanoid: ^5.1.6
os-locale: ^6.0.2
p-map: ^7.0.3
- package-manager-detector: ^1.3.0
+ package-manager-detector: ^1.4.0
picocolors: ^1.1.1
+ picomatch: ^4.0.3
shiki: ^3.13.0
- tinyglobby: ^0.2.13
- tm-grammars: ^1.24.12
+ tinyglobby: ^0.2.15
+ tm-grammars: ^1.24.16
tm-themes: ^1.10.9
- vue: ^3.5.21
+ vue: ^3.5.22
vuepress:
'@vuepress/bundler-vite': 2.0.0-rc.24
'@vuepress/helper': 2.0.0-rc.112
diff --git a/theme/package.json b/theme/package.json
index 2b3510ac..e2ece73d 100644
--- a/theme/package.json
+++ b/theme/package.json
@@ -113,16 +113,16 @@
"@vueuse/core": "catalog:prod",
"bcrypt-ts": "catalog:prod",
"chokidar": "catalog:prod",
- "create-filter": "catalog:prod",
"dayjs": "catalog:prod",
"esbuild": "catalog:prod",
- "fast-glob": "catalog:prod",
"gray-matter": "catalog:prod",
"js-yaml": "catalog:prod",
"katex": "catalog:prod",
"local-pkg": "catalog:prod",
"nanoid": "catalog:prod",
+ "p-map": "catalog:prod",
"package-manager-detector": "catalog:prod",
+ "picomatch": "catalog:prod",
"vue": "catalog:prod",
"vuepress-plugin-md-power": "workspace:*"
},
diff --git a/theme/src/client/components/Blog/VPBlog.vue b/theme/src/client/components/Blog/VPBlog.vue
deleted file mode 100644
index cf437041..00000000
--- a/theme/src/client/components/Blog/VPBlog.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
- ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/theme/src/client/components/Home/VPHome.vue b/theme/src/client/components/Home/VPHome.vue
index fe4e4da6..69dd992d 100644
--- a/theme/src/client/components/Home/VPHome.vue
+++ b/theme/src/client/components/Home/VPHome.vue
@@ -1,6 +1,5 @@
-