Skip to content

feat(editor): #822 中文排版三项手动操作(Markdown / 富文本) - #823

Merged
cropflre merged 17 commits into
release/v1.5.2from
feat/issue-822-cjk-typography
Oct 10, 2026
Merged

cropflre merged 17 commits into
release/v1.5.2from
feat/issue-822-cjk-typography

Conversation

@cropflre

@cropflre cropflre commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Closes #822(合并后自动关闭)

方案

  • 纯 TypeScript CJK 排版核心,无新第三方依赖。
  • 中英文/数字加空格、上下文保守标点转换、可选直角引号,均手动点击触发。
  • Markdown:在 CodeMirror 6 读取整篇保护区(fence、行内代码、TeX、URL、邮箱、HTML、链接目标、数字等),只修改保护区之外的选区/全文,一个 dispatch 事务支持撤销。
  • 富文本:ProseMirror 按文档文本节点修改,跳过代码、数学、链接,保留 marks/嵌入节点,并在一个事务中修改以支持撤销。
  • PC 和移动端笔记更多菜单新增三个动作,锁定/只读场景禁用。

验收

  • CJK 规则与误伤保护专项单测通过
  • CodeMirror 选区和单步撤销测试通过
  • Tiptap 文本标记保护和单步撤销测试通过
  • 前端 TypeScript/生产构建与相关 CI 通过
  • 复杂真实笔记(公式/表格/嵌套链接)手动验收

**注意:**标点上下文无法靠简单正则穷尽所有自然语言语义,当前采用保守规则;模糊场景宁可不修改。

CI 修复跟进(2026-10-10)

  • cjkTypography.ts 新增 ESLint 问题 5 处已清理(未使用常量及 4 处冗余转义),CJK CI 增加专用 npx eslint 门禁;专项 CI 成功。
  • markdownLivePreview.test.tsx 通过等待异步 React Preview / 签名 URL 渲染代替固定 30ms 推断;相关回归步骤通过。
  • useAttachmentImageRenderSource.test.tsx 不再要求无授权图片 URL 可直接渲染;明确断言在获得新签名之前图片不可渲染,继续验证签名更新后保留宽度参数;相关回归步骤通过。
  • 已将 release/v1.5.2 的 #825 AIChatPanel 国际化修复合入 PR 分支,保留 aiChatTask 和 cjkTypography 两套中英翻译;I18n CI 成功。
  • 仓库全量 ESLint 在旧基线以外仍有大量历史增量(修复前 137、清理新增 CJK 错误后的前一轮 132)。保持原有总量门禁,不在本 PR 静默更新 baseline。

保留 Draft:等待最新完整 CI 结论及复杂真实笔记/移动端手工验收,不因专项检查通过就宣称发布。

Copy link
Copy Markdown
Owner Author

#823 CI 修复与更新(不合并,继续保留 Draft)

已修复本 PR 新增的 cjkTypography.ts ESLint 5 处问题(未使用变量 + 四处冗余转义),同时增加新增 CJK 核心模块的专项 lint 检查。

针对 2 个与基础分支一致的附件预览测试,按现有安全语义更新断言:

  • markdownLivePreview.test.tsx:等待 CodeMirror/React 异步挂载及签名 URL 更新,而不是假设固定 30ms 就完成。
  • useAttachmentImageRenderSource.test.tsx:签名未取得时要求 renderSrc 为空,取得签名后才验证渲染地址、缩略图参数及晚到签名更新;未修改任何生产附件 ACL / 访问限制。

已合并 release/v1.5.2 最新基线(包括 #825 的国际化修复),并人工合并翻译:aiChatTask、cjkTypography 中英两组都保留;当前 PR 不落后基础分支。

最新复验:

仍待手动验收真实复杂笔记中的代码块、公式、HTML、嵌套链接与移动端交互。

Copy link
Copy Markdown
Owner Author

Shared lint baseline fix applied

已将 #826 合并后的 release/v1.5.2 更新到本 PR(f8365bc)。

  • Issue 612 Data Protection CI 的 Frontend lint 已通过。
  • CJK 专项 lint、Markdown Live Preview、国际化及图片安全回归仍保留。
  • 继续保留 Draft:复杂 Markdown(公式、嵌套链接、HTML)及移动端菜单行为需要手动回归。

@cropflre
cropflre merged commit bd3550b into release/v1.5.2 Oct 10, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant