Skip to content

v1.1.65

Choose a tag to compare

@xykong xykong released this 09 Jan 06:54
· 701 commits to master since this release

Added

  • App: 支持 --register-only 启动参数。该参数允许应用在无界面模式下启动并立即退出,用于安装脚本触发 QuickLook 扩展注册。
  • 预览 (Preview): 实现了大文件截断机制。为了防止渲染过大文件导致 QuickLook 卡死,超过 500KB 的文件将只渲染前 500KB,并在底部显示截断警告。
  • 扩展 (Extension): 在 QuickLook 预览界面添加了悬浮的主题切换按钮,允许用户直接在预览中切换亮/暗模式。
  • 宿主应用 (Host App): 实现了窗口大小和位置的持久化。应用现在能跨启动记住上次的窗口位置和大小。
  • 外观设置: 增加了“视图” > “外观”菜单,支持手动切换 浅色、深色 或 跟随系统 模式。
  • 宿主浏览器: 主应用现在作为一个独立的 Markdown 阅读器(只读模式)运行。
    • 支持通过 Finder 或“文件”>“打开”加载本地 .md 文件。
    • 实现了注入 baseUrl 的 MarkdownWebView 以正确解析本地资源。
    • 支持渲染相对路径的本地图片(如 ![alt](image.png))。
    • 实现了链接导航:外部链接在 Safari 打开,本地 .md 链接在应用新窗口打开。
  • 文档:
    • 新增 docs/DESIGN_HOST_APP_BROWSER.md 设计文档。
    • 新增 docs/OPTIMIZATION_ROADMAP.md,详细分析了性能和体验优化方向。

Changed

  • 性能 (Performance): 优化了 Mermaid.js 的加载策略。现在采用懒加载(Lazy Load)模式,仅在文档包含图表时才加载 Mermaid 库,显著提升了普通文档的打开速度。
  • 渲染器 (Renderer): 改进了 Mermaid 图表渲染。
    • 改为按块(Per-block)渲染,防止单个图表错误导致整个页面渲染失败。
    • 增加了健壮的错误处理:无效的 Mermaid 语法现在会显示友好的错误信息及源码,而不是静默失败。
    • 增加了错误信息的暗色模式支持。
  • 预览 (Preview): 增强了窗口调整逻辑。
    • 增加了智能屏幕边界约束,防止恢复的窗口超出当前屏幕可视范围。
    • 改进了调整大小的追踪生命周期,防止视图消失(Disappear)时发生布局抖动。
    • 增加了详细的环境日志,用于调试屏幕和窗口状态。
  • 渲染器 (Renderer): 移除了最大宽度限制(原为 980px),允许预览内容充满整个窗口宽度,提供更沉浸的阅读体验。
  • 外观 (Appearance): 将默认外观模式调整为 浅色 (Light)(此前默认跟随系统),以提供更一致的初始体验。
  • 外观同步: 实现了“完美暗色模式同步” (Perfect Dark Mode Sync)。
    • 引入自适应 CSS (highlight-adaptive.css),消除切换主题时的白屏闪烁。
    • 解决了代码块主题与整体主题不匹配的问题。
    • 更新了 Swift 和 TypeScript 通信层,支持传递明确的主题参数以适配 Mermaid 图表。

Fixed

  • QuickLook: 修复了窗口调整大小的 Bug。增加了忽略初始系统强制约束的逻辑,解决了每次启动预览窗口都会自动变小的问题。
  • 渲染器 (Renderer): 解决了 QuickLook "白屏" 问题。
    • 从 Webpack/Vite 分块构建切换为 Vite SingleFile 构建。
    • 将所有 JS/CSS/字体资源内联到单个 index.html 中,彻底规避了沙盒环境下的 CORS 和文件访问限制。
  • 预览稳定性: 增强了渲染器与原生代码的握手机制。
    • 将超时时间延长至 10 秒。
    • 超时后在 WebView 中显示可视化的错误提示。
    • 改进了 WebView 导航事件的竞态条件处理。
  • 安装: 更新了 install.sh,默认构建 Release 配置,并增强了在 DerivedData 中定位构建产物的稳健性。
  • 稳定性: 增加了 WebContent 进程意外终止时的自动重载恢复机制。
  • 安全: 补充了缺失的 Entitlements (Network Client, JIT, Printing, Downloads),提升 WebView 功能支持和稳定性。