Skip to content

loresun/ainotebook

Repository files navigation

智能笔记本 (Notebook AI)

一个现代化的智能笔记应用,集成了AI辅助功能,支持Markdown编辑和实时预览。采用四栏布局设计,提供文件夹管理、智能编辑、AI对话等全方位的笔记体验。

🌟 核心功能

📁 文件夹管理

  • 层级文件夹:支持多级文件夹嵌套组织
  • 拖拽操作:直观的拖拽移动笔记到文件夹
  • 文件夹统计:实时显示每个文件夹的笔记数量
  • 快速导航:一键切换全部笔记和未归类笔记
  • 颜色标识:自定义文件夹颜色便于区分

📝 Markdown编辑器

  • Monaco编辑器:专业级代码编辑体验
  • 分栏预览模式:左侧编辑,右侧实时预览
  • 纯编辑模式:专注写作的全屏编辑体验
  • 语法高亮:完整的Markdown语法支持
  • 自动保存:实时保存,永不丢失内容
  • 智能提示:AI驱动的编辑建议和补全

🤖 AI智能功能

  • 智能补全:Tab键触发AI内容补全
  • 智能操作:选中文本后的AI辅助操作
    • 翻译、总结、扩写、润色
    • 代码解释、优化建议
    • 自定义AI指令
  • 标题生成:基于内容自动生成合适的标题
  • AI对话:与笔记内容进行智能对话
  • 多模型支持:支持DeepSeek、火山引擎、SiliconFlow等多个AI提供商

🎨 用户界面

  • 四栏布局:文件夹面板 + 笔记列表 + 编辑器 + AI面板
  • 可调节布局:支持面板宽度调整和折叠
  • 响应式设计:适配不同屏幕尺寸
  • 暗色模式:护眼的深色主题
  • 可调字体:自定义编辑器字体大小
  • 现代化UI:基于Tailwind CSS的精美界面

💾 数据管理

  • 本地存储:基于IndexedDB的离线数据存储
  • 数据导出:支持Markdown、JSON、ZIP格式导出
  • Flomo导出:一键导出到Flomo笔记平台
  • 备份恢复:完整的数据备份和恢复功能
  • 笔记搜索:快速查找笔记内容
  • 布局状态:自动保存和恢复界面布局设置

⚙️ AI配置管理

  • 多提供商支持:支持OpenAI、DeepSeek、豆包等多个AI服务
  • 场景化配置:为不同使用场景配置专用模型
  • 模型管理:灵活的AI模型增删改查
  • API密钥管理:安全的密钥存储和管理

🛠️ 技术架构

前端技术栈

  • React 18 - 现代化的用户界面框架
  • TypeScript - 类型安全的JavaScript超集
  • Vite - 快速的构建工具和开发服务器
  • Tailwind CSS - 实用优先的CSS框架
  • Zustand - 轻量级状态管理库

核心依赖

  • @monaco-editor/react - 专业代码编辑器
  • marked - Markdown解析和渲染
  • react-markdown - React Markdown渲染组件
  • lucide-react - 现代化图标库
  • jszip - ZIP文件生成和处理
  • sonner - 优雅的通知提示组件
  • dexie - IndexedDB数据库操作库
  • React Router DOM - 客户端路由

数据存储

  • Dexie - 基于IndexedDB的现代数据库操作
  • localStorage - 配置和设置存储
  • 实时同步 - 多组件间的数据状态同步

🚀 快速开始

环境要求

  • Node.js 20+
  • pnpm (推荐) 或 npm

安装依赖

# 使用 pnpm (推荐)
pnpm install

# 或使用 npm
npm install

启动开发服务器

# 使用 pnpm
pnpm run dev

# 或使用 npm
npm run dev

构建生产版本

# 使用 pnpm
pnpm run build

# 或使用 npm
npm run build

预览生产版本

# 使用 pnpm
pnpm run preview

# 或使用 npm
npm run preview

📖 使用指南

基础操作

  1. 创建文件夹:在文件夹面板点击"新建文件夹"按钮
  2. 创建笔记:点击笔记列表面板的"新建笔记"按钮
  3. 编辑笔记:在Monaco编辑器中输入Markdown内容
  4. 预览模式:点击预览按钮切换到分栏预览模式
  5. 保存笔记:内容会自动保存,也可使用Ctrl+S手动保存
  6. 移动笔记:拖拽笔记到目标文件夹进行分类

