fix(editor): 接入完整 Shiki 语言支持与 GitHub 双主题,修复语言菜单并添加图标 #25

Merged
Kronecker merged 3 commits from fix/editor-shiki-language-picker into main 2026-09-05 17:19:15 +08:00
Owner

变更说明

修复代码块语言菜单被裁剪、深色模式仅改变背景,以及语言显示名被写入 Markdown 后导致高亮失效的问题。

  • 将语言菜单提升至浏览器顶层,避免被代码块及滚动容器裁剪,并根据可用空间调整位置。
  • 从 Shiki 注册表生成完整语言列表,支持当前版本内置的 242 种语言及别名,另保留纯文本选项。
  • 统一使用 GitHub Light / GitHub Dark 语法配色,编辑器与 Markdown 渲染共用高亮实例。
  • 使用 Oniguruma 引擎,按需加载语言语法并复用加载结果。
  • 分离语言显示名与持久化标识。例如菜单显示 JSON with Comments,Markdown 保存为 jsonc
  • 为 175 项语言或文件类型配置本地图标,其余使用通用文件图标;附带生成脚本和 MIT 许可证。

验证

  • 32 个测试文件、132 项测试通过。
  • 类型检查和生产构建通过。
  • 逐一验证全部 Shiki 语法在两套 GitHub 主题下能够加载并生成 token。
  • 回归测试覆盖菜单选择、Markdown 保存、重新打开及渲染高亮。
  • 浏览器验证菜单不再裁剪,图标、显示名搜索和语言选择正常。
  • 与已获取的 gitea/main 试合并无冲突。

已知限制

  • 没有专用图标的语言使用通用文件图标。
  • 构建仍有部分产物超过 500 kB 的体积提示。

范围

仅包含前端编辑器、高亮工具、图标资源及测试,不包含本地笔记修改。

## 变更说明 修复代码块语言菜单被裁剪、深色模式仅改变背景,以及语言显示名被写入 Markdown 后导致高亮失效的问题。 - 将语言菜单提升至浏览器顶层,避免被代码块及滚动容器裁剪,并根据可用空间调整位置。 - 从 Shiki 注册表生成完整语言列表,支持当前版本内置的 242 种语言及别名,另保留纯文本选项。 - 统一使用 GitHub Light / GitHub Dark 语法配色,编辑器与 Markdown 渲染共用高亮实例。 - 使用 Oniguruma 引擎,按需加载语言语法并复用加载结果。 - 分离语言显示名与持久化标识。例如菜单显示 `JSON with Comments`,Markdown 保存为 `jsonc`。 - 为 175 项语言或文件类型配置本地图标,其余使用通用文件图标;附带生成脚本和 MIT 许可证。 ## 验证 - 32 个测试文件、132 项测试通过。 - 类型检查和生产构建通过。 - 逐一验证全部 Shiki 语法在两套 GitHub 主题下能够加载并生成 token。 - 回归测试覆盖菜单选择、Markdown 保存、重新打开及渲染高亮。 - 浏览器验证菜单不再裁剪,图标、显示名搜索和语言选择正常。 - 与已获取的 `gitea/main` 试合并无冲突。 ## 已知限制 - 没有专用图标的语言使用通用文件图标。 - 构建仍有部分产物超过 500 kB 的体积提示。 ## 范围 仅包含前端编辑器、高亮工具、图标资源及测试,不包含本地笔记修改。
Kronecker added 3 commits 2026-09-05 17:19:10 +08:00
Kronecker merged commit 352557d94a into main 2026-09-05 17:19:15 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Kronecker/NotesAgentic#25