💡 写在前面
春招和暑期实习的节点越来越近了,相信很多同学和我一样,每天都在死磕算法题或者八股文。但在高强度的刷题过程中,我发现自己陷入了一个极其内耗的死循环:刷完就忘,复盘极其耗时。
很多时候,前脚刚看懂了灵茶山艾府(灵神)等大佬的精妙题解,遇到同类变种题大脑又是一片空白。如果想认真做复盘笔记,不仅要在代码编辑器、网页和笔记软件之间来回切换,还要手动去调整 Markdown 里的代码高亮和 LaTeX 数学公式,半个多小时过去了还没进入核心逻辑的梳理。
作为一个程序员,遇到这种机械的重复劳动,第一反应当然是:写个工具自动化。
于是,我花了点时间开发了这款浏览器插件 CodeNote Helper,主打一个自动化刷题复盘和陪伴感。目前代码已经全部开源。
🔗 GitHub 仓库地址:CodeNote Helper (如果觉得有帮助,欢迎各位老哥给个 Star ⭐️)
🛠️ 核心功能展示
不搞花里胡哨的,这个插件核心就解决两个问题:无痛沉淀知识 和 缓解焦虑。
1. 一键生成专属硬核笔记
在 LeetCode 或是 CodeFun2000 刷题时,只需一键呼出插件面板,它会自动抓取当前页面的题面描述、你提交的代码以及参考题解,并调用大模型 API 自动生成一份逻辑严密的深度解析。 生成的笔记自带完美的 Markdown 结构、代码高亮以及 KaTeX 渲染的数学公式。你只需要把精力 100% 留给算法逻辑本身。
2. 算法岗深度学习面试神助攻
如果你是投递 算法岗的同学,插件也精准适配了 Deep-ML、TorchCode 等深度学习手撕代码网站。在你敲完 Attention、BatchNorm 等高频考点后,它能自动发掘面试官最爱问的延伸考点和底层逻辑,一键沉淀出专属的面试八股笔记。
3. 赛博猫猫沉浸式陪伴
为了缓解高强度刷题带来的焦虑,我在侧边栏塞进了一只像素小猫(纯自己手绘/设计)。它会安静地陪你查阅资料、死磕难点,刷完完整的题单(比如 Hot100、面试经典 150)还会触发小彩蛋。
4. 数据掌握在自己手里
插件支持 浏览器原生 Sync 同步 和 坚果云 WebDAV,辛苦整理的秋招冲刺笔记会自动在云端备份,随时随地跨设备复习。
⚙️ 技术选型与架构拆解
在开发这个插件的过程中,也踩了不少坑,这里和大家简单分享一下技术实现细节。
项目基于 Chrome Extension Manifest V3 标准开发,没有引入过于庞大的前端框架,主打轻量和响应速度。
- DOM 解析与注入 (
content scripts) : 为了在不破坏原网页结构的前提下注入面板,我使用了 Shadow DOM 来隔离 CSS 样式(避免content/leetcode.css污染力扣原站样式)。题目数据、代码片段则是通过精准的 DOM 节点分析和选择器来提取。 - Markdown 与公式的流式渲染 (
shared/markdown-stream-render.js) : 大模型的输出是流式的(Stream),为了让用户在等待时能看到打字机效果,且数学公式能被实时正确解析,我集成了KaTeX。这里的一个难点是如何在流式输出的过程中,不破坏 LaTeX 公式的闭合标签。我通过在渲染层做了一层缓冲(Buffer)解析,确保$$或$包裹的公式块完整后再交由 KaTeX 渲染。 - 持久化与状态管理 (
shared/storage.js&problem-data) : 除了 Chrome 提供的chrome.storage.local,为了让笔记真正私有化,我手搓了 WebDAV 的对接逻辑 (providers/nutstore-webdav.js)。通过标准的 PUT/GET 请求,实现了笔记数据与坚果云等第三方网盘的丝滑同步。
🚀 后续计划 & 欢迎共建
目前 CodeNote Helper 已经帮我极大地提升了每日复盘的效率,但它还有很多可以完善的地方。接下来的 Todo List 包括:
- 支持一键导出笔记到 Notion / Obsidian。
- 支持对接本地部署的 Ollama 模型,彻底实现免费、隐私的 AI 辅助。
- 适配更多小众的题库网站。
项目刚刚开源,代码中如果存在不够优雅的地方,非常欢迎各位大佬指正!如果你在备战面试的过程中也有类似的需求,不妨克隆下来或者去 Chrome 商店(chromewebstore.google.com/detail/code…
遇到任何 Bug 或者有新的 Feature 想法,欢迎在 GitHub 提 Issue 或 PR,我们一起把它打磨得更好!
🔗 再贴一下源码地址:[github.com/Philip-Cao-…]
祝大家在接下来的招聘季里,都能斩获心仪的 Offer!🏆 冲冲冲!