AI功能使用

  1. 智能补全:在编辑时按Tab键触发AI补全
  2. 智能操作:选中文本后会出现AI操作面板
  3. 生成标题:点击标题栏的标题生成按钮
  4. AI对话:使用右侧AI面板与笔记内容对话
  5. 导出到Flomo:点击导出按钮一键发送到Flomo平台

配置AI服务

  1. 打开设置面板(右上角齿轮图标)
  2. 在"AI配置"标签页中配置API密钥和模型
  3. 在"提供商"标签页中管理AI服务提供商
  4. 在"场景配置"标签页中为不同场景选择模型

⌨️ 快捷键

快捷键 功能
Ctrl+S 保存笔记
Ctrl+E 切换预览模式
Ctrl+Z 撤销
Ctrl+Y 重做
Ctrl+Enter 生成标题
Ctrl+Shift+E 导出笔记
Ctrl+Shift+C 复制全文
Ctrl+Shift+F 导出到Flomo
Tab 智能补全
F11 切换全屏模式

🔧 配置说明

AI服务配置

应用支持多个AI服务提供商:

  • DeepSeek:DeepSeek Chat、DeepSeek Coder系列模型
  • 火山引擎:豆包系列模型、Kimi、DeepSeek V3等
  • SiliconFlow:GLM-4.5、Qwen3系列、Kimi K2等
  • 自定义提供商:支持添加其他兼容OpenAI API的服务

场景化配置

可以为不同使用场景配置专用模型:

  • 智能补全:用于文本补全的模型
  • AI操作:用于文本处理的模型
  • 标题生成:用于生成标题的模型
  • 内容对话:用于对话交互的模型

数据备份

  • 自动备份:应用会自动保存所有数据到本地
  • 手动导出:可导出为JSON或ZIP格式
  • 数据恢复:支持从备份文件恢复数据

🌐 部署

Vercel部署

项目已配置Vercel部署,推送到GitHub后会自动部署。

自定义部署

  1. 构建项目:pnpm run build
  2. dist目录部署到任何静态文件服务器

📁 项目结构

src/
├── components/          # React组件
│   ├── MarkdownEditor.tsx    # Monaco Markdown编辑器
│   ├── NoteList.tsx         # 笔记列表
│   ├── FolderPanel.tsx      # 文件夹管理面板
│   ├── AIChatPanel.tsx      # AI对话面板
│   ├── SettingsPanel.tsx    # 设置面板
│   ├── SmartActionPanel.tsx # 智能操作面板
│   ├── AboutPanel.tsx       # 关于面板
│   ├── ResizeHandle.tsx     # 布局调整组件
│   └── EnhancedMarkdownRenderer.tsx # 增强Markdown渲染
├── hooks/              # React Hooks
│   ├── useFolders.ts       # 文件夹管理Hook
│   ├── useLayoutState.ts   # 布局状态Hook
│   └── useTheme.ts         # 主题管理Hook
├── store/              # 状态管理
│   └── index.ts            # Zustand store
├── lib/                # 核心库
│   ├── ai-service.ts       # AI服务封装
│   ├── database.ts         # 数据库操作
│   └── utils.ts            # 工具函数
├── types/              # TypeScript类型定义
│   └── index.ts
├── utils/              # 工具函数
│   └── export.ts           # 导出功能
└── pages/              # 页面组件
    └── Home.tsx            # 主页面

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支:git checkout -b feature/new-feature
  3. 提交更改:git commit -am 'Add new feature'
  4. 推送分支:git push origin feature/new-feature
  5. 提交Pull Request

开发规范

  • 使用TypeScript编写代码
  • 遵循ESLint规则
  • 组件大小控制在300行以内
  • 添加适当的注释和类型定义

📄 许可证

MIT License - 详见 LICENSE 文件

🔗 相关链接

🆕 版本更新

v1.2.0 (当前版本)

  • ✨ 新增文件夹管理功能,支持多级嵌套
  • ✨ 升级为四栏布局,增加文件夹面板
  • ✨ 集成Monaco编辑器,提供专业编辑体验
  • ✨ 新增导出到Flomo功能
  • ✨ 优化AI服务配置,支持更多提供商
  • ✨ 改进布局状态管理,支持面板调整
  • 🐛 修复数据库schema兼容性问题
  • 🐛 优化拖拽操作的用户体验

智能笔记本 - 让AI成为你的写作伙伴 ✨

About

一个现代化的智能笔记应用,集成了AI辅助功能,支持Markdown编辑和实时预览。采用四栏布局设计,提供文件夹管理、智能编辑、AI对话等全方位的笔记体验。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages