一个使用 Tauri 2 + Vue 3 + Rust 构建的本地优先代码片段与知识资产工作台,面向前端程序员和开发者设计。
- 全局快捷键唤起:随时随地快速搜索
- 片段优先检索:统一搜索代码片段、笔记和知识资产
- 前端语义筛选:支持
lang:ts、framework:vue、kind:component等开发语义搜索 - 开发语义识别:围绕语言、框架、类型、标签和分类组织结果
- 使用频率优化:常用项目优先显示
- 键盘导航:完整的键盘快捷键支持
- Markdown 文件存储:每个片段和笔记都是独立的
.md文件,支持 VS Code 等外部编辑器 - 工作区支持:支持多工作区管理,可同时管理多个笔记库
- 富文本编辑器:基于 TipTap 的 Markdown 编辑器
- 代码高亮:支持多种编程语言的语法高亮
- 前端片段组织:可按语言、框架、语义类型、标签和分类组织 Vue、React、CSS、TypeScript 等资产
- 复制即复用:支持复制原始代码、Markdown fenced code、VS Code snippet JSON,并处理
{{input:Name}}、{{clipboard}}等模板变量 - 分类管理:灵活的分类和标签系统,分类对应文件夹
- 反向链接:双向链接功能
- 实时预览:Markdown 实时渲染
- 快速检索:全文搜索,支持高级搜索语法
- 文件监听:自动同步外部编辑器的修改
- 智能缓存:优化的搜索索引,支持百万级文件快速搜索
- Wikilink 支持:使用
[[链接]]语法创建笔记链接 - 反向链接面板:查看哪些笔记链接到当前笔记
- 未链接提及:发现潜在的关联笔记
- 大纲视图:自动生成文档大纲
- 源码模式:直接编辑 Markdown 源码
- Git 同步:使用系统 Git 命令同步片段工作区到任意 Git 仓库(支持 GitHub、GitLab、Gitee 等)
- 截图与 OCR:截图标注、取色、贴图和 OCR 作为插件增强片段沉淀流程
- 翻译:Google、Bing、离线翻译与截图翻译按需启用
- 搜索源扩展:应用、书签、桌面文件和浏览器搜索源通过插件接入全局搜索
- 提醒与主题:Todo 提醒、系统主题等能力作为可安装插件,不挤占核心片段工作流
- 现代化 UI:基于 Element Plus 的精美界面
- 深色模式:支持亮色/暗色主题
- 自动切换:根据时间或系统自动切换主题
- 多语言支持:中文、英文界面
- 操作系统:Windows 10/11
- 开发环境:
- Node.js 18.0+
- pnpm 8.0+
- Rust 1.70+
- Tauri CLI 2.0+
- 克隆仓库
git clone https://github.com/GigaPuddings/snippets-code-t.git
cd snippets-code-t- 安装依赖
pnpm install- 开发模式运行
pnpm tauri dev- 构建应用
pnpm tauri build构建产物位于 src-tauri/target/release/bundle/
- 启动应用后会显示设置向导
- 选择数据存储位置(推荐非系统盘)
- 选择界面语言
- 完成设置,开始使用
如果您是从旧版本升级,可以将笔记迁移到 Markdown 文件存储:
- 打开设置 → 数据管理
- 点击"迁移到 Markdown 存储"
- 选择工作区文件夹
- 等待迁移完成
迁移后的优势:
- ✅ 每个笔记都是独立的
.md文件 - ✅ 可以使用任何文本编辑器(VS Code 等)
- ✅ 支持 Git 版本控制
- ✅ 更好的数据可移植性
详细说明请查看 Markdown 存储迁移指南。
| 技术 | 版本 | 用途 |
|---|---|---|
| Vue 3 | 3.5+ | 渐进式 JavaScript 框架 |
| TypeScript | 5.6+ | 类型安全的 JavaScript |
| Vite | 6.0+ | 下一代前端构建工具 |
| Pinia | 2.3+ | Vue 状态管理 |
| Vue Router | 4.x | 路由管理 |
| Element Plus | 2.9+ | UI 组件库 |
| TipTap | 3.17+ | 富文本编辑器 |
| CodeMirror | 6.x | 代码编辑器 |
| TailwindCSS | 3.4+ | 原子化 CSS 框架 |
| Vue I18n | 11.2+ | 国际化 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Tauri | 2.0+ | 跨平台桌面应用框架 |
| Rust | 1.70+ | 系统编程语言 |
| SQLite | 3.x | 嵌入式数据库 |
| Tokio | 1.36+ | 异步运行时 |
- 代码质量:ESLint、Prettier、Stylelint
- Git 工作流:Husky、Commitlint、Lint-staged
- 包管理:pnpm
snippets-code/
├── src/ # 前端源代码
│ ├── api/ # API 调用层
│ │ ├── fragment.ts # 片段 API
│ │ ├── markdown.ts # Markdown API
│ │ ├── plugins.ts # 插件包与资源 API
│ │ ├── appConfig.ts # 应用配置 API
│ │ └── github.ts # GitHub API
│ ├── components/ # 可复用组件
│ │ ├── TipTapEditor/ # 富文本编辑器
│ │ │ ├── extensions/ # 编辑器扩展
│ │ │ │ ├── LocalImage.ts # 本地图片扩展
│ │ │ │ └── CustomEnterBehavior.ts # 自定义回车行为
│ │ │ ├── BacklinkPanel.vue # 反向链接面板
│ │ │ └── ...
│ │ ├── SettingsContent/ # 设置内容组件
│ │ └── ...
│ ├── pages/ # 页面组件
│ │ ├── search/ # 搜索页面
│ │ ├── config/ # 配置页面与插件挂载入口
│ │ └── ...
│ ├── plugins/ # 插件系统与官方插件运行时
│ │ ├── git-sync/ # Git 同步插件
│ │ ├── screenshot/ # 截图/OCR 插件
│ │ ├── translation/ # 翻译插件
│ │ ├── todo/ # Todo 插件
│ │ └── ...
│ ├── hooks/ # Composables
│ │ ├── useFileWatcher.ts # 文件监听 Hook
│ │ └── ...
│ ├── store/ # Pinia 状态管理
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数
│ │ ├── error-handler.ts # 错误处理系统
│ │ ├── wikilink-parser.ts # Wikilink 解析器
│ │ ├── wikilink-updater.ts # Wikilink 更新器
│ │ ├── image-upload.ts # 图片上传工具
│ │ ├── file-sort.ts # 文件排序工具
│ │ ├── time-format.ts # 时间格式化
│ │ └── ...
│ ├── i18n/ # 国际化
│ └── styles/ # 全局样式
├── src-tauri/ # Rust 后端
│ ├── src/ # Rust 源代码
│ │ ├── db/ # 数据库模块
│ │ ├── markdown/ # Markdown 文件系统(新增多个子模块)
│ │ │ ├── commands.rs # Markdown 操作命令
│ │ │ ├── workspace.rs # 工作区管理
│ │ │ ├── workspace_manager.rs # 工作区管理器
│ │ │ ├── file_ops.rs # 文件操作
│ │ │ ├── file_system_manager.rs # 文件系统管理
│ │ │ ├── watcher.rs # 文件监听
│ │ │ ├── metadata.rs # 元数据管理
│ │ │ ├── migration.rs # 数据迁移
│ │ │ ├── index_optimized.rs # 优化的搜索索引
│ │ │ └── cache_manager.rs # 缓存管理
│ │ ├── plugins/ # 官方插件后端适配层
│ │ ├── app_config.rs # 应用与插件配置
│ │ ├── git_sync.rs # Git 同步兼容实现
│ │ ├── translation.rs # 翻译兼容实现
│ │ ├── hotkey.rs # 快捷键管理
│ │ ├── window.rs # 窗口管理
│ │ ├── json_config.rs # JSON 配置管理
│ │ └── attachment.rs # 附件管理
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── docs/ # 文档
│ ├── ARCHITECTURE.md # 架构文档
│ └── CODING_STANDARDS.md # 编码规范
├── plugin-registry/ # 插件市场索引、官方插件包和示例包
├── package.json # 前端依赖配置
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
└── README.md # 项目说明
支持两种类型的内容:
- 代码片段(Code):使用 CodeMirror 编辑器,支持语法高亮
- 笔记(Note):使用 TipTap 富文本编辑器,支持 Markdown
特性:
- 分类管理和标签系统
- 全文搜索和高级搜索语法
- 反向链接和 Wikilink 支持
- 导入/导出功能
- 复制原始代码、Markdown fenced code、VS Code snippet JSON
- 模板变量
{{input:Name}}、{{clipboard}}复制前解析 language/framework/kind前端语义元数据- 多工作区支持
搜索模式:
- 搜索模式:输入关键词搜索所有内容
- 列表模式:按类型浏览内容
- 标签模式:按标签筛选
片段工作流:
- 按语言、框架、类型、标签和分类筛选
- 代码片段搜索结果可直接复制为多种格式
- 应用、书签、桌面文件和搜索引擎作为插件搜索源接入
官方插件围绕片段工作流扩展能力,不属于核心编辑/工作区边界:
- Git 同步:同步片段工作区到任意 Git 仓库,并处理冲突、自动同步和状态展示
- 截图与 OCR:截图标注、取色、贴图、RapidOCR 资源包和截图翻译入口
- 翻译:Google、Bing、离线翻译和选中文本翻译
- Todo 与主题:提醒通知、Auto Dark Mode、系统主题切换
- 搜索源扩展:应用、书签、桌面文件和 Web 搜索引擎
- Markdown 存储迁移指南 - 完整的 Markdown 文件存储使用指南
- Markdown 存储快速入门 - 5 分钟快速上手
- Markdown 存储故障排除 - 常见问题解决方案
- 反向链接功能 - Backlinks 功能使用说明
- 反向链接使用指南 - 详细的使用教程
本项目遵循严格的代码质量标准,确保代码的可维护性和可靠性。
- ✅ 启用 TypeScript 严格模式
- ✅ 所有函数都有明确的类型定义
- ✅ 禁止使用
any类型(除非有充分理由并添加注释) - ✅ 使用类型守卫验证外部数据
- ✅ 所有导出函数都有 JSDoc 注释
- ✅ JSDoc 包含参数说明、返回值说明和使用示例
- ✅ 复杂逻辑添加行内注释说明
- ✅ 使用统一的 ErrorHandler 系统处理错误
- ✅ 所有异步操作都有错误处理
- ✅ 提供用户友好的错误消息
- ✅ 组件不超过 300 行
- ✅ 函数不超过 50 行
- ✅ 复杂逻辑提取到 composables 或工具函数
- ✅ 保持单一职责原则
- ✅ 使用 ESLint 进行代码检查
- ✅ 使用 Prettier 进行代码格式化
- ✅ 遵循 Vue 3 Composition API 最佳实践
详细的编码规范请参见 docs/CODING_STANDARDS.md。
欢迎提交 Issue 和 Pull Request!
- 代码符合项目的编码规范
- 通过所有代码质量检查
- 添加必要的注释和文档
- 遵循 Conventional Commits 规范
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
使用 Conventional Commits 规范:
feat: 新功能fix: 修复 bugdocs: 文档更新style: 代码格式(不影响代码运行)refactor: 重构perf: 性能优化test: 测试chore: 构建/工具链更新
在应用设置中可以自定义所有快捷键。
首次启动时可以选择数据存储位置,默认位置为用户文档目录。
在设置 > 数据管理中可以备份和恢复数据库。
目前仅支持 Windows 10/11。
查看 RELEASE_NOTES.md 了解最新版本的更新内容。
本项目采用 MIT 许可证。
感谢以下开源项目:
- Tauri - 跨平台桌面应用框架
- Vue.js - 渐进式 JavaScript 框架
- TipTap - 无头富文本编辑器
- Element Plus - Vue 3 UI 组件库
- CodeMirror - 代码编辑器
- Transformers.js - 机器学习模型
- RapidOCR-json - OCR 引擎
Made with ❤️ by GigaPuddings