# Changelog

## 0.0.2 — 2026-07-28

首个公开发布版本。发布说明见 [RELEASE_NOTES.md](RELEASE_NOTES.md)。

本次发布包含下方全部条目：`0.0.2` 之后的章节是公开发布前的内部迭代记录，这些版本号未曾对外发布，保留作为开发历史。

### Markdown、Word 与 PDF 无损导出

- 页面、看板卡片、文档右键菜单和命令面板新增无损 Markdown、Word (`.docx`) 与 PDF 导出，统一保存到 `Blockspace Exports`，不覆盖同名文件。
- Markdown 正文移除此前附加的 Base64 页面负载，完整结构改存到数据目录的隐藏 `exports` sidecar；重新导入时按页面 ID 与修订号自动关联，精确恢复属性、块树、富文本标记、分栏、表格、图片设置及原生 Markdown。
- 旧版带 `blockspace:page-data` 的 Markdown 继续兼容导入；重新导出后正文自动采用无冗余载荷的新格式。已有同 ID 页面仍会安全恢复为副本。
- Word 使用原生 OOXML 生成标题、段落、列表、表格、分栏、链接、背景色与图片环绕，并在 `customXml` 中嵌入完整页面数据；无需 Word 客户端即可生成。
- PDF 使用不受 Chromium `foreignObject` 画布安全限制影响的纯 Canvas 语义排版器，高分辨率分页为 A4 页面；加入带 `ToUnicode` 映射的不可见搜索/复制文本层，并把完整页面 JSON 作为关联附件嵌入。
- 导出图片支持 Vault 附件和远程 URL，自动保留 MIME、原始尺寸与版式设置；补充大页面、结构恢复、DOCX 包结构和 PDF 附件回归测试。

### Obsidian 笔记右键打开

- 所有 `.md` 笔记的 Obsidian 文件菜单新增“在 Blockspace 中打开”；首次执行导入结构化页面，再次执行按来源路径打开已有页面。
- 保留 Blockspace 自动生成 Markdown 的原有直达页面和“以原生 Markdown 打开”入口。
- 来源笔记重命名时同步更新页面来源路径，避免重命名后再次右键产生重复副本。

### 页内查找与替换

- 新增 Word 式浮动查找栏：`Ctrl/Cmd + F` 查找，`Ctrl/Cmd + H` 展开替换，支持上下结果、计数、区分大小写和全词匹配。
- 搜索范围覆盖当前页面标题及全部文本块，结果使用浏览器自定义高亮精确标记，并提供块级兼容回退。
- 支持替换当前项和替换全部；替换全部作为单个页面事务进入 Undo/Redo。
- 替换直接修改结构化文本，按插入长度平移富文本标记，并保留替换起点处的粗体、斜体、颜色、链接等样式。
- 查找浮层收窄为 420px（替换模式 468px），计数内嵌输入框，选项压缩为紧凑按钮；小窗口仍自动使用可用宽度。
- 查找浮层新增独立拖动把手，支持鼠标、触控、方向键微调、Shift 大步移动、边界约束与双击/Home 复位；重绘后保留当前会话位置。
- 长页面复用预折叠文本索引，输入采用 70ms 防抖；导航最多保留 10,000 项并虚拟化为 240 个高亮范围，避免超大命中集创建成千上万 DOM Range。
- “全部替换”按块批处理，同一长段落只重建一次字符串，避免高频命中时出现平方级复制。
- 补充 Obsidian/LaTeX 公式回归：行内 `$…$` 保持普通可编辑文本，块级 `$$…$$` 保持原生 Markdown 原子块，并继续交给 Obsidian MathJax 渲染。
- 新增命令面板入口、核心匹配/替换测试、样式区间回归与原生 Shell 集成断言。

### 正文结构化分栏

- 新增 `/分栏` 块，支持两栏、三栏与多组比例预设；各栏保留独立块树编辑、样式和媒体能力。
- 分栏正文采用无外壳显示，不再渲染“分栏”、栏数、比例及“第几栏”等标题栏；设置统一移入块把手菜单。
- 支持把块拖入任意栏，空栏可直接添加块；块菜单可移除分栏外壳并按栏顺序恢复普通上下正文。
- 三栏切回两栏时将第三栏内容顺序合并到第二栏，避免布局调整造成内容丢失。
- 内容区低于 620px 时自动折叠为上下排列，不改写保存数据。
- Blockspace Markdown 通过结构注释无损往返；Obsidian 原生 Markdown 按栏顺序安全降级。
- 页面格式升级到版本 8，并补充分栏增减、比例、解包、导入导出与响应式样式回归测试。

### 上下文菜单与右键工作流

- 新增统一的上下文目标分发层，右键可识别单块、多选块、链接、图片、页面、看板卡片、大纲、反链和页面空白区域。
- 右键未选中的块会先选择该块；右键已选择块会保留多选并批量执行操作。
- 块菜单改为“转换块类型 / 复制与引用 / 移动与层级 / 章节操作”等渐进菜单，不再平铺全部转换与结构操作。
- 链接菜单支持预览、打开、复制显示文本、复制目标和复制 Markdown；图片菜单支持打开、重载、复制地址、复制替代文本和进入 Markdown 源码。
- 大纲与反链增加定位、预览、复制稳定链接和反链操作；看板菜单补充复制页面链接。
- 文字选区和表单控件继续使用系统菜单；`Shift + 右键`可强制打开系统菜单，`Shift + F10`与菜单键可打开 Blockspace 上下文菜单。
- 桌面端边沟选择热区从 12px 扩大到 24px，右键仍保留六点柄、可见按钮和键盘等替代入口。

### 双链、块引用与悬停预览

- 新增统一引用解析，支持 Obsidian 页面/标题/块链接与嵌入、思源 `((块ID "显示文本"))` 块引用，以及 `blockspace://page`、`blockspace://block` 稳定链接。
- 输入或粘贴完成的 Wikilink、嵌入和思源块引用后立即转为渲染内容，不显示引用源码。
- 建立工作区级块位置和反链索引；页面信息栏与原生检查器可查看页面反链，块菜单可聚焦指定块的反链。
- 编辑模式支持 `Ctrl/Cmd + 悬停`预览；Obsidian 目标交给原生 Page Preview，Blockspace 目标显示页面、块内容、子块与反链数。
- 块菜单新增复制块引用、复制块链接和查看块反链；页面菜单新增复制页面链接。
- 默认生成单向只读 `Blockspace Bridge/*.md`，使用稳定合法的 `^bs-…` 块锚点接入 Obsidian Backlinks、Graph、搜索和 Page Preview。
- Bridge 文件随页面保存和改名同步；结构化 JSON 继续作为唯一事实源，设置中可关闭 Bridge 或更改目录。
- 回归测试覆盖引用解析、输入即时转换、块位置/反链索引、原生预览投影、Bridge 生成与重命名。

### Markdown 块单状态交互

- 修复 Markdown 源码编辑器虽然带有 `hidden` 属性、却被组件样式 `display: block` 覆盖，导致预览与源码同时显示的问题。
- 粘贴 Markdown 后直接显示结构化内容或 Obsidian 原生渲染结果；普通点击、双击、键盘聚焦和触屏都不会再切换到源码。
- 源码编辑降级为块菜单中的“高级：编辑 Markdown 源码”；仅通过该显式操作或 `/markdown` 新建原生块时进入，完成后立即回到渲染结果。

### 移除页面封面与头部图标

- 移除页面封面功能：渐变封面、封面菜单、“添加封面”入口及全部相关样式。页面头部现在从标题开始。
- 移除页面头部的大图标与悬停出现的外观操作行。
- 页面图标保留用于侧栏和看板的列表识别，改从工具栏 `⋯` → “页面图标（用于侧栏与看板）”设置。
- 清理 70 处封面与图标相关的样式规则，其中多条是被同优先级后续规则完全覆盖的死代码。
- `cover` 字段仍保留在数据模型中并照常归一化，旧版本保存的页面不会因此丢数据。

### 行内 Markdown 输入

- 手动输入 `[文字](地址)`、`**粗体**`、`*斜体*`、`` `代码` ``、`~~删除线~~`、`==高亮==` 会在闭合字符输入后立即转换为行内格式，与粘贴行为一致。
- 转换独立成一个撤销步骤：`Ctrl/Cmd + Z` 会退回字面 Markdown，而不是删掉刚输入的文字。
- 中文输入过程中不触发；已有格式的片段、未闭合的分隔符、`snake_case` 这类词内下划线都不会被误转换。
- 修复 `==高亮==` 在粘贴和导入时同时丢失标记与高亮的问题（高亮标记缺少语义颜色会在归一化时被丢弃，现默认使用黄色）。
- 修复带颜色的高亮导出时同时写出 `==` 与 HTML `<span>`，导致导出结果无法稳定往返的问题；黄色使用 `==`，其他颜色使用 `<span>`。

### 链接与页面装饰

- 修复 `[文字](地址 "标题")` 形式的链接把标题一起写进 href，导致链接无法打开的问题；角括号地址与单引号、圆括号标题同样正确剥离。
- 早期导入页面会在打开时自动补齐字面 `[文字](地址)`、`**粗体**` 和 H4–H6，并合并被旧剪贴板路径拆成多个相邻块的链接图片；修复结果会通过正常修订与冲突检测保存。
- 单行 Markdown 粘贴到已有文字中时就地解析并保留前后原有格式；“解析正文中的 Markdown 链接与格式”页面操作仍可用于手动重试。
- 页面封面改为完全按需：缺少 `cover` 字段的页面不再自动获得渐变装饰，默认欢迎页也不再预设封面。
- 页面图标可以移除，并支持自定义任意 Emoji；没有图标时不再渲染占位元素。
- 页面图标恢复为无边框、无底板的字形呈现，不再显示为带阴影的方块。

### 操作安全与无障碍

- 保存冲突与一般保存错误改为工作区内常驻处理条，可从精确冲突文件恢复本地副本、重新载入磁盘版本或重试保存。
- 删除页面返回可恢复记录，并在当前工作区提供撤销；删除非当前页面不再重置正在编辑页面的历史与焦点。
- 页面封面改用原生按钮，边沟选择支持键盘操作，Slash 菜单补齐 combobox/listbox ARIA 关系。
- 看板卡片新增“移动到状态”菜单，键盘与触屏用户无需拖拽也能变更页面状态。
- 粗指针设备扩大边沟选择和看板操作目标，并补充焦点样式与窄屏处理。

### 测试

- 插件生命周期测试覆盖精确冲突恢复、删除撤销及删除最后一页后的占位页清理。
- 原生 Shell 集成测试覆盖安全处理条、Slash ARIA 和看板替代操作入口。
- Markdown 回归测试覆盖截图中的跨块链接图片、长网址换行、H4、普通链接、粗体以及非空块内粘贴。

## 0.17.1 — 2026-07-24

### Markdown 链接与图片兼容修复

- 修复从网页、GitHub 文档或聊天记录复制的 Markdown 链接被当作普通文本并在阅读模式中再次转义的问题。
- 粘贴和导入时解析普通链接、Wikilink、自动链接、加粗、斜体、删除线、行内代码和高亮，并转换为 Blockspace 富文本标记。
- 图片、图片链接、Obsidian 附件嵌入及 H4–H6 等暂未结构化支持的语法，会自动保留为原生 Markdown 原子块。
- 自动修复 `]` 与链接目标 `(` 之间因复制换行产生的断裂，包括 `[![图片](图片地址)](链接地址)`。
- 普通编辑块中的链接支持 `Ctrl/Cmd + 点击` 打开；`[[页面]]` 使用 Obsidian 工作区链接解析。
- 链接编辑框支持直接输入 `[[页面名称]]`。

### 兼容与测试

- 页面数据格式保持版本 5，不需要迁移 `.blockspace` 数据。
- 新增 Markdown 链接、图片链接、Wikilink、行内格式与 H4 原样保留测试。
- 原生阅读模式、结构化编辑、Undo/Redo、块树和剪贴板测试继续通过。

### 数据安全与恢复加固

