# GiteeNote_v1 **Repository Path**: ustcylw/gitee-note_v1 ## Basic Information - **Project Name**: GiteeNote_v1 - **Description**: gitee笔记 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GiteeNotes 基于 Next.js 15 的个人云端笔记系统。从 Gitee 拉取/推送 Markdown 与 HTML 笔记,提供类 Notion 编辑体验,集成 AI 辅助写作。 ## 功能特性 - 📝 **双格式笔记** — 支持 Markdown (`.md`) 与 HTML (`.html`) 两种笔记格式 - 🔄 **Git 原生同步** — 从 Gitee 导入仓库到本地,修改后同步回远程 - 📂 **本地路径支持** — 也可直接打开本地目录作为笔记仓库 - ✏️ **双模式编辑器** — Markdown 使用 Vditor 编辑/预览,HTML 使用 Monaco Editor - 🤖 **AI 助手** — 集成流式对话,支持多供应商大模型(Qwen、DeepSeek、智谱、Agnes、Ollama 等) - 🔧 **高度可配置** — 多模型管理、快捷键自定义、深色/浅色主题 - 🖱️ **可拖拽布局** — 文件树面板和 AI 面板支持鼠标拖拽调整宽度 - 🏠 **本地存储** — 笔记数据存在本地文件系统,设置和 Token 加密存储在 SQLite ## 技术栈 | 分类 | 技术 | 版本 | |------|------|------| | 框架 | Next.js (App Router) | 15.0+ | | 语言 | TypeScript | 5.0+ (strict) | | UI 组件 | shadcn/ui + Radix UI + Tailwind CSS | 3.4+ | | 状态管理 | Zustand | 4.5+ | | 数据库 | SQLite + Prisma ORM | 5.15+ | | Markdown 编辑器 | Vditor | 3.10+ | | HTML 编辑器 | Monaco Editor | 0.44+ | | AI 集成 | Vercel AI SDK + OpenAI 兼容接口 | 3.3+ | | 主题切换 | next-themes | 0.3+ | | 快捷键 | react-hotkeys-hook | 4.5+ | | 图标 | lucide-react | 0.400+ | ## 快速开始 ### 前置条件 - Node.js >= 20.10.0 - pnpm >= 8.15.0 - Git ### 安装 ```bash # 克隆仓库 git clone https://gitee.com/ustcylw/gitee-note_v1.git cd gitee-note_v1 # 安装依赖 pnpm install # 初始化 shadcn/ui 组件 npx shadcn@latest init -d --yes npx shadcn@latest add button input dialog dropdown-menu context-menu tabs select toast alert-dialog label card separator checkbox textarea # 初始化数据库 pnpm prisma generate pnpm db:push ``` ### 环境变量 在项目根目录创建 `.env.local`: ```env DATABASE_URL="file:./dev.db" # 可选预配置 # APP_SECRET=用于Token加密的密钥,不设置则使用开发默认密钥 ``` ### 启动 ```bash pnpm dev ``` 浏览器访问 `http://localhost:3000` ## 使用方式 ### 导入 Gitee 笔记仓库 1. 点击左侧面板的「导入笔记」按钮 2. 输入 Gitee 仓库名称(格式: `owner/repo`) 3. 如果是私有仓库,填写 Personal Access Token 4. 设置本地存放路径(默认 `repos/owner/repo`) 5. 点击「验证仓库」→「确认导入」 ### 打开本地笔记 1. 点击左侧面板的「打开本地路径」按钮 2. 输入本地目录路径 3. 该目录下的 `.md` 和 `.html` 文件会自动加载为笔记 ### 编辑笔记 1. 点击文件树中的笔记文件(默认预览模式) 2. 点击工具栏的「编辑」按钮切换到编辑模式 3. 修改内容后点击「保存」按钮或按 `Ctrl+S` ### 同步到 Gitee 1. 选择仓库后,点击工具栏的「同步」按钮 2. 公开仓库直接推送,私有仓库需输入 Token ### AI 助手 1. 在右侧 AI 面板中选择已配置的模型 2. 输入问题,可选勾选「携带当前笔记上下文」 3. AI 回复中的代码块可点击「应用到笔记」 4. 点击右上角齿轮图标配置模型 ### 快捷键 | 操作 | 快捷键 | |------|--------| | 保存笔记 | Ctrl+S | | 撤销 | Ctrl+Z | | 重做 | Ctrl+Shift+Z | | 切换预览/编辑 | Ctrl+E | | 打开 AI 面板 | Ctrl+Shift+A | | 同步到 Gitee | Ctrl+Shift+S | 快捷键可在设置页面自定义。 ### 布局调整 - 文件树面板和 AI 面板可拖拽分隔线调整宽度 - 点击收起按钮可暂时隐藏面板 ## 项目结构 ``` gitee-note_v1/ ├── app/ │ ├── (dashboard)/ # 主编辑界面(三栏布局) │ │ ├── _components/ │ │ │ ├── file-tree/ # 文件树面板组件 │ │ │ ├── editor/ # 编辑器面板组件 │ │ │ └── ai-panel/ # AI 助手面板组件 │ │ ├── page.tsx # 主页面 │ │ └── layout.tsx # 三栏布局 │ ├── api/ │ │ ├── ai/chat/ # AI 流式对话接口 │ │ └── gitee/ # Gitee 验证和 Token 管理 │ └── settings/ # 设置页面 ├── components/ │ ├── ui/ # shadcn/ui 组件 │ ├── editor/ # Vditor/Monaco 封装 │ └── ai-assistant/ # AI 聊天框 ├── lib/ │ ├── git/ # Git 操作封装 │ ├── gitee/ # Gitee API 封装 │ ├── crypto/ # Token 加解密工具 │ └── db/ # Prisma 客户端 ├── actions/ # Server Actions ├── store/ # Zustand 状态管理 ├── types/ # 全局类型定义 └── prisma/ # 数据库 Schema ``` ## 浏览器兼容性 - Chrome/Edge 90+ - Firefox 90+ - Safari 15+