简体中文
更新日志
2.0.0-alpha.20.1
2026-09-07
🔧 优化
- 移除 element-plus 依赖:音乐球进度/音量滑块替换为自研
FxSlider组件(支持拖动、点击定位、键盘方向键与无障碍属性),主题不再依赖 Element Plus——style.css体积从 53.7kB 降至 24.4kB,安装时不再拉取 Element Plus 及其依赖链 - ⚠️ 若你曾针对
.fx-music-ball .el-slider编写过滑块样式覆盖,需迁移至.fx-slider/.fx-slider__runway/.fx-slider__bar/.fx-slider__thumb(CSS 变量保持不变)
2.0.0-alpha.20
🐛 Bug 修复
- 修复 Hero 取色缓存失效检测误判:缓存键统一归一化为 frontmatter 原始路径(此前
img.src绝对 URL /withBase路径 / 原始路径三种格式混存导致互相不匹配),配置了base的站点不再每次页面加载都重复执行 Vibrant 取色;首页挂载时的并发重复提取也增加了缓存命中守卫 - 修复 Feature 光效在路由切换后失效:SPA 导航返回首页后重新查询
.VPHomeFeatures并重挂 MutationObserver,新渲染的卡片能正确分配--color光晕颜色(此前 observer 挂在已脱离 DOM 的旧容器上) - 修复 DemoPreview dir / src 模式:适配 VitePress 将独立成行的组件标签解析为顶层
html_inlinetoken 的行为,插件改为只扫描html_block/html_inlinetoken(旧实现全局扫描state.src,代码围栏内的示例文本会被误匹配) - 修复 DemoPreview dir 模式目录解析:不再依赖
process.cwd(),改为从 markdown 文件位置向上查找.vitepress目录(即 srcDir);找不到 demo 目录 / 文件时输出控制台警告,不再静默吞掉 - 修复 local search 下代码块双层嵌套:VitePress 2.0.0-alpha.20 的
createMarkdownRenderer单例存在并发竞态——启用search.provider: "local"时,local search 插件的configResolved与首个 markdown transform 并发调用,preConfig钩子的await让出点正好落在 md 实例创建与内置插件应用之间,导致preWrapper/行号插件被同一实例应用两次(代码块双 copy 按钮、双行号列、双重折叠按钮)。主题预设改用markdown.config钩子(在内置插件之后调用,await 让出点位于 preWrapper 之后)注册 DemoPreview 插件,规避该竞态 - 修复 DemoPreview 源码面板显示
<<< 路径而非代码:VitePress2.0.0-alpha.19+重写了 snippet(<<<代码引入)实现,渲染器改为从token.meta.src读取文件路径(旧版为token.src),插件生成的源码 slot 已同步适配;附带改进:demo 源文件变更现在会正确进入 include 追踪,dev 下源码面板可热更新 - 修复长代码行无横向滚动条:展开态 / 短代码块的覆盖规则误将
pre的overflow覆盖为visible(alpha.20 中横向滚动条由pre的overflow-x: auto提供,代码本体为width: fit-content),现覆盖规则只处理纵向折叠裁剪,不再影响横向滚动 - 修复文档站 SPA 切页 PV 统计不触发:VitePress 没有
routeChangeDOM 事件,改在主题setup()中通过router.onAfterRouteChange上报(alpha.20 恢复并支持跨 extends 组合 Theme.setup)
✨ 对齐 VitePress 2.0.0-alpha.20
- peerDependencies 提升至
vitepress >= 2.0.0-alpha.20(alpha.18 起基于 Vite 8、要求 Node 22+) - 移除导航栏标题溢出 tooltip:alpha.20 导航栏重设计后原生支持标题截断(ellipsis)与原生
title提示,主题不再注入 ElTooltip,避免与原生提示重复弹出,同时精简了 FxLayout 与依赖 - 代码块折叠高度适配:alpha.20 将
--vp-code-line-height从2.2em改为无单位值,旧calc写法会失效;改用1lh单位按元素实际行盒高度精确计算,并保留旧浏览器降级写法 - 平滑滚动遵循系统动画偏好:
scroll-behavior: smooth包裹在prefers-reduced-motion: no-preference中(alpha.18 移除scrollOffset与router.go平滑滚动后的官方建议方案) vite.config.ts的__dirname替换为import.meta.dirname(Vite 8 原生配置加载器不再支持前者)
🔧 优化
getIconHtml的 width/height 替换正则增加空白边界,避免误改markerWidth之类的属性子串- FxConfetti 卸载改用
disposed标志拦截已排队的粒子发射,移除只增不清的定时器数组 types/config.d.ts补充themeConfig字段声明,消费方可直接读取configPreset.themeConfig
2.0.0-alpha.10.1
2026-06-14
🔧 优化
- DemoPreview 运行区样式隔离内置:将
.vp-doc排版 reset(标题/链接/段落/列表/代码块/表格等)合并到主题包demo-preview.css,消费方零配置自动获得隔离 - 表格 reset 完善:覆盖
.vp-doc对table/tr/th/td的全部样式(border/padding/background/nth-child 斑马纹/font-size/font-weight/display 等)
2.0.0-alpha.10
2026-06-14
🐛 Bug 修复
- 修复 DemoPreview 内联模式 token 顺序错乱:内联 demo 的源码 slot 和
<DemoPreview>开始标签顺序颠倒(ensureImport的splice(0,0)导致 index 偏移),改用indexOf重新定位 token 位置
2.0.0-alpha.9
2026-06-14
✨ 新功能
- DemoPreview 预览组件:支持三种写法
- 目录引入
<DemoPreview dir="demos/alert" />:扫描目录,index.vue运行,全部文件展示源码 - 文件引入
<DemoPreview src="./MyButton.vue" />:引入单文件 - 内联代码
<DemoPreview>...代码...</DemoPreview>:Vite 虚拟模块编译,无磁盘临时文件
- 目录引入
- 主题化样式:暗色光束边框 + 品牌色 Tab + 毛玻璃 toolbar + 运行区微光
- 样式隔离:运行预览区
not-prose,demo 原样展示 - markdown 插件:
preConfig注册,token 改写 + import 注入
2.0.0-alpha.8
2026-05-18
🐛 Bug 修复
- 修复 style.css 在
moduleResolution: "bundler"下无法解析:恢复 CSS 导出的types条件,指向style.css.d.ts,确保 TypeScript 能正确解析副作用导入
2.0.0-alpha.7
2026-05-18
🐛 Bug 修复
- 修复 Volar/pnpm 环境下类型解析失败:
index.d.ts不再依赖vitepress的Theme类型导入,避免跨模块解析失败导致"没有默认导出"错误 - 修复 style.css 模块解析报 "invalid interface" 错误:移除 CSS 导出的
types条件,避免 TypeScript/Volar 误将.d.ts当作 resolver
2.0.0-alpha.6
2026-05-18
🐛 Bug 修复
- 修复 npm 安装后类型解析失败:
types/index.d.ts添加export default默认导出 - 修复 style.css 路径无法解析:简化
package.json的exports字段格式,兼容 npm、pnpm、bun、yarn 等包管理器 - 添加顶层
types字段,兼容不支持exports的旧版工具
