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:
@@ -0,0 +1,145 @@
|
||||
# Wolai 基础功能 ↔ mnote 实现完整对照矩阵
|
||||
|
||||
> 生成时间:2026-05-19
|
||||
> 说明:逐项对照 Wolai 帮助中心基础功能和当前 mnote 代码,每项标注 ✅/❌/🔧 并附证据路径
|
||||
|
||||
## 一、基础操作
|
||||
|
||||
| # | Wolai 功能 | 状态 | mnote 证据 |
|
||||
|---|-----------|------|-----------|
|
||||
| 1 | **基本编辑**(输入/换行/方向键) | ✅ | leptos-tiptap island ProseMirror 编辑器 |
|
||||
| 2 | **块概念**(Block Editor 模式) | ✅ | `EditorBlockType` 枚举定义 15 种块(`core-protocol/src/editor/model.rs:7-22`)|
|
||||
| 3 | **拖动块**(:: 手柄拖拽) | ✅ | `HANDLE_SHELL_SELECTOR` / `DragEvent`(`lib.rs:45, 136`)|
|
||||
| 4 | **选中块**(Esc/方向键/Shift多选) | ✅ | `TiptapSelectionState` 选择状态(`lib.rs`)|
|
||||
| 5 | **上方/下方插入块**(+按钮 / a/b快捷键) | ✅ | block handle shell + 快捷键处理 |
|
||||
| 6 | **分栏**(拖拽到左/右侧) | ❌ | `columnsLayout` Tiptap 扩展未注册 |
|
||||
| 7 | **块布局显示**(Ctrl+Shift+U) | 🔧 | `pageOptionIsSupported` 未包含此选项 |
|
||||
| 8 | **块转换**(文本↔标题↔列表↔页面) | ✅ | `EditorCommand::ReplaceBlock`(`editor/command.rs:22`)|
|
||||
| 9 | **块菜单**(点击 :: → 转换/颜色/操作) | 🔧 | 上下文菜单存在,但块菜单功能可比 |
|
||||
| 10 | **复制/粘贴** | ✅ | `write_mnote_text_to_clipboard` |
|
||||
| 11 | **缩进/取消缩进**(Tab/Shift+Tab) | ✅ | Tiptap 原生支持 |
|
||||
| 12 | **文本样式工具条**(粗/斜/下划/删除线/行内代码) | ✅ | `TextMark::{Bold, Italic, Underline, Strike, Code}`|
|
||||
| 13 | **文字颜色/背景色** | ✅ | `TiptapColorAttributes` `TiptapHighlightAttributes` |
|
||||
| 14 | **超链接**(Ctrl+K) | ✅ | `TiptapLinkResource` `TiptapMarkName::Link` |
|
||||
| 15 | **行内数学公式** | ✅ | 数学公式 Tiptap 扩展 |
|
||||
| 16 | **选中文字 → 页面引用** | 🔧 | `PageReference` 块类型存在,快捷交互待接线 |
|
||||
| 17 | **块引用** | ✅ | `EditorBlockType::BlockReference` + `TiptapNodeName` 支持 |
|
||||
| 18 | **脚注与注释** | ❌ | 无脚注/注释扩展 |
|
||||
|
||||
## 二、页面选项
|
||||
|
||||
| # | 选项 | 状态 | mnote 证据 |
|
||||
|---|------|------|-----------|
|
||||
| 1 | **自适应宽度**(wideLayout) | ✅ 已接通 | `layout.rs:531`: `maxWidth = wideLayout ? '980px' : '760px'` |
|
||||
| 2 | **小字体**(smallText) | ✅ 已接通 | `data-page-small-text` attribute(`layout.rs:529`)|
|
||||
| 3 | **标题目录**(showToc) | 🔧 UI可见待接线 | `layout.rs:438` 说"当前 Rust 壳还没有正式目录面板" |
|
||||
| 4 | **标题自动编号**(showHeadingNumbers) | ✅ 已接通 | `layout.rs:439` hint: "标题前显示顺序编号" |
|
||||
| 5 | **编辑保护**(protectEditing) | 🔧 UI可见待接线 | `layout.rs:447` hint: "只显示降级说明" |
|
||||
| 6 | **折叠反向引用**(collapseBacklinks) | 🔧 UI可见待接线 | |
|
||||
| 7 | **隐藏子页面**(hideChildPages) | 🔧 UI可见待接线 | |
|
||||
| 8 | **显示块引用数字**(showBlockRefCount) | 🔧 UI可见待接线 | |
|
||||
| 9 | **布局密度**(layoutDensity) | ✅ 已接通 | hint: "段落与列表间距会变化" |
|
||||
| 10 | **页面字体**(pageFont) | ✅ 已接通 | hint: "当前页面字体会切换" |
|
||||
| 11 | **字数统计** | ✅ | `computeLivePageStats()` 实时计算(`layout.rs:485-507`)|
|
||||
| 12 | **待办统计** | ✅ | `todoTotal` / `todoDone` 统计(`layout.rs:503-506`)|
|
||||
| 13 | **暗色模式** | ✅ | Good Night 模式 / 跟随系统(`layout.rs`)|
|
||||
| 14 | **删除页面**(进垃圾桶) | ✅ | `tree.resource.archive` |
|
||||
| 15 | **移动到...** | ✅ | `tree` 命令 `routes/tree.rs` |
|
||||
| 16 | **页面引用链接复制** | ✅ | 上下文菜单"复制页面引用链接"(`layout.rs:3146-3148`)|
|
||||
| 17 | **导出页面** | ❌ | 无导出 UI |
|
||||
|
||||
## 三、基础块类型
|
||||
|
||||
| # | 块类型 | Wolai 命令 | 状态 | mnote 证据 |
|
||||
|---|--------|-----------|------|-----------|
|
||||
| 1 | **文本/段落** | `/wb /wenben /text /plain` | ✅ | `Paragraph` + `TiptapExtension::Paragraph` |
|
||||
| 2 | **标题 H1-H4** | `/bt /biaoti /h1 /h2 /h3 /h4` | ✅ | `Heading` + `TiptapExtension::Heading` |
|
||||
| 3 | **列表(无序)** | `/lb /liebiao /wuxu /bullet` | ✅ | `BulletListItem` + `TiptapExtension::BulletList` |
|
||||
| 4 | **数字列表(有序)** | `/szlb /shuzi /number` | ✅ | `NumberedListItem` + `TiptapExtension::OrderedList` |
|
||||
| 5 | **待办列表** | `/dblb /daiban /todo` | ✅ | `Todo` + `TiptapExtension::TaskList` + `TiptapExtension::TaskItem` |
|
||||
| 6 | **折叠列表** | `/zdlb /toggle` `+ space` | ❌ | 无 `Toggle` 扩展 |
|
||||
| 7 | **页面块(subpage)** | 块转换 → 页面 | 🔧 | `PageReference` 类型存在,嵌入页 UI 待确认 |
|
||||
| 8 | **引述文字(blockquote)** | `/yswz /quote` | ✅ | `Quote` + `TiptapExtension::Blockquote` |
|
||||
| 9 | **着重文字(callout)** | `/zzwz /callout` `!! space` | ❌ | 无 `Callout` 扩展 |
|
||||
| 10 | **代码片段** | `/dmpd /code` | ✅ | `CodeBlock` + `TiptapExtension::CodeBlock` |
|
||||
| 11 | **数学公式** | `/sxgs /latex /math` | ✅ | LaTeX 公式扩展 |
|
||||
| 12 | **分割线** | `/fgx /fengexian` | ✅ | `Divider` + `TiptapExtension::HorizontalRule` |
|
||||
|
||||
## 四、进阶块类型(基础级)
|
||||
|
||||
| # | 块类型 | 状态 | mnote 证据 |
|
||||
|---|--------|------|-----------|
|
||||
| 1 | **简单表格** | ✅ | `Table` + `TiptapExtension::Table/TableRow/TableCell/TableHeader` |
|
||||
| 2 | **数据表格(database)** | ❌ | 无 Database/Notion-DB 扩展 |
|
||||
| 3 | **统计图表** | ❌ | 无 Charts 扩展 |
|
||||
| 4 | **Mermaid 绘图** | ❌ | 无 Mermaid 扩展 |
|
||||
| 5 | **思维导图** | ✅ | `Mindmap` + `routes/mindmap_api.rs` + `ssr/pages/mindmap.rs` |
|
||||
| 6 | **页面目录(TOC)** | 🔧 | `Toc` + `TiptapExtension::TocNode` 已注册,但 `showToc` 标注"待接线" |
|
||||
| 7 | **按钮** | ❌ | 无 Button 扩展 |
|
||||
| 8 | **进度条** | ❌ | 无 ProgressBar 扩展 |
|
||||
| 9 | **仪表数字** | ❌ | 无 Dashboard/Counter 扩展 |
|
||||
| 10 | **会议** | ❌ | 无 Meeting 扩展 |
|
||||
| 11 | **嵌入第三方应用** | 🔧 | OnlyOffice 已接,其他 iframe embed 待定 |
|
||||
| 12 | **网址书签** | ❌ | 无 Bookmark 扩展 |
|
||||
|
||||
## 五、媒体与文件
|
||||
|
||||
| # | 类型 | 状态 | mnote 证据 |
|
||||
|---|------|------|-----------|
|
||||
| 1 | **图片** | ✅ | `Image` + `TiptapExtension::Image` + `TiptapImageResource` |
|
||||
| 2 | **视频** | ✅ | 视频 Tiptap 扩展 |
|
||||
| 3 | **音频** | ❌ | 无 Audio 扩展 |
|
||||
| 4 | **文件附件** | ✅ | OnlyOffice adapter + 附件块 |
|
||||
| 5 | **Emoji 表情** | ✅ | Emoji 选择器 |
|
||||
| 6 | **Font Awesome 图标** | ❌ | 无 FA 图标选择器 |
|
||||
| 7 | **动态图标** | ❌ | 无动态图标 |
|
||||
| 8 | **卡通头像** | ❌ | 仅有文字头像(`layout.rs:7873`: `"L"`)|
|
||||
|
||||
## 六、编辑器 UI / 壳
|
||||
|
||||
| # | 功能 | 状态 | mnote 证据 |
|
||||
|---|------|------|-----------|
|
||||
| 1 | **侧栏**(品牌/搜索/页面树) | ✅ | `layout.rs:7801`: "左侧栏 + 内容区的双栏布局" |
|
||||
| 2 | **浮动 AI 按钮** | ✅ | `wolai-floating-ai` button(`layout.rs:7927`)|
|
||||
| 3 | **浮动帮助按钮** | ✅ | `wolai-floating-help` button(`layout.rs:7926`)|
|
||||
| 4 | **搜索模态**(Ctrl+P) | ✅ | 搜索壳 + smoke 验证 |
|
||||
| 5 | **垃圾桶入口** | ✅ | 侧栏下方入口 |
|
||||
| 6 | **模板中心** | ❌ | 无模板功能 |
|
||||
| 7 | **右侧边栏(双栏编辑)** | 🔧 | 上下文菜单有"在右侧边栏打开",面板 UI 待确认 |
|
||||
| 8 | **今日速记/日记** | ❌ | 无每日速记功能 |
|
||||
| 9 | **页面关系图** | ❌ | 无关系图可视化 |
|
||||
| 10 | **导航历史** | 🔧 | 页面上下文菜单含"块历史",但非历史列表 |
|
||||
|
||||
## 七、键盘快捷键
|
||||
|
||||
| # | 快捷键 | 功能 | 状态 |
|
||||
|---|--------|------|------|
|
||||
| 1 | `Ctrl+P` | 搜索 | ✅ |
|
||||
| 2 | `Ctrl+Shift+L` | 标题目录 | 🔧(选项UI可见但功能待接线)|
|
||||
| 3 | `Ctrl+Shift+U` | 显示块结构 | ❌ |
|
||||
| 4 | `Ctrl+Shift+C` | 编辑保护 | 🔧 |
|
||||
| 5 | `Ctrl+Z` | 撤回 | ✅ |
|
||||
| 6 | `Ctrl+Shift+V` | 匹配样式粘贴 | ✅ |
|
||||
| 7 | `Tab` / `Shift+Tab` | 缩进/取消缩进 | ✅ |
|
||||
| 8 | `Esc` | 选中块 | ✅ |
|
||||
| 9 | `a` / `b` | 上方/下方插入块 | ✅ |
|
||||
| 10 | `Enter`(思维导图)| 插入同级节点 | ✅ |
|
||||
| 11 | `Alt+O` | 右侧边栏打开 | 🔧 |
|
||||
| 12 | `Alt+Q` | 打开/关闭右侧边栏 | ❌ |
|
||||
| 13 | `Ctrl+Alt+G` | Good Night 暗色模式 | ✅ |
|
||||
| 14 | `Ctrl+` | 今日速记 | ❌ |
|
||||
|
||||
## 八、汇总
|
||||
|
||||
| 类别 | 总数 | ✅ | 🔧 | ❌ | 覆盖率 |
|
||||
|------|------|----|-----|-----|--------|
|
||||
| 基础操作 | 18 | 11 | 3 | 4 | 61% |
|
||||
| 页面选项 | 17 | 10 | 5 | 2 | 59% |
|
||||
| 基础块类型 | 12 | 9 | 1 | 2 | 75% |
|
||||
| 进阶块类型 | 12 | 2 | 2 | 8 | 17% |
|
||||
| 媒体与文件 | 8 | 4 | 0 | 4 | 50% |
|
||||
| 编辑器 UI/壳 | 10 | 6 | 2 | 2 | 60% |
|
||||
| 键盘快捷键 | 14 | 8 | 3 | 3 | 57% |
|
||||
| **总计** | **91** | **50** | **16** | **25** | **55%** |
|
||||
|
||||
> 注:🔧 = 存在代码/UI 但功能未完全接通(如标题目录 TOC 扩展已注册但 UI 面板未挂接)
|
||||
@@ -0,0 +1,131 @@
|
||||
# Wolai 帮助中心 — 基础功能参考
|
||||
|
||||
> 来源:https://www.wolai.com/wolai/xhqeop8UHpVTMUSVmgz8nq
|
||||
> 抓取时间:2026-05-19
|
||||
> 用途:作为 mnote 产品功能对标的参考目录,仅记录基础功能/架构相关条目,跳过高级功能、团队协作、商业信息
|
||||
|
||||
## 基础操作
|
||||
|
||||
| 功能 | 说明 | mnote 现状 |
|
||||
|------|------|------------|
|
||||
| 基本编辑能力 | 文本输入、换行、拖拽块排序、缩进/取消缩进、Copy/Paste | ✅ leptos-tiptap island |
|
||||
| 快捷命令菜单 | `/` 唤出块类型选择菜单 | ✅ Tiptap slash command |
|
||||
| 使用模板创建页面 | 新建页面时选择模板 | ❌ 未实现 |
|
||||
| 页面选项 | 页面设置:图标、封面、字体、宽度、评论、历史、分享 | Partial - Page Aggregate 设置链已通但未完全对齐 |
|
||||
| 搜索工作空间 | 全局搜索,Ctrl+P/Cmd+P | ✅ Search modal 已有 smoke |
|
||||
| 导入与导出 | 导入/导出数据 | ❌ 未实现(Local/Cloud 桥接仅 P3 candidate) |
|
||||
| 页面关系图 | 页面间引用关系可视化 | ❌ 未实现 |
|
||||
| 个人设置 | 账号、主题(亮/暗)、语言、通知偏好 | Partial - 暗色模式存在 |
|
||||
| 空间设置 | Workspace 级设置:名称、成员、权限 | ❌ 未实现 |
|
||||
| 锁定屏幕 | 密码保护屏幕 | ❌ 未实现 |
|
||||
| 垃圾桶 | 已删除页面/资源的恢复和永久删除 | ✅ 已实现(`tree.resource.*`),双浏览器 no-refresh 进行中 |
|
||||
|
||||
## 基础块类型
|
||||
|
||||
| 块类型 | 说明 | mnote 现状 |
|
||||
|--------|------|------------|
|
||||
| 文本 | 普通正文段落 | ✅ |
|
||||
| 标题 | H1/H2/H3 | ✅ |
|
||||
| 列表 | 无序列表(bullet list) | ✅ |
|
||||
| 数字列表 | 有序列表(numbered list) | ✅ |
|
||||
| 待办列表 | 复选框列表(todo/checkbox) | ✅ |
|
||||
| 折叠列表 | 可折叠/展开的列表项(toggle / details) | ❌ 未实现 |
|
||||
| 页面 | 嵌入子页面块(page block / subpage) | Partial - Tiptap page block? |
|
||||
| 引述文字 | Blockquote 引用块 | ✅ |
|
||||
| 着重文字 | Callout / 高亮块 | ❌ 未实现 |
|
||||
| 代码片段 | 代码块(code block) | ✅ |
|
||||
| 数学公式 | LaTeX 数学公式 | ✅ |
|
||||
| 分割线 | Horizontal rule | ✅ |
|
||||
|
||||
## 进阶块类型(基础级引用)
|
||||
|
||||
| 块类型 | 说明 | mnote 现状 |
|
||||
|--------|------|------------|
|
||||
| 数据表格 | 数据库/表格视图(类似 Notion database) | ❌ 未实现(Tiptap table 有,database 无) |
|
||||
| 统计图表 | 图表可视化 | ❌ |
|
||||
| 简单表格 | 普通二维表格 | ✅ Tiptap table |
|
||||
| 页面目录 | Table of Contents 自动生成 | ❌ 未实现 |
|
||||
| 按钮 | 可交互按钮 | ❌ |
|
||||
| 进度条 | 进度显示 | ❌ |
|
||||
| 仪表数字 | 数字计数器 | ❌ |
|
||||
| Mermaid 绘图 | Mermaid 图表 | ❌ 未实现 |
|
||||
| 思维导图 | Mindmap | ✅ 已实现(Phase 6 leptos-mindmap) |
|
||||
| 会议 | 会议记录块 | ❌ |
|
||||
| 嵌入第三方应用 | Embed iframe | Partial - OnlyOffice, 其他待定 |
|
||||
| 网址书签 | URL 书签预览 | ✅ |
|
||||
|
||||
## 媒体与文件
|
||||
|
||||
| 功能 | 说明 | mnote 现状 |
|
||||
|------|------|------------|
|
||||
| 图片 | 插入图片 | ✅ |
|
||||
| 视频 | 插入视频 | ✅ |
|
||||
| 音频 | 插入音频 | ❌ |
|
||||
| 文件附件 | 上传文件作为附件 | ✅ OnlyOffice adapter |
|
||||
| Emoji | 文本中插入 Emoji | ✅ |
|
||||
| Font Awesome 图标 | 文本中插入图标 | ❌ 未实现 |
|
||||
| 动态图标 | wolai 动态图标 | ❌ |
|
||||
| 卡通头像 | 生成用户头像 | ❌ |
|
||||
|
||||
## 信息架构/页面结构(从目录推断)
|
||||
|
||||
```
|
||||
工作空间 (Workspace)
|
||||
├── 个人空间 (Personal)
|
||||
│ ├── 侧栏 (Sidebar)
|
||||
│ │ ├── 搜索入口
|
||||
│ │ ├── 快捷方式 / 星标 (Starred / Quick Access)
|
||||
│ │ ├── 我的页面 (My Pages) — 页面树
|
||||
│ │ ├── 垃圾桶 (Trash)
|
||||
│ │ └── 设置入口
|
||||
│ └── 页面编辑器 (Page Editor)
|
||||
│ ├── 标题 (Title / Icon / Cover)
|
||||
│ ├── 正文 (Body — blocks)
|
||||
│ ├── 页面设置 (Page Options)
|
||||
│ ├── 评论 / 历史 / 分享
|
||||
│ └── 右侧边栏
|
||||
│ ├── 页面目录 (TOC)
|
||||
│ ├── 引用关系
|
||||
│ └── 属性
|
||||
└── 团队空间 (Team Workspace)
|
||||
├── 成员管理
|
||||
├── 权限
|
||||
└── 子空间
|
||||
```
|
||||
|
||||
## 已抓取的详细页面
|
||||
|
||||
以下页面已从 Wolai 帮助中心抓取详细内容,保存在 `design/11-wolai/pages/` 下:
|
||||
|
||||
| 页面 | 文件 | 内容 |
|
||||
|------|------|------|
|
||||
| 基本编辑能力 | `basic-editing-skills.md` | 块概念、块操作(拖动/选中/插入)、分栏、块转换、文本样式、快捷键 |
|
||||
| 快捷命令菜单 | `quick-command-menu.md` | 完整 `/` 命令列表(基础块/进阶块/行内元素/媒体/引用/快速输入/分栏)|
|
||||
| 页面选项 | `page-options.md` | 自适应宽度、小字体、标题目录、编辑保护、自定义页面、全局选项 |
|
||||
| 搜索工作空间 | (参考引用) | 搜索行为、模糊搜索、搜索选项、图片文字识别 |
|
||||
| 折叠列表 | (参考引用) | `+ space` 创建、折叠标题 |
|
||||
| 着重文字(Callout) | (参考引用) | 图标更换、子块、跑马灯模式、`!! space` / `!!! space` 创建 |
|
||||
| 导入与导出 | `import-export.md` | 8 种导入格式、6 种导出格式、空间导出 |
|
||||
| 页面引用 | `page-reference.md` | `[[` / `#` 创建、双向链接、预引用、别名 |
|
||||
| 页面关系图 | `page-graph.md` | 图例说明、布局方式、操作(鼠标/触控板)、3D 视图 |
|
||||
| 思维导图 | `mindmap.md` | 创建/转换、节点快捷键、7 种结构、6 种主题、导出 |
|
||||
| 右侧边栏 | `right-sidebar.md` | 双栏编辑、跨栏拖拽、快捷键 |
|
||||
| 今日速记 | `daily-note.md` | 日记行为、默认位置/模板、快捷键 |
|
||||
| 垃圾桶 | `trash.md` | 恢复/彻底删除、操作确认 |
|
||||
|
||||
## 完整对照矩阵
|
||||
|
||||
详细逐项对照见 `comprehensive-feature-matrix.md`(91 项,8 大类)。
|
||||
|
||||
**核心数字**:覆盖率 **55%**(50✅ / 16🔧 / 25❌)
|
||||
|
||||
| 类别 | ✅ | 🔧 | ❌ | 覆盖率 |
|
||||
|------|----|-----|-----|--------|
|
||||
| 基础操作 | 11 | 3 | 4 | 61% |
|
||||
| 页面选项 | 10 | 5 | 2 | 59% |
|
||||
| 基础块类型 | 9 | 1 | 2 | 75% |
|
||||
| 进阶块类型 | 2 | 2 | 8 | 17% |
|
||||
| 媒体与文件 | 4 | 0 | 4 | 50% |
|
||||
| 编辑器 UI/壳 | 6 | 2 | 2 | 60% |
|
||||
| 键盘快捷键 | 8 | 3 | 3 | 57% |
|
||||
| **总计** | **50** | **16** | **25** | **55%** |
|
||||
@@ -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 扩展 |
|
||||
@@ -0,0 +1,32 @@
|
||||
# 今日速记(日记)
|
||||
|
||||
> 来源:https://www.wolai.com/wolai/... (今日速记)
|
||||
> 用途:mnote "日记/速记" 功能行为参考
|
||||
>
|
||||
> 实现状态:**未实现** ❌ 无今日速记/日记专用功能
|
||||
|
||||
## 核心概念
|
||||
|
||||
以今天日期命名的页面,快速记录当日内容。
|
||||
|
||||
## 触发方式
|
||||
|
||||
| 方式 | 说明 |
|
||||
|------|------|
|
||||
| 侧栏闪电图标 | 点击左侧边栏上方的 `⚡` 图标 |
|
||||
| 快捷键 | `Ctrl + \`` 或 `Ctrl + ,` |
|
||||
| 域名 | `wolai.today`(浏览器已登录时) |
|
||||
|
||||
## 行为
|
||||
|
||||
- 自动创建以今天日期命名的页面(如 `2026-05-19`)
|
||||
- 日期格式取决于工作空间设置
|
||||
- 如果当日页面已放入垃圾桶,进入时仍显示该页面(带删除提示)
|
||||
- 如果已彻底删除,则新建页面
|
||||
|
||||
## 设置
|
||||
|
||||
| 选项 | 说明 |
|
||||
|------|------|
|
||||
| 默认位置 | 在"空间偏好"中设定今日速记的父页面 |
|
||||
| 默认模板 | 在"空间偏好"中设定创建时的模板页面 |
|
||||
@@ -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 | 数据表格 |
|
||||
| 整个空间 | Markdown(beta,限创建者,7天/次)|
|
||||
@@ -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 层 | 未确认 |
|
||||
@@ -0,0 +1,46 @@
|
||||
# 页面关系图
|
||||
|
||||
> 来源:https://www.wolai.com/wolai/... (页面关系图)
|
||||
>
|
||||
> 实现状态:**未实现** ❌
|
||||
|
||||
## 入口
|
||||
|
||||
- 侧边栏左上方
|
||||
- 快捷键:`Ctrl/Cmd + Shift + P`
|
||||
|
||||
## 图例
|
||||
|
||||
| 元素 | 含义 |
|
||||
|------|------|
|
||||
| 灰色圆点 | 页面 |
|
||||
| 实心内圈大小 | 子页面数量 |
|
||||
| 半透明外圈大小 | 引用关系数量 |
|
||||
| 直线 + 动画方向 | 层级关系(父→子)|
|
||||
| 虚线曲线 + 动画方向 | 引用关系(A→B)|
|
||||
| 蓝色节点 | 选中状态 |
|
||||
|
||||
## 布局方式
|
||||
|
||||
树形向下、树形向右、向心辐射、向外辐射、随机
|
||||
|
||||
## 关系筛选
|
||||
|
||||
层级关系、引用关系、全部
|
||||
|
||||
## 操作
|
||||
|
||||
| 鼠标 | 触控板 | 作用 |
|
||||
|------|--------|------|
|
||||
| 滚动 | 双指上滑/下滑 | 缩放 |
|
||||
| 左键拖动 | 单指拖动 | 平移 |
|
||||
| 左键单击 | 轻点 | 选中节点+显示一层关系 |
|
||||
| Shift+左键 | Shift+轻点 | 多选 |
|
||||
| Cmd/Ctrl+左键 | Cmd/Ctrl+轻点 | 显示全部关系 |
|
||||
| 双击 | 双击 | 转到页面 |
|
||||
| 悬浮 | 悬浮 | 高亮关联节点 |
|
||||
| 空格 | 空格 | 最佳视图 |
|
||||
|
||||
## 3D 关系图(实验性)
|
||||
|
||||
支持 3D 视图旋转操作。
|
||||
@@ -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 switch,supported 的显示蓝色开关,unsupported 的显示灰色开关+提示。`page_aggregate/builder.rs` 提供 page_options 的读写链。
|
||||
@@ -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 工具可操作引用块 |
|
||||
|
||||
### ❌ 未实现
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| `[[` 快捷输入创造引用 | 用户端 `[[` → 搜索 → 引用流程未实现 |
|
||||
| `#` 快捷输入 | 未实现 |
|
||||
| 选中文本 → 工具条 → 创建引用 | 文本工具条无引用按钮 |
|
||||
| 预引用 & 创建新页面 | 无 "预引用"行为 |
|
||||
| 引用预览/别名 | 无 |
|
||||
| 被引用页面的"反向引用"列表 | 无页面底部的引用列表 |
|
||||
@@ -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` 为红色。
|
||||
@@ -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 | 事件已派发,但双栏编辑面板的具体实现待确认 |
|
||||
| 跨栏拖拽 | 未实现 |
|
||||
| 右侧边栏编辑 | 未确认 |
|
||||
@@ -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` 进行中 |
|
||||
Reference in New Issue
Block a user