- 启动时以 `pages/*.json` 为事实源自动重建页面索引，避免 `workspace.json` 缺失或损坏时页面看似丢失。
- Journal 恢复同时比较修订号和当前内容哈希；同修订异内容会保留冲突副本。
- 已删除或无法读取的页面不再被旧窗口静默重建，而是进入冲突恢复流程。
- 数据目录设置在插件重启前不再改变当前 Store 的写入位置。
- 诊断面板正确递归统计快照、恢复副本和回收站，并可将最近版本安全恢复为新页面。
- 导入页面保留原 Markdown 来源路径；Vault 内相对链接交给 Obsidian 解析，并阻止不安全链接协议。
- TOC、Callout/Quote 子块和包含反引号围栏的代码块补充 Markdown 往返保护。
- 未聚焦块的原生 Markdown 预览改为临近视口时惰性渲染。

## 0.17.0 — 2026-07-24

### Obsidian 原生 Markdown 渲染

- 引入 `MarkdownRenderer` 与独立 `Component` 生命周期管理。
- 新增整页原生阅读模式，可通过原生标题栏、工作区菜单、命令或 `Ctrl/Cmd + E` 切换。
- 整页阅读模式使用虚拟 Markdown 来源路径解析相对链接与附件，并在切页、重绘和关闭视图时卸载渲染组件。
- 增加 `render` / `renderMarkdown` API 兼容回退和页面内错误状态。

### 原生 Markdown 原子块

- 新增 `markdown` 块及 `/markdown`、`/md`、`/原生 markdown` Slash 命令。
- 原始 Markdown 使用独立多行源码编辑器，预览层由 Obsidian 渲染，不直接编辑渲染后的 HTML。
- 支持 Wikilink、嵌入、公式、Callout、Mermaid、代码块及可用的 Markdown 后处理器。
- `Escape` 或 `Ctrl/Cmd + Enter` 结束源码编辑，Tab 插入两个空格。
- 导入导出使用 `<!-- blockspace:markdown:start/end -->` 标记保持原子块边界和源码内容。

### 未聚焦块原生预览

- 新增原生渲染设置：仅阅读模式、未聚焦块原生预览、关闭。
- 可选模式下，结构化文本块失焦后只把块内内容交给 Obsidian 渲染；列表、Todo、引用、Callout 与折叠结构仍由 Blockspace 负责。
- 点击非链接预览区域返回编辑器，内部链接和嵌入保持 Obsidian 原生交互。
- 软换行在原生预览投影中继续保持可见。

### 兼容与测试

- 页面格式继续使用版本 5，可直接打开 0.3–0.16 页面。
- 新增原生 Markdown 块往返、渲染层静态集成和设置项测试。
- 继续通过块树、跨块编辑、插件生命周期、原生 Shell、JavaScript 语法和 CSS 解析检查。


## 0.16.0 — 2026-07-24

### 编辑连续性与统一选择

- 新增逻辑跨块文字选区、跨块格式、删除、复制和富文本混合状态。
- 连续输入和中文 composition 按编辑目标分组为 Undo 单元。
- 结构化剪贴板保留完整子树并为粘贴副本重建稳定 ID。
- Markdown 粘贴恢复标题、列表、Todo、引用、代码、分隔线和 TOC。
- 新增边沟连续块选择、多块选择规范化和容器末尾自然退出。


## 0.15.0 — 2026-07-24

### 原生 Shell 收敛

- 移除 Blockspace 文档内部重复的页面工具栏。
- 当前页面标题同步到 Obsidian 原生 View Header。
- 页面切换、大纲和 Blockspace 页面操作进入原生标题栏；分栏与标签页继续由 Obsidian 负责。

### 写作快捷输入

- 新增标题、列表、Todo、引用、代码和分隔线的 Markdown 块快捷输入。
- TOC 空状态新增创建标题操作。
- 统一块操作边沟并补充原生 Header 集成测试。


## 0.14.0 — 2026-07-24

### 标题与大纲语义

- 数据格式升级到版本 5，标题块新增章节折叠状态，块新增目录展示配置。
- 新增统一 Outline Index，从 Heading 块动态派生标题层级、父标题、编号路径和折叠状态。
- Blockspace Inspector 与旧右侧面板改为消费同一个大纲索引，不再各自扫描和解释标题。
- 点击大纲目标时会自动展开真实容器祖先和语义折叠章节。

### 正文目录块

- 新增 `table-of-contents` 块及 `/目录`、`/toc`、`/大纲` Slash 命令。
- 目录块实时读取 Heading，不持久化第二份标题文本。
- 支持目录编号开关和二级/三级标题显示范围。
- 目录项支持点击跳转、折叠状态提示和主题自适应样式。
- Markdown 导入导出支持 `<!-- blockspace:toc -->` 标记与可读目录列表。

### 章节级操作

- 标题可折叠其后的语义章节，不改变真实块树。
- `Ctrl/Cmd + Enter`、左右方向键和标题折叠按钮支持章节展开/收起。
- 块菜单新增选择整个章节、上移整个章节和下移整个章节。
- 章节移动仅在同级标题之间交换，防止 H2 越过所属 H1 边界。
- 新增大纲、章节范围、章节折叠、章节移动和目录导出的回归测试。

## 0.13.0 — 2026-07-24

### 统一交互状态与退出层级

- 新增互斥交互状态：空闲、文字编辑、中文组合输入、文字选择、块选择、Slash 菜单和拖拽。
- `Escape` 按“颜色面板 → Slash 菜单 → 富文本工具栏 → 块选择 → 文字编辑”的顺序逐层退出。
- 中文输入期间不会切换到 Slash、块选择或拖拽状态。
- 工作台根节点会暴露当前交互状态，便于主题和后续诊断准确响应。

### 焦点连续性与页面现场

- 新增统一命令结果与焦点指令，结构操作不再由各按钮临时猜测下一光标位置。
- 拆分、合并、复制、删除空块、缩进和 Slash 转换会显式恢复目标块与文字偏移。
- 页面切换会记住滚动位置、当前块、光标区间和块多选状态；返回页面后继续原位置编辑。
- 跳转到折叠容器内的块时会自动展开祖先，并短暂高亮目标块。

### 拖拽与结构反馈

- 拖拽预览改为轻量的块标题或“多个块”摘要，不再拖动完整大型 DOM。
- 松手前明确显示“放在之前 / 放在之后 / 移入容器”的文字提示。
- 拖拽期间降低无关块控件的视觉噪音，并继续保留边缘自动滚动。
- 拖拽结束后恢复块选择状态并统一清理临时预览和落点。

### Slash 与富文本

- Slash 菜单会根据父容器、当前块类型和最近使用命令调整排序。
- 嵌套列表中优先推荐相同列表类型、Todo 和普通段落。
- 富文本按钮新增 mixed 三态，部分加粗/斜体/下划线的选区不再误显示为完全未启用。
- 颜色面板、格式工具栏和逻辑文本选区继续保持选区不丢失。

### 结构安全

- 空的 Toggle、Callout 或引用容器可通过 Backspace 移除外壳，同时原位保留并重新挂载子块。
- 空 Callout 的 Enter/Backspace 退出规则与 Toggle、引用和列表保持一致。
- 新增容器拆壳、交互状态、拖拽提示和页面现场的回归测试。

## 0.12.2 — 2026-07-24

### 精修排版与内容轴

- 移除顶部页面切换器中重复的页面 Emoji，避免导航层和页面标题层重复强调。
- 标准封面降至更适合持续写作的高度，减少渐变节点、饱和度和圆角。
- 页面图标与标题不再压住封面，改为明确的编辑标题组。
- 标题降低字号与字重，并引入统一的 4/8/12/16/24/32/48px 间距 Token。
- 属性编辑区移除每行装饰性图标，将标签列收紧到 96px。
- 标题、属性、正文和所有普通块共享一条稳定内容轴。
- 强制普通块内容和编辑器占满文本列，修复窄段落和异常提前换行。
- 列表、Todo、折叠箭头与复选框统一固定缩进和垂直基线。
- Callout 进一步减弱背景、边线和色彩权重，Quote 继续保持中性语义。
- 完成任务的弱化程度重新平衡，保留快速扫描所需的可读性。

### 编辑与兼容

- 保留块内软换行、代码块换行、富文本、块树、Undo/Redo、Journal 与冲突恢复。
- 页面数据格式保持版本 4；视觉迁移版本升级为 5。
- 新增正文全宽、导航去重、属性无装饰图标和统一间距的静态回归测试。

## 0.12.1 — 2026-07-23

### 实际界面修正

- 根据真实 Obsidian 客户端截图重新校正页面比例，而不是继续叠加轻微边框规则。
- 默认封面进一步缩短，降低饱和度，并把“更换封面”改为仅悬停出现的小型操作浮层。
- Emoji 图标缩小并彻底移除应用图标式白底、阴影和厚重重叠。
- 页面标题缩小并降低字重，让正文成为首屏主角。
- 对旧安装执行一次视觉迁移：页面属性默认折叠为单行状态摘要，仍可随时展开。
- 折叠属性仅显示状态、优先级和标签；展开属性限制宽度并改为紧凑定义列表。
- 子列表层级线改为悬停/聚焦时出现，减少常驻结构噪音。
- 空的嵌套任务和列表始终显示“输入子任务/子项”，不再只留下孤立复选框。
- Quote 与 Callout 进一步减轻边框、背景和色彩权重。
- 缩小块标题比例、封面与标题间距、底部添加按钮和顶部工具栏高度。

### 编辑与兼容

- 保留 0.12.0 的 `Shift + Enter` 块内换行和代码块 Enter 换行行为。
- 页面数据格式、块树、富文本、Undo/Redo、Journal 和 Markdown 导入导出保持兼容。
- 新增视觉迁移版本 4，确保旧设置不会继续强制展开属性区域。

### 测试

- 新增真实界面修正 CSS 的静态覆盖测试。
- 验证视觉迁移版本、属性默认折叠、软换行和块树回归。

## 0.11.0 — 2026-07-23

### 真正的块树

- 数据格式升级到版本 4，新增 `rootBlockIds`、`parentId`、`children` 和 `collapsed`。
- 旧版 `depth` 页面自动迁移为真实父子结构，视觉缩进改为派生值。
- 新增块树规范化、循环修复、孤立块恢复和结构验证。
- 复制、删除、移动与 Markdown 导出均按完整子树处理。

### 嵌套列表与容器

- 无序列表、有序列表、待办、引用、Callout 和 Toggle 支持子块。
- 新增 Toggle 折叠块和 `/toggle` Slash 命令。
- 新增容器展开/折叠按钮、键盘折叠与可见块投影。
- `Tab / Shift + Tab` 改为真实缩进和反缩进，不再修改视觉数字。
- 空嵌套列表的 Enter/Backspace 优先退出一级层级。
- 有序列表编号按父级和连续列表段重新计算。

### 子树交互

- 拖拽支持上方、下方和容器内部三种落点。
- 父块拖动时自动携带全部后代。
- 多块选择会去除重复后代，按顶层选中子树执行批量操作。
- Alt 上下移动限制在同级，防止破坏树结构。
- Enter 拆分、Backspace 合并和多行粘贴均通过树操作完成。

### 互操作与测试

- Markdown 导入识别缩进列表；导出生成嵌套列表和 Toggle details。
- 新增迁移、折叠投影、缩进、反缩进、子树移动、复制、删除、拆分、合并和编号测试。
- 新增静态检查，禁止插件继续直接写入 `depth`。

## 0.10.0 — 2026-07-23

### 成熟视觉系统

- 新增 Notion、思源和 Obsidian 原生三种视觉预设，可在设置页即时切换。
- 重做顶部导航、页面标题、图标、封面、属性摘要和正文的比例与间距。
- 新增页面外观快捷入口，解决无封面页面无法直接添加封面的问题。
- 当前编辑块改用轻量左侧指示，多块选择继续保留清晰的强调状态。
- 重新调整标题、列表、待办、引用、Callout、代码块与分隔线的视觉节奏。
- 新增空页面操作提示，并进一步降低底部“添加块”入口的视觉噪音。
- 统一 Slash 菜单、富文本工具栏、批量操作栏的圆角、阴影和背景模糊。
- 看板列与卡片改为更成熟的层级，增加更清晰的拖放目标反馈。
- 为深色主题增加专门的边线与阴影策略。
- 保留 0.9 用户已有的页面属性展开偏好，不在升级时重置。

## 0.9.0 — 2026-07-23

### 精致视觉系统

- 重构文档画布的视觉层级、留白、字体比例和控件密度。
- 修复顶部页面切换器被旧 Breadcrumb 弹性规则拉伸成巨大输入框的问题。
- 无封面页面减少顶部空白，页面图标改为轻量按钮，标题比例更克制。
- 页面属性默认以紧凑摘要显示；展开后改为无卡片、无白色输入框的元数据布局。
- 多个空块不再同时显示占位文字，仅首块或当前编辑块显示提示。
- 块手柄与添加按钮进入安静的内容边沟，去除厚重按钮边框和阴影。
- 统一文档、Slash 菜单、看板和 Inspector 的圆角、边线、阴影与悬停语言。
- 增加一次性视觉设置迁移，旧安装升级后默认折叠页面属性。
- 继续全面使用 Obsidian CSS Variables，并尊重减少动态效果设置。

## 0.8.1

- 修复打开 Blockspace 视图时报错 `notifyContextChanged is not a function`。
- 将页面上下文刷新与 Inspector 激活方法移回插件主类，避免存储层错误承担工作区职责。
- 修复活动叶子切换、页面切换和 Inspector 刷新链路。
- 增加方法归属回归测试，防止构建后再次出现同类问题。

## 0.8.0 — 2026-07-23

### Obsidian 原生工作区融合

- 移除工作台内部常驻左右侧栏，正文成为唯一主工作区。
- 页面树改为顶部页面切换器与快速切换器。
- 文档/看板合并为一个视图菜单。
- 顶部工具栏精简为页面、视图、检查器和更多操作。
- 保存成功状态自动隐藏，异常状态按需显示。

### 原生页面检查器

- 注册 Obsidian 原生右侧栏 `Blockspace 检查器`。
- 支持编辑状态、优先级和标签。
- 支持标题大纲跳转、页面统计、存储路径和保存状态。
- 支持从顶部按钮、命令面板与更多菜单打开。
- 多工作台分栏按最近活动页面刷新检查器，并使用节流更新。

### 视觉与布局

- 文档模式保持阅读宽度，看板模式使用完整横向空间。
- 页面属性区域减弱边框和卡片感。
- 新增原生页面切换器、视图菜单和检查器样式。
- 移除内部移动端左右抽屉依赖。
- 全部新增界面继续使用 Obsidian 主题变量。

### 测试

- 新增原生 Shell 静态集成测试。
- 验证主渲染路径不再挂载内部 Sidebar 和 Right Panel。
- 保持核心事务、存储、恢复和插件生命周期测试通过。

## 0.7.0 — 2026-07-23

### 多块选择

- 新增单块、连续范围和非连续多块选择。
- 支持 Shift 单击连续选择、Ctrl/Cmd 单击切换选择。
- 编辑状态按 Esc 可进入块选择，方向键可导航和扩展选择。
- 新增底部批量操作栏和无障碍选中状态。

### 批量操作

- 支持批量复制、删除、转换类型、设置样式、缩进和移动。
- 支持将所选块复制为 Markdown。
- 支持 Ctrl/Cmd + D、Ctrl/Cmd + C、Delete、Alt + 方向键和 Tab 批量快捷键。
- 支持一次选择页面全部块。

### 拖拽与流畅性

- 支持多个选中块作为一组拖拽，保持相对顺序。
- 新增拖拽边缘自动滚动。
- 拖拽预览、插入线和选中反馈更加清晰。
- 新增纯函数多项插入排序并补充回归测试。

### Slash 菜单

- 新增命令分类、别名显示和模糊搜索。
- 支持 `/h1`、`/todo`、`/code` 等快捷别名。
- 增强菜单键盘提示、ARIA 状态和选中反馈。

## 0.6.0 — 2026-07-23

### 富文本

- 新增选中文字悬浮工具栏。
- 新增加粗、斜体、下划线、删除线、行内代码、链接、文字颜色和高亮。
- 新增清除所选文字格式。
- 新增富文本快捷键，并避免调用不可持久化的浏览器原生格式。
- 富文本使用纯文本加语义化 marks 区间存储。

### 块样式

- 块菜单新增“块样式”。
- 支持整块文字颜色、背景颜色和左/中/右对齐。
- 支持一键清除块外观。
- 所有颜色使用语义名称，自动适配 Obsidian 明暗主题。

### 全局排版

- 设置页新增正文字体选择。
- 设置页新增 12–24px 正文字号。
- 设置页新增 1.2–2.2 正文行高。

### 编辑与迁移

