feat: align local-first workspace direction

Document the VSCode-like local-first product shape, demote Convex to a control-plane role, and retire stale architecture drafts.

Add local workspace migration/export references plus smoke coverage for no-Convex managed workspace startup, local markdown title/body/options persistence, asset upload behavior, and Convex fixture export.

Verification: git diff --cached --check; node scripts/check-local-first-convex-guard.js --staged; node scripts/task444-convex-workspace-export-local-fixture-smoke.js; node scripts/task166-local-first-managed-workspace-no-convex-smoke.js; node scripts/task167-local-markdown-title-body-options-no-convex-smoke.js
This commit is contained in:
lix-2026
2026-05-19 08:11:58 +08:00
parent 68d321e297
commit cdff672aa5
67 changed files with 5242 additions and 932 deletions
@@ -0,0 +1,92 @@
# 基本编辑能力
> 来源:https://www.wolai.com/wolai/qN1Bh9YjLAXs8bxCJoAJ6C
> 用途:mnote 编辑器基础交互行为参考
>
> 实现状态:**大部分已实现** ✅ 11/18 🔧 3/18 ❌ 4/18
## 实现对照
## 核心概念
wolai 的编辑能力基于**块编辑器(Block Editor)**模式而非传统的富文本编辑器。
一段文本、一个列表项、一个图片、一个文件等,都被称为"块"。不同的块承担不同的角色,组合在一起组成一篇文章或一个主页。
## 功能清单
### 块操作
| 操作 | 说明 |
|------|------|
| **拖动块** | 所有块可通过左侧 `::` 图标拖动,拖动时出现辅助线指示位置。拖到另一个块的左/右侧可形成分栏结构 |
| **选中块** | 光标输入状态按 `Esc` 选中当前块;上下方向键切换选中块;`Shift+上下` 多选块 |
| **块选中后 Enter** | 回到光标编辑状态 |
| **块选中后 Ctrl+A** | 第一次选中当前块全部文本,第二次选中所有块 |
| **在上方/下方插入块** | 鼠标悬停 `::` 上方/下方点击 `+`;或 Esc 选中块后按 `a`(上方)/ `b`(下方)|
| **块布局显示** | `Ctrl+Shift+U` 显示/隐藏所有块的虚线框布局 |
### 分栏
将一个块拖到另一个块的左边或右边,拖拽辅助线从横线变竖线时放开,即可实现分栏。分栏的块可继续拖动调整位置关系。
### 块转换
所有文本类块可互相转换:文本↔标题、待办列表↔数字列表、引述文字↔代码片段。文本类块转换为页面时,缩进结构变为页面内容。
三种转换方式:
1. **块菜单**:点击 `::` → 转换为 → 选择类型
2. **快捷键**:平台特定快捷键
3. **快捷命令菜单**:按 `/` → 选择"转换为xxx",或输入 `/zh + 块名拼音首字母`(如 `/zhlb` 转换为列表)
### 复制/粘贴
- `Ctrl+C / Ctrl+V` 标准复制粘贴
- `Ctrl+Shift+V` 粘贴并匹配样式
### 缩进/取消缩进
- `Tab` 缩进(成为上一个块的子元素)
- `Shift+Tab` 取消缩进
### 文本样式
选中文字后出现文本样式工具条,支持:粗体、斜体、下划线、删除线、行内代码、行内数学公式、文字颜色/背景颜色。
### 超链接
- `Ctrl+K` 创建超链接
- 选中文字后直接粘贴 URL 可快速创建超链接
### 在页面中添加更多块
- 键入 `/` 唤起快捷命令菜单选择块类型
- 点击空行前面的 `+` 图标选择创建块类型
---
## mnote 实现状态
### ✅ 已实现
| 功能 | 证据 |
|------|------|
| 块概念(Block Editor 模式) | `EditorBlockType` 枚举定义 14 种块类型(`core-protocol/src/editor/model.rs:7`|
| 文本输入/换行/方向键 | leptos-tiptap island`rust/spikes/leptos-tiptap-spike/src/lib.rs`|
| 拖动块(`::` 手柄) | `HANDLE_SHELL_SELECTOR` 常量,拖拽事件处理(`lib.rs:45-47`|
| 选中块(Esc / 方向键 / Shift 多选) | `TiptapSelectionState` 选择状态管理 |
| 上方/下方插入块(a / b 快捷键) | 块手柄菜单中的插入操作 |
| 块转换(文本↔标题↔列表等) | `EditorCommand` 中的 `ReplaceBlock` 命令(`editor/command.rs:22-26`|
| 复制/粘贴(含匹配样式) | `write_mnote_text_to_clipboard` 剪贴板操作 |
| 缩进/取消缩进(Tab/Shift+Tab | Tiptap 原生 `indent`/`outdent` |
| 文本样式工具条(粗体/斜体/下划线/删除线/行内代码) | `TextMark::{Bold, Italic, Underline, Strike, Code}``editor/model.rs:33-39`|
| 超链接(Ctrl+K | `TiptapLinkResource` + `TiptapMarkName::Link` |
| 行内数学公式 | `TiptapExtension` 中包含数学公式扩展 |
| 选中文字颜色/背景色 | `TiptapColorAttributes` / `TiptapHighlightAttributes` |
### ❌ / 🔧 未实现/待完善
| 功能 | 状态 | 说明 |
|------|------|------|
| 分栏 | ❌ | `columnsLayout` Tiptap 扩展未注册 |
| 块布局显示(Ctrl+Shift+U| ❌ | 无对应功能 |
| 选中文字→页面引用 | 🔧 | `PageReference` 类型存在但快捷创建交互未实现 |
| 脚注与注释 | ❌ | 无脚注/注释 Tiptap 扩展 |
+32
View File
@@ -0,0 +1,32 @@
# 今日速记(日记)
> 来源:https://www.wolai.com/wolai/... (今日速记)
> 用途:mnote "日记/速记" 功能行为参考
>
> 实现状态:**未实现** ❌ 无今日速记/日记专用功能
## 核心概念
以今天日期命名的页面,快速记录当日内容。
## 触发方式
| 方式 | 说明 |
|------|------|
| 侧栏闪电图标 | 点击左侧边栏上方的 `⚡` 图标 |
| 快捷键 | `Ctrl + \`` 或 `Ctrl + ,` |
| 域名 | `wolai.today`(浏览器已登录时) |
## 行为
- 自动创建以今天日期命名的页面(如 `2026-05-19`
- 日期格式取决于工作空间设置
- 如果当日页面已放入垃圾桶,进入时仍显示该页面(带删除提示)
- 如果已彻底删除,则新建页面
## 设置
| 选项 | 说明 |
|------|------|
| 默认位置 | 在"空间偏好"中设定今日速记的父页面 |
| 默认模板 | 在"空间偏好"中设定创建时的模板页面 |
+34
View File
@@ -0,0 +1,34 @@
# 导入与导出
> 来源:https://www.wolai.com/wolai/... (导入与导出)
>
> 实现状态:**未实现** ❌ 无用户端导入/导出功能
## 支持的导入格式
| 格式 | 扩展名 | 支持压缩包 |
|------|--------|-----------|
| 文本文件 | .txt | zip |
| Markdown | .md | zip/rar |
| HTML | .html | - |
| Word | .docx | - |
| Confluence 导出 | .html | zip |
| 印象笔记导出 | .enex | - |
| CSV | .csv | - |
| OPML | .opml | - |
## 导入方式
- 左侧边栏顶部 `···` → 导入文件
- 编辑器右上角 `···` → 导入页面...
## 导出格式
| 格式 | 范围 |
|------|------|
| HTML | 页面+子页面(ZIP|
| Markdown | 页面+子页面(ZIP|
| PDF | 仅当前页面 |
| Word | 仅当前页面 |
| CSV | 数据表格 |
| 整个空间 | Markdownbeta,限创建者,7天/次)|
+91
View File
@@ -0,0 +1,91 @@
# 思维导图
> 来源:https://www.wolai.com/wolai/... (思维导图)
> 用途:mnote 思维导图功能行为参考
>
> 实现状态:**核心已实现** ✅ Wolai 的 7 种结构中已覆盖部分,6 种主题、节点操作、导出已实现
## 创建
| 方式 | 命令 |
|------|------|
| 快捷命令 | `/swdt /mindmap /naotu /brainmap` |
| 块转换 | 块菜单 → 转换为 → 思维导图, 或 `/zhwswdt` |
| 恢复原类型 | 块菜单/导图菜单 → 恢复为XX |
## 画布操作
| 操作 | 快捷键 |
|------|--------|
| 放大 | `Ctrl/Cmd + +` |
| 缩小 | `Ctrl/Cmd + -` |
| 重置缩放 | `Ctrl/Cmd + 0` |
| 定位到中心 | 点击 `⌂` 图标 |
| 全屏查看 | 点击右上角 `⤢` |
| 进入编辑模式 | 点击右上角 `✎` |
| 退出编辑模式 | `Esc` |
| 拖拽模式 | `Space`(非选中节点时)或点击左上角图标 |
## 节点操作
| 操作 | 快捷键 |
|------|--------|
| 插入同级主题 | `Enter` |
| 插入子主题 | `Tab` |
| 插入父主题 | `Shift + Tab` |
| 删除节点 | `Del` |
| 编辑节点文字 | `F2` 或双击 |
| 上移/前移 | `Ctrl/Cmd + Up` |
| 下移/后移 | `Ctrl/Cmd + Down` |
| 复制 | `Ctrl/Cmd + C` |
| 粘贴 | `Ctrl/Cmd + V` |
| 折叠/展开子节点 | `/` |
| 唤出菜单 | `Space`(选中节点时)|
| 右键菜单 | 鼠标右键 |
## 外观
| 功能 | 说明 |
|------|------|
| 主题颜色 | 6 种 |
| 结构 | 7 种:思维导图、逻辑结构图-左、逻辑结构图、组织结构图、鱼骨图、目录组织图、天盘图 |
| 紧凑布局 | 开启后最大程度节约页面空间 |
## 选择与展开
| 操作 | 说明 |
|------|------|
| 全选 | `Ctrl/Cmd + A` |
| 反选 | 选中节点后反选其余节点 |
| 选中同级 | 选中所有同级节点 |
| 选中子树 | 选中所有子节点 |
| 展开层级 | 支持展开到 1-6 层 |
## 导出
| 格式 | 方式 |
|------|------|
| PNG | 页面右上角 `···` → 保存图片 |
---
## mnote 实现状态
### ✅ 已实现
| 功能 | 证据 |
|------|------|
| 思维导图块类型 | `EditorBlockType::Mindmap``editor/model.rs:9`|
| 创建(/mindmap 命令)| `routes/mindmap_api.rs` 含完整 API |
| Leptos UI shell | `ssr/pages/mindmap.rs` |
| 快捷键节点操作(Enter/Tab/Del/F2| `routes/mindmap_shell.rs` |
| 全屏编辑 | `MINDMAP_SHELL_ZOOM_EVENT` |
| 导出图片 | `mindmap_shell.rs` 导出逻辑 |
| AI 可以读取思维导图 | `mnote.doc.fetch` 通过 projection 返回导图数据 |
### ❌ 未实现
| 功能 | 说明 |
|------|------|
| 7 种结构全部(逻辑结构图/鱼骨图/天盘图等)| 部分可能缺失 |
| AI **改写** 思维导图节点 | 无 `mnote.mindmap.*` Hermes 工具 |
| 紧凑布局 | 未确认 |
| 展开到 1-6 层 | 未确认 |
+46
View File
@@ -0,0 +1,46 @@
# 页面关系图
> 来源:https://www.wolai.com/wolai/... (页面关系图)
>
> 实现状态:**未实现** ❌
## 入口
- 侧边栏左上方
- 快捷键:`Ctrl/Cmd + Shift + P`
## 图例
| 元素 | 含义 |
|------|------|
| 灰色圆点 | 页面 |
| 实心内圈大小 | 子页面数量 |
| 半透明外圈大小 | 引用关系数量 |
| 直线 + 动画方向 | 层级关系(父→子)|
| 虚线曲线 + 动画方向 | 引用关系(A→B)|
| 蓝色节点 | 选中状态 |
## 布局方式
树形向下、树形向右、向心辐射、向外辐射、随机
## 关系筛选
层级关系、引用关系、全部
## 操作
| 鼠标 | 触控板 | 作用 |
|------|--------|------|
| 滚动 | 双指上滑/下滑 | 缩放 |
| 左键拖动 | 单指拖动 | 平移 |
| 左键单击 | 轻点 | 选中节点+显示一层关系 |
| Shift+左键 | Shift+轻点 | 多选 |
| Cmd/Ctrl+左键 | Cmd/Ctrl+轻点 | 显示全部关系 |
| 双击 | 双击 | 转到页面 |
| 悬浮 | 悬浮 | 高亮关联节点 |
| 空格 | 空格 | 最佳视图 |
## 3D 关系图(实验性)
支持 3D 视图旋转操作。
+88
View File
@@ -0,0 +1,88 @@
# 页面选项
> 来源:https://www.wolai.com/wolai/... (页面选项)
>
> 实现状态:**大部分已接通** — 15 个页面选项中 10 个已接通,5 个 UI 可见待接线
## 页面级设置
| 选项 | 说明 | 默认 |
|------|------|------|
| **自适应宽度** | 页面宽度调整为最大可用宽度 | 关闭(固定 760px) |
| **小字体** | 正文字体从 16px → 14px,标题等比缩小 | 关闭 |
| **标题目录** | 页面右侧显示 H1-H4 + 子页面层级目录,`Ctrl+Shift+L` 切换 | 关闭 |
| **标题自动编号** | 标题前显示层级编号 | 关闭 |
| **编辑保护** | 锁定页面不可编辑,上锁图标,`Ctrl+Shift+C` 切换 | 关闭 |
### 标题目录
- 层级:主标题(H1) → 大标题(H2) → 中标题(H3) → 小标题(H4) → 子页面
- 宽度自适应:宽窗口=较宽目录,窄窗口=较窄目录,极窄=圆点竖线目录
- 可通过 `···` 菜单折叠/展开层级
### 自定义页面
| 选项 | 值 |
|------|-----|
| 字体 | 默认 / 宋体 / 楷体 |
| 布局 | 紧凑 / 默认 / 宽容 |
| 显示块引用数字 | 被引用的块右侧显示引用计数 |
| 折叠引用页面列表 | 页面下方反向引用列表默认折叠 |
| 隐藏子页面 | 子页面块不再显示 |
| 页面"嵌入到"默认位置 | 指定嵌入目标块的默认位置 |
### 全局选项(仅对自己生效)
| 选项 | 说明 |
|------|------|
| 显示块结构 | 所有块显示灰色虚线框,`Ctrl+Shift+U` 切换 |
| 拼写检查 | 英文拼写错误显示红色虚线(默认关闭) |
| Good Night 模式 | 暗色主题,`Ctrl+Alt+G` 切换 |
| 跟随系统 | 自动切换亮/暗主题 |
## 页面操作菜单
| 操作 | 说明 |
|------|------|
| 撤回 | `Ctrl+Z` 撤销上一步 |
| 删除页面 | 进入垃圾桶 |
| 移动到... | 移动到指定页面下成为子页面,或移动到其他工作空间 |
| 嵌入到... | 嵌入为页面引用 |
| 添加为公共模板 | 仅多人空间 |
| 复制页面链接 | 带/不带标题 |
| 行内页面引用 | 复制行内引用链接 |
| 嵌入页面引用 | 复制嵌入引用链接 |
| 导出页面 | 多种格式 |
| 页面历史 | 浏览/恢复历史版本(付费空间) |
| 字数统计 | 总字数、块数、分类统计 |
| 待办列表统计 | 完成进度 |
---
## mnote 实现状态
> **从 `pageOptionIsSupported` 和 `pageOptionHint` 函数判断(`layout.rs:427-447`**
### ✅ 已接通(UI 完全实现)
| 功能 | key | hint |
|------|-----|------|
| 自适应宽度 | `wideLayout` | 主内容列宽度立即变化(760px↔980px|
| 小字体 | `smallText` | 正文排版更紧凑 |
| 标题自动编号 | `showHeadingNumbers` | 标题前显示顺序编号 |
| 布局密度 | `layoutDensity` | 段落与列表间距会变化 |
| 页面字体 | `pageFont` | 当前页面字体会切换 |
| 暗色模式 | CSS | `ssr/styles.rs` 暗色样式定义 |
| 删除页面(进垃圾桶) | `tree.resource.archive` | `resource_trash.rs` |
| 移动到... | `tree` 命令 | `routes/tree.rs` |
| 字数统计 + 待办统计 | `computeLivePageStats()` | 实时计算 wordCount/blockCount/todoTotal |
### 🔌 已注册但待接线(UI 选项可见,功能未完全接通)
| 功能 | key | hint |
|------|-----|------|
| 标题目录(TOC | `showToc` | "当前 Rust 壳还没有正式目录面板" |
| 编辑保护 | `protectEditing` | "当前主编辑器只显示降级说明" |
| 折叠反向引用 | `collapseBacklinks` | "当前 Rust 壳未挂回链面板" |
| 隐藏子页面 | `hideChildPages` | "当前页面壳还没有子页面块显隐" |
| 显示块引用数字 | `showBlockRefCount` | "当前页面壳未显示块引用计数" |
> 全部 page options 的 UI 开关面板实现在 `layout.rs:3760-3775`,每个 option 渲染为 toggle switchsupported 的显示蓝色开关,unsupported 的显示灰色开关+提示。`page_aggregate/builder.rs` 提供 page_options 的读写链。
+55
View File
@@ -0,0 +1,55 @@
# 页面引用(双向链接)
> 来源:https://www.wolai.com/wolai/... (页面引用)
>
> 实现状态:**数据层已实现,UI 层未完成** ✅ `[[` 引用和双向链接的块类型存在 ❌ 用户端创建交互未实现
## 核心概念
两种页面组织方式:**层级**(父子关系)和**引用**(双向链接)。
页面引用是双向链接(bi-directional link):A 引用了 B,则 B 页面下方会显示"引用的页面"列表。
## 创建方式
| 方式 | 操作 |
|------|------|
| `[[` 快捷输入 | 输入 `[[` 紧跟搜索词,定位到页面并创建引用 |
| `#` 快捷输入 | 空格后输入 `#` + 搜索词(类似标签)|
| 文本样式工具条 | 选中文本 → 工具条中 `[[` 图标 |
| 快捷键 | 选中文本 → `Ctrl/Cmd + Shift + R` |
## 预引用 & 创建新页面
使用工具条或快捷键时:
1. 匹配已有页面 → 直接引用
2. 无匹配 → 弹出选项:
- **创建新页面"xxx"**:直接创建
- **预引用**:创建"准备状态"引用,标题后显示 "(创建)",点击后弹出"创建页面"或"取消引用"
## 引用预览和别名
- 鼠标悬浮行内页面引用可预览
- 预览小窗顶部可设置别名(最长 100 字),别名后显示小箭头
---
## mnote 实现状态
### ✅ 已实现
| 功能 | 证据 |
|------|------|
| 页面引用块类型 | `EditorBlockType::PageReference``editor/model.rs:20`|
| 块引用块类型 | `EditorBlockType::BlockReference``editor/model.rs:21`|
| 引用标记策略 | `ReferenceTokenStrategy::{DoubleBracket, DoubleParen, InlineChip}``editor/model.rs:26-30`|
| AI 工具中的引用创建 | `mnote.block.insert_after` 等 Herem 工具可操作引用块 |
### ❌ 未实现
| 功能 | 说明 |
|------|------|
| `[[` 快捷输入创造引用 | 用户端 `[[` → 搜索 → 引用流程未实现 |
| `#` 快捷输入 | 未实现 |
| 选中文本 → 工具条 → 创建引用 | 文本工具条无引用按钮 |
| 预引用 & 创建新页面 | 无 "预引用"行为 |
| 引用预览/别名 | 无 |
| 被引用页面的"反向引用"列表 | 无页面底部的引用列表 |
+138
View File
@@ -0,0 +1,138 @@
# 快捷命令菜单
> 来源:https://www.wolai.com/wolai/... (快捷命令菜单)
> 用途:mnote `/` 命令菜单完整功能参考
>
> 实现状态:**部分实现** — 基础块类型命令可用,进阶块/行内元素/媒体/快速输入多数缺失
## mnote 实现状态
### ✅ 已实现的快捷命令对应
| 类别 | 覆盖情况 |
|------|---------|
| **基础块** | ✅ 文本、标题、列表、数字列表、待办列表、引述文字、分割线、代码片段,均通过 Tiptap 扩展注册(`EditorBlockType`|
| **行内样式** | ✅ 粗体/斜体/下划线/删除线/行内代码/链接 |
| **数学公式** | ✅ LaTeX 数学公式(Tiptap 扩展)|
| **页面引用** | ✅ `PageReference` / `BlockReference` 块类型 |
| **思维导图** | ✅ `/mindmap` 命令可用 |
### ❌ 未实现的快捷命令
| 类别 | 缺失 |
|------|------|
| **进阶块** | 按钮、进度条、数据表格、Mermaid 绘图、仪表数字、会议 |
| **行内元素** | Font Awesome 图标、脚注、注释 |
| **媒体** | 嵌入 Bilibili/腾讯/优酷/YouTube、嵌入第三方应用 |
| **快速输入** | 时间/日期/now 快捷命令 |
| **快速分栏** | 2/3/4/5 列分栏 |
| **快速功能** | 页面关系图入口设置、导入文件/CSV |
| **文字/背景色快捷命令** | `/red`, `/blue` 等颜色拼音命令 |
> **注意**:当前 leptos-tiptap island 使用 block handle shell`+` 按钮)而非 `/` slash 命令菜单。Tiptap 的 `SlashCommand` / `Suggestion` 扩展未注册。
## 核心交互
编辑状态下键入 **`/`(斜杠)**唤起快捷命令菜单,中文输入时顿号也会触发。键入 `/` 后继续输入内容可过滤菜单选项。
例如:`/tp` + Enter 即可插入图片。
## 完整命令列表
### 基础块
| 块类型 | 快捷命令(拼音/英文) |
|--------|----------------------|
| 文本 | `/wb /wenben /text /plain` |
| 待办列表 | `/dblb /daiban /todo` |
| 标题 H1-H4 | `/bt /biaoti /title /head /h1 /h2 /h3 /h4` |
| 列表(无序) | `/lb /liebiao /wuxu /wx /bullet` |
| 数字列表(有序) | `/szlb /shuzi /number` |
| 折叠列表 | `/zdlb /toggle` |
| 引述文字(blockquote | `/yswz /yinshuwenzi /quote` |
| 着重文字(callout | `/zzwz /zhuozhongwenzi /callout` |
| 分割线 | `/fgx /fengexian` |
| 代码片段 | `/dmpd /daimapianduan /code` |
| 数学公式 | `/sxgs /shuxuegongshi /latex /math` |
### 进阶块
| 块类型 | 快捷命令 |
|--------|---------|
| 按钮(模板按钮) | `/mban /mubananniu /template` |
| 进度条 | `/jdt /jindutiao /progressbar` |
| 简单表格 | `/jdbg /jiandanbiaoge /simpletable /table` |
| 数据表格(database | `/sjbg /shujubiaoge /database` |
| Mermaid 绘图 | `/mermaid` |
| 仪表数字 | `/ybsz /dashboard` |
| 会议 | `/hy /meeting` |
### 块转换
`/zhw + 块名称拼音首字缩写`,例如转换为"列表"输入 `/zhwlb`
可转换类型:文本、待办列表、标题、列表、数字列表、折叠列表、引述文字、着重文字、代码片段、数学公式
### 行内元素
| 类型 | 快捷命令 |
|------|---------|
| 行内数学公式 | `/hngs` |
| Emoji 表情 | `/bq /biaoqing /emoji` |
| Font Awesome 图标 | `/tb /fa /fontawesome` |
| 脚注 | `/jz /jiaozhu /footnote` |
| 注释 | `/zs /zhushi` |
### 媒体与附件
| 类型 | 快捷命令 |
|------|---------|
| 图片 | `/tp /tupian /img /image /picture` |
| 文件附件 | `/wj /wenjian /file` |
| 视频 | `/sp /video` |
| 音频 | `/yp /audio` |
| 嵌入 Bilibili | `/bzsp /bilibili` |
| 嵌入 腾讯视频 | `/txsp /tencent` |
| 嵌入 优酷 | `/yksp /youku` |
| 嵌入 YouTube | `/ygsp /youtube` |
| 嵌入第三方应用 | `/qrnr /embed` |
| 网址书签 | `/wzsq /bookmark` |
### 插入引用
| 类型 | 快捷命令 |
|------|---------|
| 页面引用链接 | `/ymyylj` |
| 行内块引用 | `/hnkyy` |
| 嵌入块引用 | `/qrkyy` |
### 快速输入
| 类型 | 快捷命令 |
|------|---------|
| 快速输入时间 | `/sj /shijian /time` |
| 快速输入日期 | `/rq /riqi /date` |
| 快速输入现在(日期+时间) | `/xz /xianzai /now` |
### 快速分栏
| 操作 | 快捷命令 |
|------|---------|
| 2 列分栏 | `/2` |
| 3 列分栏 | `/3` |
| 4 列分栏 | `/4` |
| 5 列分栏 | `/5` |
### 快速功能
| 操作 | 快捷命令 |
|------|---------|
| 个人设置 | `/grsz /per` |
| 空间设置 | `/kjsz /works` |
| 打开搜索 | `/sou /search` |
| 打开页面关系图 | `/ymgxt /network /diagram` |
| 导入文件 | `/drwj` |
| 导入数据表格(CSV | `/drbg` |
| 退出登录 | `/quit /exit /logout` |
### 文字颜色/背景色
`/ + 颜色拼音/缩写/英文`,如 `/hs``/red` 为红色。
+57
View File
@@ -0,0 +1,57 @@
# 右侧边栏
> 来源:https://www.wolai.com/wolai/... (右侧边栏)
> 用途:mnote 双栏编辑行为参考
>
> 实现状态:**部分实现** ✅ 上下文菜单有"在右侧边栏打开"动作 ❌ 右侧面板 UI 完整度待确认
## 基本操作
| 操作 | 快捷键 |
|------|--------|
| 在右侧边栏打开链接 | `Alt/Opt + 点击` |
| 打开/关闭右侧边栏 | `Alt/Opt + Q` |
| 切换主/右侧编辑区 | `Alt/Opt + \`` |
| 扩展右侧边栏为整页 | `Alt/Opt + F` |
## 顶部操作栏
1. 关闭右侧边栏
2. 后退
3. 前进
4. 展开为整页
5. 切换到主编辑区(左右互换)
## 调整大小
- 左右拖动左边线调整宽度
- 双击左边线均分两侧宽度
## 跨栏拖拽
右侧边栏和主编辑区中的块可互相拖拽:
| 操作 | 说明 |
|------|------|
| 移动到这里 | 从一边移动到另一边 |
| 拷贝副本到这里 | 复制到另一边 |
| 嵌入块引用 | 嵌入引用到另一边 |
| 行内块引用 | 停留片刻变为行内引用 |
---
## mnote 实现状态
### ✅ 已实现
| 功能 | 证据 |
|------|------|
| "在右侧边栏打开" 上下文菜单 | 文件树/页面树/附件菜单均有 `open-right` 动作(`layout.rs:3127, 3136, 3144, 3164`|
| 快捷键提示 | `Alt + Enter` 在搜索结果中提示右侧边栏打开(`layout.rs:3643, 3670`|
| 事件派发 | `dispatchSidebarEvent('tree.page.open-right', ...)` 等事件(`layout.rs:2961, 2975`|
### ❌ / Partial
| 功能 | 说明 |
|------|------|
| 右侧面板容器 UI | 事件已派发,但双栏编辑面板的具体实现待确认 |
| 跨栏拖拽 | 未实现 |
| 右侧边栏编辑 | 未确认 |
+43
View File
@@ -0,0 +1,43 @@
# 垃圾桶
> 来源:https://www.wolai.com/wolai/... (垃圾桶)
> 用途:mnote 回收站行为参考
>
> 实现状态:**核心已实现** ✅ 恢复/彻底删除/搜索 存在 UI 行为差异
## 入口
左侧边栏最下方打开"垃圾桶"。
## 功能
- 已删除页面存放在垃圾桶中
- 支持搜索关键词查找垃圾桶中的页面
- **恢复**:恢复到"我的页面"列表下
- **彻底删除**:不可撤销,无法找回
## 操作确认
- 默认打开"操作确认"开关
- 打开时:恢复/彻底删除需要二次确认
- 关闭时:直接执行
---
## mnote 实现状态
### ✅ 已实现
| 功能 | 证据 |
|------|------|
| 删除页面进垃圾桶 | `tree.resource.archive``routes/tree.rs`|
| 恢复(回到原位置)| `tree.resource.restore` + 恢复位置记录(`design/04-tree-domain/process/4-28`|
| 彻底删除 | `tree.resource.purge``routes/resource_trash.rs`|
| 垃圾桶搜索 | 已有搜索功能 |
| 资源(附件/mindmap/table)垃圾桶 | `resource_trash.rs` 覆盖 3 种资源类型 |
### ❌ / Partial (相对于 Wolai)
| 功能 | 说明 |
|------|------|
| 操作确认开关 | 未确认是否实现 |
| 恢复后的 reveal/focus | `design/04-tree-domain/process/4-28` 已计划 |
| 双浏览器 no-refresh | `design/04-tree-domain/process/4-34` 进行中 |