Repository navigation
LeetCode Chinese 1.0.4
本文沿用项目文档的 md-output 编号与修订记录规范。
[TOC]
修订记录
| 编号 | 版本 | 修订人 | 修订内容 | 日期 |
|---|---|---|---|---|
| 001 | 1.0 | jie.chen | 修复市场规则禁用错误,清理源码检查警告并增加发布预检 | 2026-10-20 |
1. 本版修复
| 检查反馈 | 处理 |
|---|---|
| 禁用 sentence-case | 删除设置页的禁用注释,输入提示改为中文“输入题目目录”;实际默认目录仍为 leetcode |
| document.createElement | 使用官方推荐的窗口 DOM 创建方法,按 ownerDocument.win 或 activeWindow 创建元素,保留多窗口归属 |
| 不安全类型 | tsconfig 明确声明 Node 与 ES2020 标准库;笔记属性使用 Record<string, unknown> 类型注解,再通过现有判断收窄字段 |
| 多余类型断言 | 使用新版规则清理冗余断言,保留确实需要的类型边界;未知 Promise 拒绝值转换为 Error |
| 设置搜索 | 实现 getSettingDefinitions,按账号、笔记、编辑器、迁移、AI、知识图谱六个分区提供搜索名称和别名,继续复用原有控件与保存逻辑 |
| 旧版本兼容 | 保留 Obsidian 1.12.7 的 display 入口;1.13+ 通过声明式定义渲染,最低版本不变 |
| moment 警告 | npm 与 pnpm 均约束 moment 为 2.31.0;同时固定已有 Obsidian 类型包版本,避免安装时漂移 |
| 自定义配置目录的迁移备份 | 备份写入与查找统一使用 vault.configDir,修正写死默认目录导致的备份重试不一致 |
设置搜索索引只包含分区名称和选项名称,不包含 Cookie、密钥或用户填写的值。切换 AI 服务时保留宿主创建的分区节点,在节点内部刷新控件。
2. 本地检查与市场检查的差异
此前仓库使用 eslint-plugin-obsidianmd 0.3.0 和 typescript-eslint 8.35.1。市场提示了较新规则和类型断言检查;本版将已有开发检查依赖更新为 0.4.2 与 8.72.0,不增加插件运行依赖。
原 tsconfig 的标准库列表没有明确包含 ES2019/ES2020,也没有显式列出 Node 类型。部分 API 的类型依赖开发机间接加载;本版显式配置,避免扫描环境把标准库调用识别为错误类型。市场实际扫描环境无法从本地完全复刻,最终结果仍需以本版的市场重新检查为准。
1.0.3 的 manifest 描述已不含 Obsidian;维护者确认此前重复的描述错误来自混入的 1.0.2 报告。本版不改回该描述。
3. 防复发检查
- pnpm lint 使用 --max-warnings 0,出现警告也会阻止 CI 和 Release。
- 新增 pnpm run check:marketplace,在 lint 前自动执行,检查描述、版本一致性、英文简介、moment 锁定和源码禁用规则。
- 新增回归覆盖设置索引不读取凭据、声明式设置切换服务后的分区保留、多 document 下控件归属。
- 测试环境补齐 Obsidian 的窗口 DOM helper;迁移测试使用自定义配置目录,验证路径来源于 vault.configDir。
生产依赖的官方 npm 审计在本次核对时报告 0 个漏洞。该结论针对实际解析的生产依赖,不代表第三方扫描器必然采用相同的依赖解析方式,也不代表未来不会发布新公告。
本地发布验证:lint 为 0 错误、0 警告;264 个测试文件通过,3083 项测试通过,8 项既有测试跳过;TypeScript 检查与生产构建通过。main.js 为 1,955,367 字节,低于 2,000,000 字节上限。
4. 安装与市场重新检查
下载 1.0.4 的 leetcode-chinese.zip,覆盖插件目录中的 main.js、manifest.json、styles.css,保留 data.json,再重新启用插件。
在市场管理页确认版本为 1.0.4;必要时通过菜单的 Check for new releases 更新版本,再执行 Request review。也可使用 Review branch 指定本次提交进行预览扫描。请只对照同一版本的检查结果。
1.0.3 已说明的两处 Vim 光标 !important 和 AWS 外部凭据程序能力仍保留。它们不属于本次类型与设置规则清理的范围。