Skip to content

Upgrade VitePress to 2.0.0-alpha.20 and replace markdown-it-multimd-table with native table attributes - #53

Merged
Maoyao233 merged 1 commit into
mainfrom
upgrade-vitepress-alpha20
Sep 4, 2026
Merged

Maoyao233 merged 1 commit into
mainfrom
upgrade-vitepress-alpha20

Conversation

@Maoyao233

@Maoyao233 Maoyao233 commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

概要

  • 升级 VitePress:2.0.0-alpha.18 → 2.0.0-alpha.20(next 通道,跟随官方 alpha 演进)
  • 移除 markdown-it-multimd-table(2023-08 后无发布、事实性停更),改用 VitePress alpha 内置的 官方表格属性语法 {colspan=2} 实现合并单元格

背景与根因

升级到 alpha.19 后全站构建崩溃:

Failed to index tables/index.md for search: Cannot read properties of undefined (reading '0')

排查结论(双层兼容性 bug,源码级定位):

  1. markdown-it-multimd-table@4.2.3 的行扫描器把未配对的单个反引号当作代码段开关,吞掉其后所有 | 分隔符 → 4 列表格被解析成 3 格行;
  2. alpha.19 新引入的 @mdit/plugin-attrs(替代 markdown-it-attrs)在 table tbody calculate 中以表头列数索引单元格数组、无越界防护 → cells[3] 为 undefined 时崩溃。

该项目仅用到了 multimd 的“合并列(HTML 注释标记)”这一特性,且 alpha 系列官方已提供等价能力。

改动

文件 变更
docs/tables/index.md 4 处 `
docs/.vitepress/config.mts 移除 markdownItMultimdTable 引用
package.json 移除依赖;vitepress 升至 2.0.0-alpha.20
pnpm-workspace.yaml 新增 minimumReleaseAgeExclude: vitepress@2.0.0-alpha.20(pnpm 供应链年龄策略自动写入)

附带修复:docs/tables/index.md ASCII 参考表中 `、`|`、`||` 等反引号单元格此前在 multimd 下被错误解析为 code span,现按原生语法正确渲染。

验证

  • pnpm docs:build 通过(alpha.20,约 46s)
  • 构建产物 tables/index.html:4 处 colspan="2" 与旧输出一致

@Maoyao233
Maoyao233 merged commit 489a290 into main Sep 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant