
# Side Comments origin v1.0.10 发布说明

- 发布日期：2026-08-17
- 最低 Obsidian 版本：0.15.0
- 支持平台：桌面端与 Obsidian Mobile

## 发布审核修复

- 移除 `docx` 所捆绑旧版 JSZip 调度兼容层中的 4 条动态 `<script>` 创建路径，
  以及相关的 `new Function()` 路径。
- 增加精确且失败即停止的构建转换，只移除这些已过时的 Internet Explorer
  回退逻辑；受支持的 Obsidian 平台继续使用原生计时器和 `MessageChannel`。
- 增加构建后安全门禁；如果今后的 bundle 再次包含动态脚本、`eval()` 或
  `new Function()`，构建会直接失败。
- 通过生成包含原生批注的 DOCX，并校验 ZIP 签名和批注数量，确认 Word 导出
  在修改后仍可正常工作。
- 发布工作流现在只上传 Obsidian 支持的三个资产：`main.js`、`manifest.json`
  和 `styles.css`。
- 已从 v1.0.9 GitHub Release 删除不受支持的 ZIP 压缩包。

剪贴板访问仅发生于用户主动复制批注回链或向批注编辑器粘贴图片时，插件不会
在后台访问剪贴板。

本版本不增加笔记、疑问、待办、警告等语义类型，不增加“已解决”状态，也不改变
现有批注数据格式。

---

# Side Comments origin v1.0.9 发布说明

- 发布日期：2026-08-17
- 最低 Obsidian 版本：0.15.0
- 支持平台：桌面端与 Obsidian Mobile

## 自动审核问题清理

- 修复官方 Obsidian 审核规则针对 v1.0.8 报告的全部源码警告与建议。
- 为 Obsidian 1.13+ 增加可搜索的声明式设置定义，同时保留旧版 Obsidian
  使用的现有设置界面。
- 将已弃用的 Markdown 渲染、通知元素和字符串 API 替换为受支持的实现。
- 使用 Obsidian DOM 创建助手，并让 DOM 类型检查兼容弹出窗口。
- 为 Obsidian 内部集成边界、编辑器选区、阅读渲染、插件数据和 CodeMirror
  访问补充明确类型。
- 修正侧栏渲染、导航、剪贴板和悬浮提示中的异步调用，所有 Promise 均被等待
  或明确忽略。
- 统一使用 `window.setTimeout()` 与 `window.clearTimeout()`，改善弹出窗口兼容性。
- 移除未使用变量、不必要断言、空的异常处理块和无效的选区坐标计算。

生产构建与官方 lint 规则均以 0 错误、0 警告通过。本版本不增加笔记、疑问、
待办、警告等语义类型，不增加“已解决”状态，也不改变现有批注数据格式。

---

# Side Comments origin v1.0.8 发布说明

- 发布日期：2026-08-17
- 最低 Obsidian 版本：0.15.0
- 支持平台：桌面端与 Obsidian Mobile

## 审核规范与兼容性修复

- 将静态内联样式迁移为 CSS 类或 Obsidian `setCssStyles` 调用。
- 使用 `Setting.setHeading()` 替换手动创建的设置标题。
- 移除不安全的 `innerHTML` 实体解码和运行时 `<style>` 注入。
- 将默认视觉变量以及加载、拖动状态迁移到 `styles.css`。
- 移除 Node.js `crypto`、`require` 和 `Buffer` 回退，改用 Web Crypto 与
  浏览器兼容回退，保持移动端支持。
- 使用 `Vault.configDir` 替换写死的 `.obsidian` 插件数据路径。
- 显式声明 CodeMirror 依赖，并移除过时的 `builtin-modules` 包。
- 接入官方 `eslint-plugin-obsidianmd` 规则和 Release lint 门禁。
- 更新构建工具链；依赖审计目前报告 0 个已知漏洞。

本版本只调整实现方式与审核兼容性，不增加笔记、疑问、待办、警告等
语义类型，不增加“已解决”状态，也不改变现有批注数据格式。

---

# Side Comments origin v1.0.5 发布说明

发布日期：2026-08-10  
最低 Obsidian 版本：0.15.0  
支持平台：桌面端、Obsidian Mobile

## 版本摘要

v1.0.5 是一次围绕阅读视图、视觉标记和批注交互体验的完整升级。本版本统一了编辑视图、阅读视图和侧栏中的批注操作，增加四种视觉样式、每条批注独立颜色、Word 导出、移动端适配与键盘访问，并集中修复插件热重载和重复事件监听造成的稳定性问题。

本版本只扩展视觉样式，不增加“笔记、疑问、待办、警告”等语义类型，也不增加“已解决”状态。

## 新功能

### 阅读视图批注

- 批注标记可以直接显示在阅读视图中。
- 悬停标记可查看批注正文、创建时间和快捷操作。
- 单击标记可在批注侧栏中定位。
- 双击标记可打开编辑窗口。
- 对链接使用 `Ctrl`、`Cmd`、`Shift` 或 `Alt` 点击时，保留 Obsidian 原有链接行为。
- 从侧栏定位阅读视图批注时，会自动滚动到对应位置并显示短暂定位反馈。

