Files
mnote/recycle/design/wolaiplan copy 2.md
T
2026-04-13 19:21:42 +08:00

137 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Wolai 深度复刻计划 (Wolai Deep Replication Plan)
**目标**:深度复刻 Wolai 的核心体验,重点解决左侧树状侧边栏的 Bug,并完善右侧编辑器的块交互(特别是「转为页面」功能)。
**基准**:严格遵循 `design/ui_react.md``design/PHASE_1.5_TURN_TO_PAGE_EXACT_CLONE.md`
## 1. 现状分析 & 问题定位
当前项目已具备基础骨架(Next.js + Supabase + BlockNote),但在精细度和交互上仍有差距:
* **侧边栏 (Sidebar)**
* 存在 Bug:拖拽抖动、状态同步延迟、无限嵌套渲染可能出错。
* 缺失细节:右键菜单(重命名/删除)、多选操作、精确的 Hover/Active 样式。
* **编辑器 (Editor)**
* 缺失核心功能:「转为页面」互转逻辑。
* 样式细节:BlockNote 默认样式需定制为 Wolai 的蓝色系 (#2563eb)。
## 2. 实施路线图
### 阶段 A: 侧边栏重构与修复 (Sidebar Overhaul)
**目标**:打造丝滑、无 Bug 的无限嵌套文件树。
1. **数据层优化**
## 3. 技术规范 (Strict Guidelines)
* **CSS 框架**Tailwind CSS (v4)。
* **图标库**`lucide-react` (通用), `react-icons` (特定品牌)。
* **状态管理**`zustand` (全局 UI 状态), `swr` / `react-query` (数据获取)。
* **拖拽库**`@dnd-kit/core`, `@dnd-kit/sortable` (推荐,比 react-dnd 更现代且易于控制样式)。
## 4. 验证计划
### 自动化测试
* (暂无,依赖手动验证)
# Wolai 深度复刻计划 (Wolai Deep Replication Plan)
**目标**:深度复刻 Wolai 的核心体验,重点解决左侧树状侧边栏的 Bug,并完善右侧编辑器的块交互(特别是「转为页面」功能)。
**基准**:严格遵循 `design/ui_react.md``design/PHASE_1.5_TURN_TO_PAGE_EXACT_CLONE.md`
## 1. 现状分析 & 问题定位
当前项目已具备基础骨架(Next.js + Supabase + BlockNote),但在精细度和交互上仍有差距:
* **侧边栏 (Sidebar)**
* 存在 Bug:拖拽抖动、状态同步延迟、无限嵌套渲染可能出错。
* 缺失细节:右键菜单(重命名/删除)、多选操作、精确的 Hover/Active 样式。
* **编辑器 (Editor)**
* 缺失核心功能:「转为页面」互转逻辑。
* 样式细节:BlockNote 默认样式需定制为 Wolai 的蓝色系 (#2563eb)。
## 2. 实施路线图
### 阶段 A: 侧边栏重构与修复 (Sidebar Overhaul)
**目标**:打造丝滑、无 Bug 的无限嵌套文件树。
1. **数据层优化**
## 3. 技术规范 (Strict Guidelines)
* **CSS 框架**Tailwind CSS (v4)。
* **图标库**`lucide-react` (通用), `react-icons` (特定品牌)。
* **状态管理**`zustand` (全局 UI 状态), `swr` / `react-query` (数据获取)。
* **拖拽库**`@dnd-kit/core`, `@dnd-kit/sortable` (推荐,比 react-dnd 更现代且易于控制样式)。
## 4. 验证计划
### 自动化测试
* (暂无,依赖手动验证)
### 官方操作策略 (Official Operational Strategies)
* **块操作逻辑**
* **转换 (Turn into)**:核心逻辑是“保留内容,改变形式”。通过 `::` 菜单、快捷键或 `/` 菜单触发。
* **层级 (Hierarchy)**
* **缩进**:使用 `Tab` / `Shift+Tab` 控制缩进,建立父子关系。
* **嵌套**:拖拽块到另一个块的**内部**(下方缩进位)可创建嵌套结构。
* **布局 (Layout)**:通过拖拽块到左右边缘(显示垂直蓝线)创建分栏。支持 `/2` 等快捷指令。
* **多选 (Multi-select)**:支持鼠标框选或 `Shift+Click` 连续选择。`Esc` 选中当前块,`Shift+Arrow` 多选。
* **Markdown 自动格式化**:输入 `* ` 自动变列表,`# ` 变标题,`[] ` 变待办,`()` 变高级待办,`+[]` 变折叠待办。
* **引用系统 (Reference System)**
* **块引用 (Block Ref)**
* **行内引用**`[[``# ` 触发。虚线下划线,不可编辑,点击跳转。快捷键 `Esc` -> `H`
* **嵌入引用**:独立块,左侧虚线边框,可编辑(有限制)。快捷键 `Esc` -> `Q`
* **页面引用 (Page Ref)**
* **双向链接 (Backlinks)**:页面底部显示“反向引用”列表。
* **预引用**:引用不存在的页面时,可创建“预引用”占位符或直接新建页面。
* **聚合应用**:如 `[[TODO]]` 标签聚合。
* **页面选项 (Page Options)**
* **宽屏模式**:切换定宽 (760px) / 自适应宽度。
* **小字体**16px -> 14px 全局缩放。
* **标题目录 (TOC)**:右侧悬浮,层级 H1-H4 + 子页面。
* **统计**:字数统计、块数统计。
* **待办列表 (Todo List)**
* **进度条联动**:父块为进度条时,自动计算子待办块的完成百分比。
* **高级待办**:4种状态(未做、进行中、完成、取消)。`Alt+Click` 切换取消。
* **图片 (Image)**
* **插入**:命令、拖拽、复制、URL。
* **OCR**:需手动在菜单中点击“文字识别”以建立索引。
* **编辑**:支持裁剪、马赛克、绘图。
### 手动验证清单
* **隐式 OCR**:官方文档未强调 OCR 功能,印证了其作为后台搜索索引服务的定位,而非前台核心编辑功能。
* **文件预览**:依赖第三方服务或浏览器原生能力,保持轻量化。
### 手动验证清单
1. **侧边栏测试**
* [ ] 创建 3 层嵌套页面,确认缩进正确。
* [ ] 拖拽页面 A 到页面 B 内部,确认无刷新实时更新。
- **底部**:结果计数("共 N 条匹配结果"+ 快捷键提示("Ctrl+Enter 新窗口打开", "Alt+Enter 右侧边栏打开")。
- **OCR 策略 (Hidden OCR)**Live Site 验证确认):
- **机制**:图片上传后,后端异步进行 OCR 识别。
- **搜索**:识别的文本会被索引,支持通过关键词搜索到包含该文本的图片页面。
- **展示**:默认情况下,OCR 文本**不直接显示**在页面上(保持页面整洁),而是作为图片的元数据存在。
- **高亮**:在搜索结果摘要中,会高亮显示匹配的 OCR 文本。
- **图片块操作 (Image Block Operations)**Live Site 捕捉确认):
- **菜单项**
- **图片边框** (Toggle)。
- **设置图片超链接...**
- **评论**
- **对齐** (左/中/右)。
- **查看原图** / **全屏查看**
- **编辑图片** (裁剪/旋转等)。
- **文字识别 (OCR)** (手动触发入口)。
- **添加说明 (Caption)** / **说明文字居中**
- **下载**
- **恢复默认大小**
- **替换图片...**
- **文件预览 (File View)**Live Site 捕捉确认):
- **Office 文档 (.docx, .xlsx, .pptx)**
- **策略**:不自行开发渲染器,调用 **Microsoft Office Online****Google Docs Viewer** 服务。
- **实现**:在新标签页打开,或使用 iframe 嵌入 Office Online 预览链接。
- **组件推荐**`react-doc-viewer` (支持多种格式,自动降级) 或直接构建 Office Online URL。
- **PDF 文档**
- **策略**:使用 `react-pdf` 在应用内直接渲染,提供更好的阅读体验。
- **功能**:翻页、缩放、下载。
## 5. 下一步行动 (Next Steps)
建议优先执行 **阶段 A (侧边栏)**,因为它是整个应用的导航骨架,Bug 最影响体验。
然后执行 **阶段 B**,打通「块 <-> 页面」的流转。