# 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 面板未挂接）