### 四种视觉样式与独立颜色

- 新增高亮、下划线、删除线、加粗四种视觉标记。
- 每条批注可以独立调整样式和颜色。
- 提供紫、粉、蓝、绿、黄五种预设色以及系统自定义颜色选择器。
- 自定义颜色按钮会显示当前实际颜色。
- Word 导出会尽量保留批注在 Obsidian 中的视觉样式。

### 统一批注编辑窗口

- 新建与编辑共用同一套浮动窗口。
- 可以在一个窗口内修改正文、视觉样式和颜色。
- 支持粘贴图片并保存到配置的附件目录。
- 支持拖动、文本框自动增高、`Ctrl/Cmd + Enter` 保存和 `Esc` 关闭。
- 样式按钮支持方向键、`Home` 和 `End`。
- 窗口关闭后会恢复之前的键盘焦点。

### 选区工具栏

- 选择文字后可直接添加四种视觉标记。
- 可在工具栏中选择预设颜色或自定义颜色。
- 选择已有批注的精确范围时，会显示“已批注”。
- 工具栏会回显已有批注的样式和颜色。
- 对已有范围再次执行样式命令时更新原批注，不再创建重复批注。

### 侧栏交互

- 批注卡片显示对应视觉样式图标和颜色边线。
- 支持搜索引用文本和批注正文。
- 支持按正文位置或创建时间排序。
- 支持折叠或展开全部批注内容。
- 支持编辑、复制精确回链、在库中搜索和删除。
- 删除后提供 7 秒撤销入口。
- 菜单支持方向键、`Home`、`End`、`Esc` 和焦点恢复。
- 卡片支持 `Tab`、`Enter`、空格和 `F2`。

### 导出、回链与备份

- 新增“导出当前笔记为 Word (含批注)”命令。
- Word 导出使用原生批注结构，并报告无法定位而跳过的批注数量。
- 侧栏可以将当前笔记的批注导出为 Markdown。
- 精确回链使用 `obsidian://sidenote?timestamp=...` 定位对应批注。
- 设置页可以创建独立 Markdown 批注备份。

### 移动端与无障碍

- 编辑窗口适配窄屏和 Obsidian 移动端应用类名。
- 主要触控按钮使用 32–36 px 的交互尺寸。
- 选区工具栏支持横向滚动。
- 补充按钮标题、ARIA 标签、按压状态和键盘焦点样式。
- 中文输入法组合输入期间不会误触 `Ctrl/Cmd + Enter` 提交。

## 稳定性修复

### 修复双击打开多个批注窗口

旧代码使用不同的 `bind(this)` 结果添加和移除编辑器双击监听器，导致监听器无法真正卸载。插件重载或编辑器重建次数增加后，一次双击会被多个旧监听器重复处理。

v1.0.5 进行了以下修复：

- 使用稳定的函数引用正确添加和移除编辑器监听器。
- 在捕获阶段统一处理编辑视图与阅读视图双击。
- 使用跨插件热重载的全局弹窗单例。
- 新窗口打开前关闭旧窗口并清理孤立窗口节点。
- 插件启动和卸载时主动清理遗留窗口。

### 其他修复

- 修复阅读视图在插件热重载后可能出现空白的问题。
- 修复旧浮动窗口在插件重载后残留的问题。
- 修复预设颜色按钮受 Obsidian 默认按钮样式影响而显示为白色的问题。
- 修复自定义颜色没有正确显示激活状态的问题。
- 修复侧栏点击阅读视图批注时无法可靠定位的问题。
- 修复选中已有批注范围后可能重复创建批注的问题。
- 修复批注保存按钮被快速重复触发的问题。
- 修复编辑器点击监听器无法正确卸载的问题。

## 数据兼容性

- 现有批注数据无需手动迁移。
- 缺少 `markType` 的旧批注默认按高亮显示。
- 缺少独立颜色的旧批注继续使用插件默认颜色。
- 旧版保存在插件 `data.json` 中的批注会继续迁移到按笔记保存的 JSON 文件。
- 本版本没有增加语义类型或处理状态字段。

建议升级前备份以下内容：

- `.obsidian/plugins/side-comments-origin/data.json`
- 配置的批注数据文件夹，默认 `side-note-data`
- 配置的批注附件文件夹，默认 `side-note-attachments`

## 升级方式

1. 关闭当前打开的批注编辑窗口。
2. 使用新版本替换插件目录中的以下文件：
   - `main.js`
   - `manifest.json`
   - `styles.css`
3. 在 Obsidian 中重新加载 **Side Comments origin**。
4. 打开包含批注的笔记，分别检查编辑视图和阅读视图。

插件启动时会自动清理旧版本遗留的孤立浮动窗口。

## 发布文件

发布包应至少包含：

```text
main.js
manifest.json
styles.css
```

从源码构建：

```bash
npm install
npm run build
```


## 已知限制

- 极短或大量重复的文本仍可能产生定位歧义。
- 原文经过大规模删除、拆分或改写后，批注可能成为孤立批注。
- Word 导出只能包含仍能在当前正文中准确定位的批注。
- 修改批注数据文件夹后需要重新加载插件。
