一个功能完整的加密笔记插件,支持富文本编辑、多用户、文件夹管理和完全加密存储。
- 🔐 多用户支持 - 每个用户独立密码和笔记存储
- 📝 富文本编辑 - 粗体、斜体、下划线、背景颜色高亮
- 📊 行号显示 - 类似 Notepad++ 的编辑器体验
- 🗂️ 文件夹管理 - 创建、删除文件夹,保留空文件夹
- 🔒 完全加密 - AES-256 加密标题和内容
- 📤 导入导出 - 支持明文文件和目录结构
- 💾 自动保存 - 5秒自动保存
- ⚡ 同名检查 - 防止重复笔记
git clone https://github.com/zoominhao/vscode-secure-notes.git
cd vscode-secure-notes必需依赖:
- Node.js (推荐 v16+)
- npm 或 yarn
npm install这会安装:
crypto-js- AES 加密库@types/vscode- VSCode API 类型定义@types/crypto-js- crypto-js 类型定义
npm run compile编译后会在 out/ 目录生成 JavaScript 文件。
- 在 VSCode 中打开此项目
- 按
F5启动调试 - 在新窗口中测试插件功能
安装打包工具:
npm install -g vsce打包插件:
vsce package --allow-missing-repository生成 vscode-secure-notes-1.0.0.vsix 文件。
安装插件:
- 方式1:VSCode 扩展面板 →
...→ Install from VSIX - 方式2:命令行
code --install-extension vscode-secure-notes-1.0.0.vsix
首次使用或每次打开 VSCode:
- 点击侧边栏 📝 图标
- 点击 "🔒 点击设置密码以查看笔记"
- 输入用户名(如:zoomin)
- 输入密码
注意: 密码错误会明确提示,可重试。
方式1: 点击顶部 + 按钮 → 选择/创建文件夹
方式2: 右键文件夹 → "在此文件夹创建笔记"
- 创建空文件夹: 点击
+→ "新建文件夹" → 立即显示 - 删除文件夹: 右键文件夹 → 点击垃圾桶图标(会删除所有笔记)
- 空文件夹: 删除最后一个笔记后文件夹仍然保留
工具栏功能:
- B - 粗体
- I - 斜体
- U - 下划线
- 🎨 - 背景颜色(单击应用,双击选择新颜色)
- 清除 - 清除所有格式
使用方法:
- 选中文字
- 点击工具栏按钮
- 格式自动应用
导出(明文文件):
- 点击顶部 📤 图标
- 选择导出目录
- 生成文件夹和 .md 文件
导入:
- 点击顶部 ☁️ 图标
- 选择包含 .md 文件的目录
- 自动加密并导入(同名覆盖)
支持的云服务:
- ✅ WebDAV(Nextcloud、ownCloud、坚果云等)
- ✅ GitHub 仓库
- ⏳ 自定义服务器(框架已就绪)
配置 GitHub 同步(推荐示例):
-
Cmd+Shift+P→ "配置云同步" -
选择 "GitHub"
-
输入仓库:
zoominhao/MyNotes -
输入 GitHub Token(获取方法)
-
点击 🔄 图标 → 选择同步方式
同步方式:
- ⬆️ 上传到云端 - 将本地笔记上传覆盖云端
- ⬇️ 从云端下载 - 从云端下载覆盖本地
- 🔄 智能合并 - 自动合并本地和云端(按时间戳,保留最新版本)
示例配置:
GitHub 仓库: zoominhao/MyNotes
Token: ghp_xxxxxxxxxxxx(在 GitHub Settings → Developer settings 获取)
权限要求: repo
安全说明:
- ✅ 上传的是加密文件(
notes_用户名.encrypted) - ✅ 云端无法解密内容
- ✅ Token 安全存储在 VSCode Secrets
| 快捷键 | 功能 |
|---|---|
Cmd+S |
保存笔记 |
Cmd+Shift+P → "设置加密密码" |
登录/切换用户 |
Cmd+Shift+P → "注销当前用户" |
注销 |
Cmd+Shift+P → "配置云同步" |
配置云同步 |
Cmd+Shift+P → "立即同步" |
同步笔记 |
- 语言: TypeScript
- 框架: VSCode Extension API
- 加密: crypto-js (AES-256)
- 存储: JSON 文件
- 编辑器: 自定义 Webview
vscode-secure-notes/
├── package.json # 插件配置和依赖
├── package-lock.json # 依赖版本锁定
├── tsconfig.json # TypeScript 配置
├── .gitignore # Git 忽略文件
├── src/
│ └── extension.ts # 主代码(1500+ 行)
├── resources/
│ └── notebook.svg # 侧边栏图标
├── node_modules/ # npm 依赖(不提交)
├── out/ # 编译输出(不提交)
└── README.md # 文档
说明:
node_modules/- 运行npm install自动生成out/- 运行npm run compile自动生成- 两者都在
.gitignore中,不会提交到 Git
- 加密算法: AES-256
- 加密内容: 标题和内容都加密
- 存储文件:
notes_用户名.encrypted - 密码存储: 仅在内存中,重启后需重新输入
- 文件安全: 即使加密文件被盗,没有密码也无法解密
默认路径:
~/Documents/SecureNotes/notes_用户名.encrypted
自定义路径:
- 命令面板 → "更改存储路径"
- 或在设置中修改
secureNotes.storagePath
多用户文件:
~/Documents/SecureNotes/
├── notes_zoomin.encrypted # zoomin 用户的笔记
├── notes_alice.encrypted # alice 用户的笔记
└── notes_bob.encrypted # bob 用户的笔记
- 需要手动输入密码(每次重启 VSCode)
- 密码遗失无法恢复(请务必记住密码)
- 大量笔记时加密/解密可能较慢
- ✅ 多用户支持(独立密码和存储)
- ✅ 文件夹管理(创建、删除、保留空文件夹)
- ✅ 富文本编辑(粗体、斜体、下划线、颜色高亮)
- ✅ 行号显示(类似 Notepad++)
- ✅ 导入导出(明文文件结构)
- ✅ 圆形调色板设计
- ✅ 选区保存恢复
- ✅ 同名检查
- ✅ 自动保存
作者: zoominhao 仓库: https://github.com/zoominhao/vscode-secure-notes 许可: MIT