Skip to content

Releases: chenjieya/leetcode-chinese

LeetCode Chinese 1.0.4

Choose a tag to compare

@github-actions github-actions released this 20 Oct 06:08

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 外部凭据程序能力仍保留。它们不属于本次类型与设置规则清理的范围。


参考资料

LeetCode Chinese 1.0.3

Choose a tag to compare

@github-actions github-actions released this 20 Oct 05:30

LeetCode Chinese 1.0.3

本文沿用项目文档的 md-output 编号与修订记录规范。

[TOC]


修订记录

编号 版本 修订人 修订内容 日期
001 1.0 jie.chen 修复市场检查问题并说明保留警告的原因 2026-10-20

1. 修复内容

  • manifest 与 package 描述去掉冗余的 Obsidian 字样。
  • README 增加英文功能介绍、安装说明、隐私说明与上游署名;保留中文正文和中文界面。
  • 通过 npm、pnpm 的依赖覆盖配置,将已有间接依赖 @ai-sdk/provider-utils 从 4.0.27 固定到 4.0.33,避开 GHSA-866g-f22w-33x8 受影响范围;同步两份锁文件。
  • 删除编辑器外层悬停样式的 :has 选择器,恢复宿主默认悬停效果;用局部选择器优先级替代多数 !important。
  • 移除插件启动时的 shell PATH 探测,仅在 AWS credential_process 异步凭据刷新时执行。辅助命令显式使用 shell: false,保留 30 秒超时。

2. 市场警告说明

检查项 处理与限制
manifest description 已移除 Obsidian;版本号更新到 1.0.3
README 英文 已加入完整英文介绍,不依赖英文标题或品牌名称通过检查
provider-utils 已更新为官方修复版本 4.0.33
moment 锁文件实际版本为 2.31.0,来自 obsidian API 依赖;该版本包含官方 GHSA-4p3w-j4w9-5jqw 补丁,官方 npm 审计未报告 moment 漏洞。若市场仍警告,需要提供具体 advisory 和识别版本再核对
:has 已移除
!important 保留两处 Vim 光标兼容:覆盖依赖的内联 animationName,以及依赖使用 important 隐藏的原生光标。仅提高选择器优先级无法覆盖这两类样式
Shell Execution 保留 AWS 本地凭据辅助程序功能,因此仍可能出现能力警告。README 已披露读取知识库外 AWS 配置、执行 credential_process 和按需探测 shell PATH 的用途;普通启动不执行 shell

本次完整 npm 安全审计另外报告开发工具 Vitest、@vitest/mocker 和 ESLint 间接依赖 braces 的警告;这些工具不打入插件运行包。本版聚焦市场报告的运行依赖,未一并升级开发工具,不宣称完整依赖树无漏洞。

Shell Execution 是对实际能力的提示,不应通过隐藏 child_process 引用规避。只有选择 AWS 凭据链并配置 credential_process 才会走外部辅助程序路径;提交的题目代码发送至力扣判题,不在本机执行。


3. 安装与重新检查

下载本版 leetcode-chinese.zip,解压到知识库的 .obsidian/plugins/leetcode-chinese/;升级时保留 data.json,随后重新启用插件。

市场提交仍由维护者手动完成。发布后,在已有提交页面选择或刷新 1.0.3 版本并重新运行检查;若页面保存了旧 description,也需改成新版 manifest 中的描述。GitHub Release 成功不代表市场审核已通过。


4. 本地验证

  • ESLint、TypeScript、生产构建和包体积门禁通过,main.js 为 1,953,256 字节。
  • 自动测试 3,080 项通过、8 项原有跳过。新增凭据刷新测试覆盖按需 PATH 探测、缓存复用和 shell 元字符作为普通参数传递。
  • 浏览器使用代表性宿主样式验证弹窗宽度、操作栏布局、按钮、隐藏围栏、滚动区及 Vim 普通/插入模式;该检查不代表所有第三方主题均已实测。

参考资料

LeetCode Chinese 1.0.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 05:03

LeetCode Chinese 1.0.2

本文沿用项目文档的 md-output 编号与修订记录规范。

修订记录

编号 版本 修订人 修订内容 日期
001 1.0 jie.chen 修复全新 pnpm 环境的 ESLint 命令并发布安装包 2026-10-20

1. 本版功能

本版显式声明 ESLint 9.39.4 开发依赖,解决全新 pnpm 安装后云端检查找不到 eslint 命令的问题。该依赖只参与开发检查,不增加插件安装包体积。1.0.0、1.0.1 保留为源码检查标签,正式安装包使用 1.0.2。

  • 基于原 LeetCode 插件建立独立中文衍生版本,插件 ID 为 leetcode-chinese。
  • 使用力扣中国站账号、题库、中文题面、运行与提交接口。
  • 中文化设置、弹窗、判题、历史提交、竞赛和笔记工作流。
  • 支持中文 AI 调试、复盘、模式分类、相关变式与竞赛分析。
  • 修复 Alvis 标题格式化兼容问题,题目文件使用“题号. 中文题名.md”。
  • 模式、技巧和竞赛目录统一小写,并提供旧目录迁移。

补充 pnpm 的定向依赖提升配置,使现有 CodeMirror、Lezer 和 fetcher 间接依赖在全新安装时可被上游代码引用。未引入新库、升级依赖或扩大生产包体积。

2. 安装

下载 leetcode-chinese.zip,解压到知识库的 .obsidian/plugins/leetcode-chinese/,确认 main.js、manifest.json 和 styles.css 位于该目录根层级,然后启用 LeetCode Chinese。需要 Obsidian 桌面版 1.12.7 或更新版本。

从原插件迁移时先关闭原插件,再启用本插件。重新登录中国站并配置 AI,题目目录可继续选择原笔记目录。升级本插件时保留 data.json。

本次为 GitHub 发布,社区市场状态以 Obsidian Community 实际审核结果为准。


3. 致谢

基于 Mo Xu / moxu 的 obsidian-leetcode 改造。MIT 许可证及原作者版权声明保留。中文衍生版由 jie.chen 维护。