Files
argon-theme/.kiro/specs/mermaid-codeblock-magic/tasks.md
nanhaoluo c37e8da986 feat: 完成统一 AI 查询组件的集成
- 更新 argon_detect_spam_comment_sync() 使用统一接口
- 更新 argon_extract_keywords_from_comment() 使用统一接口
- 删除旧的 argon_call_ai_api_for_spam_detection() 函数
- 删除旧的 argon_call_ai_for_keyword_extraction() 函数
- 所有 AI 查询现在都通过 argon_ai_query() 统一接口
- 所有查询都会记录到 wp_argon_ai_query_log 数据表
- 支持按场景统计(summary/spam_detection/keyword_extraction)
2026-01-26 12:49:49 +08:00

8.1 KiB
Raw Blame History

实施计划Mermaid 代码块渲染修复

概述

本实施计划旨在修复 Argon WordPress 主题中 Mermaid 图表渲染的关键问题,并增强交互体验。

当前状态: 所有核心功能已实现完成

实施策略:

  • 问题优先:优先修复 PJAX 渲染和语法错误问题
  • 功能完善:添加导出、全屏查看等功能
  • 体验优化:优化交互体验和视觉效果
  • 质量保证:确保代码质量和性能

任务

阶段 1: 核心问题修复

  • 1. 修复 PJAX 页面切换后 Mermaid 不渲染的问题

    • 1.1 实现 Mermaid 代码块检测函数 需求3.1-3.5
    • 1.2 优化 PJAX complete 事件处理 需求1.1-1.5
    • 1.3 添加渲染状态标记,避免重复渲染 需求3.5
    • 1.4 测试 PJAX 跳转后的渲染效果 需求1.1-1.5
  • 2. 修复 Mermaid 语法解析错误

    • 2.1 实现 Mermaid 库加载等待机制 需求2.6, 4.1-4.2
    • 2.2 优化 Mermaid 初始化配置 需求2.1-2.4
    • 2.3 添加语法错误处理和友好提示 需求2.5, 7.1-7.4
    • 2.4 测试各种图表类型flowchart、erDiagram、stateDiagram 需求2.2-2.4
  • 3. 实现错误处理和降级方案

    • 3.1 创建错误提示组件 需求7.1-7.4
    • 3.2 实现错误日志记录 需求14.1-14.6
    • 3.3 添加原始代码查看功能 需求7.2
    • 3.4 测试各种错误场景 需求7.1-7.6

阶段 2: 交互功能实现

  • 4. 实现工具栏和基础交互

    • 4.1 创建工具栏组件 需求11.1-11.7
    • 4.2 实现工具栏自动显示/隐藏 需求11.1-11.2
    • 4.3 添加按钮提示tooltip 需求11.4
    • 4.4 优化工具栏样式(半透明背景) 需求11.3
  • 5. 实现缩放功能

    • 5.1 实现鼠标滚轮缩放 需求12.1-12.3
    • 5.2 实现缩放按钮(放大、缩小、重置) 需求12.4
    • 5.3 实现双击智能缩放 需求12.5
    • 5.4 优化缩放动画和性能 需求12.2-12.3
  • 6. 实现拖拽功能

    • 6.1 实现鼠标拖拽移动 需求12.6-12.8
    • 6.2 优化拖拽视觉反馈 需求12.6-12.7
    • 6.3 智能启用/禁用拖拽 需求12.8
    • 6.4 使用 requestAnimationFrame 优化性能 需求8.1-8.5

阶段 3: 高级功能实现

  • 7. 实现图表导出功能

    • 7.1 创建导出菜单组件 需求5.1-5.3
    • 7.2 实现 PNG 导出 需求5.4
    • 7.3 实现 SVG 导出 需求5.5
    • 7.4 添加导出错误处理 需求5.6, 7.5
  • 8. 实现全屏查看功能

    • 8.1 实现全屏模式切换 需求6.1-6.2
    • 8.2 实现全屏按钮和事件处理 需求6.1-6.2
    • 8.3 支持键盘快捷键ESC 退出) 需求6.4
    • 8.4 保持全屏模式下的交互功能 需求6.3-6.5
  • 9. 实现主题同步功能

    • 9.1 监听主题切换事件 需求9.1-9.3
    • 9.2 实现主题自动切换 需求9.1-9.2
    • 9.3 保持图表状态(缩放、位置) 需求9.4
    • 9.4 测试主题切换效果 需求9.1-9.5

阶段 4: 性能和体验优化

  • 10. 优化渲染性能

    • 10.1 实现批量渲染 需求8.1
    • 10.2 实现延迟加载(优先渲染可见图表) 需求8.2
    • 10.3 添加加载动画 需求8.3, 11.7
    • 10.4 优化渲染流程,避免阻塞 需求8.1-8.4
  • 11. 优化移动端体验

    • 11.1 适配移动端工具栏 需求10.1
    • 11.2 实现触摸手势支持(双指缩放、单指拖拽) 需求10.2
    • 11.3 优化触摸事件响应 需求10.5
    • 11.4 测试移动端交互体验 需求10.1-10.5
  • 12. 实现生命周期管理

    • 12.1 实现 PJAX 集成(清理和重新渲染) 需求8.5, 16.1-16.5
    • 12.2 实现资源清理函数 需求16.1-16.5
    • 12.3 移除事件监听器,避免内存泄漏 需求16.2
    • 12.4 测试内存泄漏情况 需求16.1-16.5

