Skip to content

更新日志

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_inline token 的行为,插件改为只扫描 html_block / html_inline token(旧实现全局扫描 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 源码面板显示 <<< 路径 而非代码:VitePress 2.0.0-alpha.19+ 重写了 snippet(<<< 代码引入)实现,渲染器改为从 token.meta.src 读取文件路径(旧版为 token.src),插件生成的源码 slot 已同步适配;附带改进:demo 源文件变更现在会正确进入 include 追踪,dev 下源码面板可热更新
  • 修复长代码行无横向滚动条:展开态 / 短代码块的覆盖规则误将 preoverflow 覆盖为 visible(alpha.20 中横向滚动条由 preoverflow-x: auto 提供,代码本体为 width: fit-content),现覆盖规则只处理纵向折叠裁剪,不再影响横向滚动
  • 修复文档站 SPA 切页 PV 统计不触发:VitePress 没有 routeChange DOM 事件,改在主题 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-height2.2em 改为无单位值,旧 calc 写法会失效;改用 1lh 单位按元素实际行盒高度精确计算,并保留旧浏览器降级写法
  • 平滑滚动遵循系统动画偏好scroll-behavior: smooth 包裹在 prefers-reduced-motion: no-preference 中(alpha.18 移除 scrollOffsetrouter.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-doctable/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> 开始标签顺序颠倒(ensureImportsplice(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 不再依赖 vitepressTheme 类型导入,避免跨模块解析失败导致"没有默认导出"错误
  • 修复 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.jsonexports 字段格式,兼容 npm、pnpm、bun、yarn 等包管理器
  • 添加顶层 types 字段,兼容不支持 exports 的旧版工具

在MIT许可下发布    备案号: 晋ICP备2024051569号-1