Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

学习笔记 · 心得记录

随读随记:在正文任意位置用鼠标选中文字,就会出现"📝 记笔记"工具条;笔记锚定到选中文本,刷新页面后自动重新高亮。数据默认只存在你的浏览器 localStorage(不注册、无账号、无数据库、别人看不到);需要沉淀时一键导出为 GitHub Issue,或复制 Markdown 粘贴到 Discussions / 任意笔记软件。

这个工具能做什么

动作说明
划词记笔记选中正文文字 → 点工具条"记笔记"→ 写下心得保存;选中处立即高亮
查看 / 编辑点高亮文字可编辑该条笔记;右下角 📝 面板可看"本页 / 全部"
复制 Markdown一键复制带页面来源和划词引用的 Markdown,可粘贴到 GitHub Discussions
导出 Issue预填 issues/new?title=…&body=…,登录 GitHub 后确认即发布,无需 token
删除单条删除(有确认),对应高亮一并移除;不提供"清空",防误删

高亮是怎么实现的

笔记保存时记录选中文字在正文 #content 里的字符起止偏移,刷新页面后按偏移重新包裹 <mark>。局限:

  • 偏移基于当前页面文本;如果这本书的内容后来被修改(比如某章重写),旧笔记的偏移可能错位或不再高亮,但笔记内容和原文都还在面板里,复制/导出不受影响;
  • 跨多个连续段落的选择会按文本节点分段高亮,显示为一段连续的黄色底纹。

数据存在哪

  • localStorage:键为 cs-notes:v1:<页面路径>,只在你当前浏览器。换设备、清缓存、开无痕即不可见——它是"草稿区",不是存档。
  • GitHub Issues:导出后存在仓库 Issues 里,可搜索、打标签、转 PR,随仓库一起版本化。
  • GitHub Discussions:GitHub 没有"预填新建讨论"的链接,所以这里用"复制 Markdown"代替——粘贴发布即可;若想"一键发 Discussion",后续可以注册免费 OAuth App 走 GraphQL API(本工具暂不内置)。

把笔记变成正式章节

笔记面板里的内容只是草稿。想让它成为这本书的一部分(被搜索、随 GitHub Actions 部署、保留版本历史):

  1. 把内容整理成 Markdown,追加到对应部分的章节文件,或新建文件;
  2. 挂进 SUMMARY.md
  3. commit + push,Actions 自动构建部署到 GitHub Pages。

实现与配置

  • 组件:notes.js(无依赖原生 JS,样式内联)。
  • 挂载:book.toml[output.html]additional-js = ["notes.js"]
  • 目标仓库:notes.js 顶部的 GITHUB_REPO 常量,导出 Issue 时指向该仓库。