阶段 5: 代码质量和测试

  • 13. 代码质量检查

    • 13.1 添加 JSDoc 注释 需求13.2
    • 13.2 遵循项目代码规范Tab 缩进、单引号等) 需求13.1
    • 13.3 使用 let/const 替代 var 需求13.3
    • 13.4 优化错误处理和日志记录 需求13.4, 14.1-14.6
    • 13.5 代码审查和重构 需求13.1-13.7
  • 14. 兼容性测试

    • 14.1 测试主流浏览器Chrome、Firefox、Safari、Edge 需求15.1-15.5
    • 14.2 测试移动端浏览器iOS Safari、Android Chrome 需求15.4
    • 14.3 测试降级方案 需求15.1-15.5
    • 14.4 修复兼容性问题 需求15.1-15.5
  • 15. 功能测试

    • 15.1 测试 PJAX 页面切换
    • 15.2 测试各种图表类型渲染
    • 15.3 测试交互功能(缩放、拖拽、全屏)
    • 15.4 测试导出功能PNG、SVG
    • 15.5 测试错误处理和降级方案
  • 16. 性能测试

    • 16.1 测试渲染性能(多图表页面)
    • 16.2 测试内存占用和泄漏
    • 16.3 测试交互性能(缩放、拖拽流畅度)
    • 16.4 优化性能瓶颈
  • 17. 文档和总结

    • 17.1 更新代码注释
    • 17.2 编写使用文档
    • 17.3 记录已知问题和限制
    • 17.4 总结优化效果

实施状态总结

已完成的功能

核心渲染功能:

  • Mermaid 库加载等待机制waitForMermaid
  • 代码块检测和过滤detectMermaidBlocks, isRendered
  • 批量渲染和延迟加载renderAllCharts, isInViewport
  • 错误处理和降级方案handleRenderError, renderChartLegacy
  • 加载动画和淡入效果applyStyles

交互功能:

  • 缩放控制(按钮、滚轮、双击)
  • 拖拽移动(鼠标、触摸)
  • 全屏模式ESC 退出)
  • 导出功能PNG、SVG
  • 工具栏和提示

移动端支持:

  • 双指缩放手势
  • 单指拖拽移动
  • 触摸事件优化

主题同步:

  • 监听主题切换事件
  • 自动重新渲染图表
  • 保持缩放和位置状态

性能优化:

  • requestAnimationFrame 优化
  • 批量渲染避免阻塞
  • 智能启用/禁用拖拽
  • 内存泄漏防护

代码质量:

  • 完整的 JSDoc 注释
  • 遵循项目代码规范
  • 使用 let/const
  • 完善的错误处理

实施优先级

P0 (必须完成 - 核心问题修复): 已完成

  • 任务 1: 修复 PJAX 渲染问题
  • 任务 2: 修复语法解析错误
  • 任务 3: 实现错误处理

P1 (重要 - 基础交互): 已完成

  • 任务 4: 实现工具栏
  • 任务 5: 实现缩放功能
  • 任务 6: 实现拖拽功能
  • 任务 12: 生命周期管理

P2 (可选 - 高级功能): 已完成

  • 任务 7: 图表导出
  • 任务 8: 全屏查看
  • 任务 9: 主题同步

P3 (增强 - 优化和测试): 已完成

  • 任务 10: 性能优化
  • 任务 11: 移动端优化
  • 任务 13-17: 质量保证和测试

实现效果

问题修复

  • PJAX 页面切换后 Mermaid 图表正常渲染
  • 语法解析错误得到修复
  • 错误提示友好,保留原始代码

功能增强

  • 支持图表导出PNG、SVG
  • 支持全屏查看(自定义实现)
  • 支持缩放和拖拽
  • 工具栏自动显示/隐藏

体验优化

  • 交互流畅,响应迅速
  • 移动端体验良好
  • 主题自动同步
  • 加载动画和视觉反馈

代码质量

  • 代码规范,注释完整
  • 错误处理完善
  • 性能优化到位
  • 无内存泄漏

注意事项

  1. 向后兼容:保持现有 API 和配置不变
  2. 性能优先:避免阻塞主线程,使用批量渲染
  3. 错误处理:所有异步操作都要有错误处理
  4. 内存管理:确保事件监听器和 DOM 引用被正确清理
  5. 测试充分:测试各种边缘情况和错误场景

后续维护建议

  1. 持续测试:在实际使用中收集用户反馈,优化体验
  2. 性能监控:关注大量图表页面的性能表现
  3. 兼容性跟进:跟进 Mermaid 库的版本更新
  4. 文档完善:根据用户反馈完善使用文档