- 数据格式升级到版本 3，兼容读取旧页面。
- 输入、拆分、合并、多行粘贴和块复制会保留或正确变换文字格式区间。
- Markdown 导出新增富文本和块外观的兼容降级。
- 格式变更进入页面事务历史，可正常撤销和重做。

## 0.5.0 — 2026-07-23

### 视觉与布局

- 重做顶部工具栏、视图切换、保存状态和面板控制。
- 页面属性改为可折叠摘要面板。
- 封面和页面图标改为菜单选择。
- 新增可配置正文宽度、紧凑界面密度和专注模式。
- 优化侧栏、页面列表、文档块、Slash 菜单、看板和诊断界面的层级与动效。
- 尊重系统减少动态效果设置。

### 操作便利性

- 新增 `Ctrl/Cmd + K` 快速切换器，可搜索页面和执行常用操作。
- 新增 `Ctrl/Cmd + N` 新建页面、`Ctrl/Cmd + Shift + F` 专注模式。
- 新增页面列表行内菜单。
- 页面标题、状态和保存状态即时反馈。
- 记忆每个页面的滚动位置，完整重绘后恢复光标和滚动位置。

### 块编辑

- 支持在块首 Backspace 合并上一块。
- 空列表、待办和引用按 Enter 自动退出为普通文本。
- 多行粘贴自动拆分为多个块，代码块保留原始换行。
- 新增复制块、移动块和切换待办状态快捷键。
- 支持光标在块边界用方向键跨块导航。
- 拖拽增加上方/下方精确插入位置和视觉插入线。

### 响应式体验

- 手机端左侧栏改为抽屉。
- 窄屏右侧信息面板改为覆盖面板。
- 手机看板改为横向卡片列浏览。

## 0.4.0 — 2026-07-23

### 编辑内核

- 新增页面会话事务历史。
- 新增可靠的撤销与重做命令和顶部工具栏按钮。
- 连续文本输入按编辑会话合并，避免每个字符占用一条历史。
- 块插入、拆分、删除、复制、转换、缩进、上下移动和拖拽改为事务化操作。
- 修复自动保存后编辑器事件仍引用旧块对象，可能导致后续输入未写入当前页面的问题。
- 新增中文输入法组合状态保护，候选期间不接管 Enter、方向键和 Slash 行为。

### 存储与恢复

- 数据格式升级到版本 2，兼容读取 0.3.x 页面。
- 新增 `.blockspace/journal` 待恢复日志。
- 新增临时文件验证、备份替换和失败回滚流程。
- 新增 `.blockspace/snapshots` 页面恢复快照及数量限制。
- 新增快照最小时间间隔，避免连续输入造成过多磁盘写入。
- 新增页面修订冲突检测，防止多窗口或同步端静默覆盖。
- 冲突数据自动保存到 `.blockspace/recovery`。
- 修复保存过程中继续输入时，较旧保存结果可能覆盖新内存内容的问题。

### 诊断

- 新增“打开诊断与恢复”命令。
- 支持检查缺失页面、无效 JSON、重复块 ID、旧数据格式和待恢复日志。
- 支持重建页面索引和手动恢复未完成保存。
- 页面标准化时自动修复重复块 ID。

### 界面

- 顶部新增保存状态提示。
- 顶部新增撤销和重做按钮。
- 新增诊断面板及主题适配样式。

## 0.3.1 — 2026-07-23

- 修复隐藏数据目录已存在时抛出 `Folder already exists` 的启动错误。
- 结构化 JSON 数据改用 Vault Adapter 读写，兼容 `.blockspace` 等点号目录。
- 新增目录级并发锁，避免多个初始化或保存操作同时创建同一目录。
- 新增存储初始化锁和失败后重试机制。
- 保持 0.3.0 数据格式不变，无需迁移。

## 0.3.0 — 2026-07-23

- 从 Markdown 编辑增强器重构为独立 Blockspace Workspace。
- 新增基于 Obsidian `ItemView` 的三栏工作台界面。
- 新增 `.blockspace/pages/*.json` 结构化页面存储。
- 新增页面树、搜索、图标、封面和属性编辑。
- 新增结构化块编辑、Slash 菜单、块拆分、缩进和拖拽排序。
- 新增项目看板与状态拖动。
- 新增 Markdown 导入和导出。
- 新增自动保存队列、页面索引和主题响应式样式。
