• v0.6.2 073978d3ca

    thzxx released this 2026-08-15 21:18:14 +08:00 | 0 commits to master since this release

    MarkLite v0.6.2 发行说明

    版本概述

    本次版本聚焦三大方向:存储引擎现代化迁移(MetonaSqlark 0.7.4 + 自研 KVStore 后端)、14 项深度审计缺陷修复(含 4 项数据安全级修复)、多文件搜索新功能


    一、依赖升级与存储迁移

    依赖

    • @metona-team/metona-sqlark:0.4.4 → 0.7.4

    存储后端迁移:IndexedDB → KVStore

    • 磁盘引擎改用 sqlark 0.7.4 自研 KVStore 后端(内存索引 + 快照/日志结构,OPFS 落盘),运行于 AriaEngine 之上
    • 测试环境(jsdom 无 OPFS)自动回退 memory 后端
    • 损坏自愈流程同步适配 OPFS 目录删除

    旧数据清理(重要)

    • 本版本不向下兼容:启动时自动删除旧版本遗留的 IndexedDB 库(aria-MarkLiteV2 及 Dexie 时代的 MarkLite),不迁移旧数据
    • 如需保留 0.6.1 数据,请在升级前使用工具栏"导出数据备份"功能

    二、缺陷修复(14 项)

    数据安全(高危)

    1. 保存竞态:保存期间继续输入的新内容会被误清"未保存"标记,导致永不落盘、关闭无提示——现在保存前记录内容快照,仅当内容未变化时才清除标记(自动保存与手动保存均修复)
    2. 另存为路径绑定:另存为成功后标签仍绑定旧文件,之后 Ctrl+S/自动保存会写回旧路径——现在自动重绑新路径,并同步最近文件与状态快照
    3. 关闭强杀丢编辑:主进程 5 秒兜底强杀短于确认弹窗 10 秒超时——超时延长至 12 秒
    4. 备份导入丢数据:导入完成后固定 800ms 刷新页面,OPFS 写入未完成即被中断——现在先 flush 快照并干净关闭数据库再刷新;导入过程整体事务原子化,杜绝半导入状态

    体验与正确性(中危)

    1. 文件监听性能:每次击键都触发 IPC 并重启主进程 watcher——现在只依赖活动文件路径
    2. 外部修改检测盲区:后台标签被外部修改无提示——现在任意打开的标签被修改都显示提示横幅,并显示具体文件名
    3. 重载静默失败:标签有未保存修改时点击"重新加载"无任何反应——现在显式提示原因
    4. 打开失败静默:最近文件被删除/移动后打开无提示——现在所有打开失败路径均显式报错

    细节修复(低危)

    1. 文档大纲误识别代码块内的 # 行——现在跟踪代码围栏(``` / ~~~)状态正确跳过
    2. 切换标签恢复光标位置(此前仅恢复滚动位置)
    3. 首次启动主题跟随系统偏好(修复设置加载逻辑导致该分支永远不生效的问题)
    4. 文件 watcher 失效恢复时可能残留"自写"标记,导致外部修改通知被永久吞掉
    5. 保存 UTF-16 编码文件时强制改写为 UTF-8 造成乱码——现在检测原文件 BOM(UTF-16 LE/BE)按原编码写回

    三、新功能

    多文件搜索(Ctrl+Shift+F)

    • 在侧边栏已打开的文件夹内递归搜索所有 .md / .markdown / .txt 文件内容
    • 支持大小写敏感正则表达式两种模式
    • 结果按"文件 + 行号 + 匹配行预览"展示,点击打开文件并定位到匹配行
    • 自动跳过 node_modules / .git 等目录与隐藏文件,结果上限 500 条防卡顿
    • 工具栏新增搜索按钮,快捷键 Ctrl + Shift + F

    标签恢复磁盘比对

    • 应用重启恢复标签时,对未修改的标签校验磁盘 mtime:若文件在应用关闭期间被外部修改,自动加载磁盘最新内容并提示"已同步"

    四、测试与验证

    • 新增测试:文档大纲代码块跳过(6 例)、多文件搜索(7 例,真实文件系统)、另存为路径重绑(2 例)
    • 测试总量:102 → 117 例,全部通过
    • TypeScript 类型检查 / ESLint / 生产构建(electron-vite build)全部通过

    五、完整变更清单

    chore: 升级 @metona-team/metona-sqlark 0.4.4 → 0.7.4(KVStore 后端迁移 + 旧库自动清理)
    fix:   保存竞态(快照比对)、另存为路径重绑、外部修改检测、关闭超时、
           备份导入落盘、导入原子化、大纲代码块、光标恢复、系统主题、
           watcher 自写标记、打开失败提示、编码保留
    feat:  多文件搜索(dir:search IPC + SearchPanel + Ctrl+Shift+F)
    feat:  标签恢复时磁盘 mtime 比对
    test:  outlineUtils / searchInDir / updateTabFilePath 新增 15 例
    docs:  README / DESIGN 同步
    

    发布人:thzxx · 基于 master 分支 073978d

    Downloads
  • v0.6.1 bbaea2df3e

    thzxx released this 2026-08-09 22:07:15 +08:00 | 1 commits to master since this release

    版本概述

    MarkLite v0.6.1 —— 自 v0.5.0 以来的重大迭代:渲染管线全面迁移至 MetonaEditor 内置解析器(移除 unified/rehype 全家桶),Toast 全面接入 MetonaToast 高级能力,存储层深度集成 MetonaSqlark(AriaEngine 自研引擎),并修复了一系列引擎级崩溃问题。


    v0.6.0 主要更新(引擎重构迭代)

    1. 解析器迁移 — 移除自研渲染管线

    • 渲染全面改用 MetonaEditor 内置解析器(parseMarkdown),删除 unified / remark / rehype / rehype-highlight 等 9 个依赖,渲染主包体积 2.5MB → 1.5MB
    • 内置解析器原生支持:GFM / 任务列表 / 表格 / 删除线 / 高亮 / 上下标 / 脚注 / 数学公式 / 定义列表 / emoji / 引用链接 / Mermaid 图表
    • 内置零依赖语法高亮器(16 种语言,highlight: MeEditor.highlight
    • 图片相对路径修复改为渲染后处理,修复目录前缀碰撞与路径解析 bug
    • 内置 XSS 防护(escapeHTML + safeUrl URL 过滤)

    2. Toast 全面接入 MetonaToast

    • MeToast.confirm 替换全部自研确认框(关闭标签 / 关闭应用 / 未保存提醒),删除 ConfirmDialog 组件
    • 文件打开 MeToast.loading() 链式转换、保存 MeToast.promise() 自动 loading → success/error
    • 接入 dedupe 去重插件与 onError 全局错误回调
    • 删除 LoadingSpinner / useDocStats 等死代码

    3. MetonaSqlark 深度集成

    • 数据备份:工具栏一键导出 / 导入全部数据为 JSON(exportAll / importTable + 新增 IPC 文件对话框)
    • 发布订阅:recentFiles 表变更自动刷新欢迎页最近文件
    • 数据库损坏自愈:检测到损坏自动重建(标记 + 重载 + 删库),不再弹错误框死循环
    • 关闭应用前干净关闭数据库(db.close 确保 WAL 落盘)

    4. 编辑器能力全面接入

    • Zen 专注模式:工具栏一键切换(editor.toggleZen)
    • 大纲导航改用官方 API(scrollToLine + setCursorPosition),删除 DOM hack
    • 浮动格式工具栏(0.4.0 新特性)

    🛠 v0.6.1 修复迭代(稳定性攻坚)

    5. 存储引擎稳定性(重要)

    • AriaEngine SSTable 大 value 编码缺陷(sqlark 0.4.4 修复):块大小按 JS 字符串 length 估算(非 UTF-8 字节)导致中文大文件写入缓冲区溢出崩溃,valueLen u16 截断 >64KB 内容;0.4.4 引入 v2 格式(SSTC)彻底修复,实测 300KB 中文内容完整读写
    • 数据库初始化加固:关闭流程禁止重开(isClosing 标记)、initDb 串行化、错误弹框显示 details 详情
    • 升级 metona-editor 0.4.1(Zen 宽度官方 API zenMaxWidth)
    • 升级 metona-sqlark 0.4.2 / 0.4.3 / 0.4.4(SSTable 完整性校验、WAL 原子写入、close 前 checkpoint、后台任务竞态)

    6. UI 调整

    • 专注模式宽度:改用官方 API zenMaxWidth: '100%'(默认 960px 偏窄,可随时调整)
    • 移除自定义状态栏(MetonaEditor 自带底栏已显示字符数/词数/行数/阅读时间)

    📦 安装包

    • MarkLite Setup 0.6.1.exe — Windows x64 NSIS 安装包(支持自定义安装目录、桌面/开始菜单快捷方式)
    • 或通过 npm run build / npm run build:portable 自行构建

    ⚠️ 注意事项

    • 升级后数据库为 MarkLiteV2(AriaEngine),v0.4.5 及更早版本的 Dexie 数据不会迁移
    • 若遇数据库异常会自动重置重建(提示"数据库已重置"),属自愈保护机制
    Downloads
  • v0.5.0 20eb39efc5

    thzxx released this 2026-08-09 15:45:36 +08:00 | 19 commits to master since this release

    版本概述

    MarkLite v0.5.0 —— 核心依赖全面升级:编辑器升级至 MetonaEditor 0.4.0,通知升级至 MetonaToast 0.5.0,数据库从 Dexie.js 迁移至 MetonaSqlark 0.4.1(AriaEngine 自研存储引擎)。


    主要更新

    1. 编辑器升级 MetonaEditor 0.4.0

    • TypeScript 全模块重构:17 个源文件,严格模式,完整类型导出
    • 浮动格式工具栏(新特性):选中文本自动弹出格式化按钮,格式操作更高效
    • 内置零依赖语法高亮器:支持 js / ts / python / bash / css / html / json / yaml / markdown 等 16 种语言标识
    • 自研解析器升级:粗斜体、链接内格式、脚注、数学公式、表格对齐等语法增强
    • 完善的快捷键管理 / 事件系统 / 插件体系 API

    2. 通知升级 MetonaToast 0.5.0

    • 钩子系统:beforeShow / beforeClose / beforeUpdate 等 14 种钩子,支持拦截
    • 11 种动画:slide / fade / scale / bounce / flip / rotate / zoom / slideUp / slideDown / slideLeft / slideRight
    • loading 链式转换(id 稳定)、promise / confirm / prompt / progress / countdown / queue / stack / action 等高级 API
    • 主包零依赖,React 适配器子路径可选

    3. 数据库迁移 MetonaSqlark 0.4.1

    • 移除 Dexie.js,改用 MetonaSqlark 关系型数据库(支持 SQL 与链式 Query Builder)
    • AriaEngine 自研存储引擎:LSM-Tree 索引 + WAL 日志 + MVCC 快照隔离 + Buffer Pool,对标 SQLite
    • 数据库更换为 MarkLiteV2(旧 Dexie 库 MarkLite 已放弃)
    • 标签页快照 / 用户设置 / 最近文件全部迁移至新引擎,写入支持事务回滚
    • 表结构幂等创建,懒加载单例初始化

    4. 性能优化

    • 修复 Editor 组件因 getActiveTab() 返回新对象引用导致的无条件重渲染

    5. 文档更新

    • README.md:技术栈 / 功能特性 / 快捷键 / 语法支持全面更新
    • DESIGN.md:架构设计同步 MetonaSqlark(AriaEngine)
    • 关于弹框:新增依赖版本信息与浮动格式栏特性
    • 新增 MetonaSqlark 参考文档(docs/)

    ⚠️ 注意事项

    • 升级后首次启动将使用全新的 MarkLiteV2 数据库,旧的标签页 / 设置 / 最近文件记录不会自动迁移(v0.4.5 及更早版本的数据将保留在旧库中不受影响)

    📦 安装包

    • MarkLite Setup 0.5.0.exe — Windows x64 NSIS 安装包(支持自定义安装目录、桌面/开始菜单快捷方式)
    • 或通过 npm run build / npm run build:portable 自行构建安装包或便携版
    Downloads
  • v0.4.5 d6ae9e3c8e

    v0.4.5 Stable

    thzxx released this 2026-07-25 16:41:22 +08:00 | 20 commits to master since this release

    v0.4.5 — Mermaid 图表渲染支持

    新增 Mermaid 图表渲染

    ```mermaid 代码块现在可以实时渲染为 SVG 图表,支持流程图、时序图、甘特图等全部 Mermaid 图表类型。

    依赖 版本 用途
    mermaid 10.x 图表渲染引擎(npm 安装)

    技术实现

    保留 MarkLite 自研 unified Markdown 渲染管线,新增 rehypeMermaid 插件:

    1. 转换阶段(rehypeMermaid 插件,在 rehypeHighlight 之后运行)

      • 查找 <pre><code class="language-mermaid"> 节点
      • 替换为 <div class="me-mermaid"><div class="mermaid"> 容器
      • 与 MetonaEditor 内置解析器输出格式完全一致
    2. 渲染阶段(Editor.tsx)

      • 模块顶层初始化 mermaid.initialize({ startOnLoad: false })
      • 编辑器 afterRender 事件 → mermaid.run({ querySelector: '.me-mermaid .mermaid' })
      • 首次渲染 setTimeout 兜底确保初始内容也触发
    3. 管线完整性

      • unified 管线全部保留:remarkParse → remarkGfm → remarkRehype → rehypeRaw → rehypeFixImages → rehypeSanitize → rehypeHighlight → rehypeMermaid → rehypeStringify
      • 图片路径修复、XSS 防护、代码高亮均不受影响

    支持的图表类型

    • 流程图 (graph TD/LR)
    • 时序图 (sequenceDiagram)
    • 甘特图 (gantt)
    • 类图 (classDiagram)
    • 状态图 (stateDiagram)
    • 饼图 (pie)
    • Git 图 (gitGraph)
    • 用户旅程图 (journey)
    • ER 图 (erDiagram)

    代码变更

    文件 变更
    package.json 版本 0.4.4 → 0.4.5,新增 mermaid@10
    src/shared/constants.ts APP_VERSION → v0.4.5
    src/renderer/lib/markdown.ts 新增 rehypeMermaid 插件 + 加入 unified 管线
    src/renderer/components/Editor/Editor.tsx mermaid 初始化 + afterRender 绑定

    质量保证

    • TypeScript 严格模式:0 errors
    • 单元测试:98/98 passed
    • markdown 渲染测试:16/16 passed
    • pre-commit hooks:eslint + tsc 全部通过
    Downloads
  • v0.4.4 2e7baa1073

    v0.4.4 Stable

    thzxx released this 2026-07-25 16:24:13 +08:00 | 21 commits to master since this release

    v0.4.4 发行说明

    依赖升级

    依赖 旧版本 新版本
    @metona-team/metona-editor 0.1.14 0.2.4
    @metona-team/metona-toast 0.1.2 0.2.1

    MetonaEditor 0.2.4 新增特性

    编辑器配置增强

    • syncScroll: true — 编辑区和预览区同步滚动
    • wordWrap: true — 默认启用自动换行
    • historyLimit: 100 / historyDebounce: 400 — 优化历史栈性能
    • outline: false — 保留 MarkLite 自研大纲面板

    新增预设插件

    • shortcutHelp — 按 ? 弹出快捷键速查面板

    新增回调事件

    • onLinkClick(href, text, editor) — 预览区链接安全打开
    • onFocus() / onBlur() — 编辑器焦点状态追踪

    Markdown 解析器升级

    • 支持 ***粗斜体*** 语法
    • 支持引用链接 [text][ref] 和引用图片
    • 支持链接内行内格式
    • 支持 registerBlockHandler 自定义块级语法

    编辑器实例 API 新增

    • getStats() — 字符/单词/行数/中文字符/英文单词/阅读时间
    • getHTML() / refresh() — HTML 获取与强制重渲染
    • exec(action) — 程序化执行格式化命令
    • toggleFullscreen() / toggleZen() / toggleWordWrap() — 视图切换
    • undo() / redo() / canUndo() / canRedo() — 历史栈
    • enable() / disable() / isDisabled() — 启用禁用
    • use(plugin) / unuse() / getPlugins() — 插件管理
    • registerShortcut() / unregisterShortcut() / getShortcuts() — 快捷键管理
    • toast(msg, opts) — 编辑器内置 Toast

    MetonaToast 0.2.1 新增特性

    内置插件

    • keyboard — ESC 一键关闭所有 Toast
    • accessibility — 屏幕阅读器支持

    新增配置项

    • width: 360 — 统一 Toast 宽度

    新增高级 API(可供未来集成)

    • loading() → LoadingControl — 加载状态链式转换
    • promise() — Promise 生命周期追踪
    • confirm() / prompt() — 内置确认/输入对话框
    • progress() → ProgressControl — 进度条通知
    • countdown() — 倒计时通知
    • queue() / stack() — 消息队列/堆叠
    • action(msg, actions) — 内嵌操作按钮
    • group(name) → GroupAPI — 按场景分组
    • dismiss(id) / clear(position) — 精确控制
    • 11 种入场动画
    • 自定义主题注册 themes.registerTheme()

    代码适配

    • 移除 ExtendedEditorOptions 类型 hack
    • 本地声明 EditMode/ThemeName 类型
    • 适配 onModeChange 签名:(mode: EditMode) → (mode: string)
    • 适配 onLinkClick 签名:({ href }) → (href, text, editor)

    质量保证

    • TypeScript 严格模式类型检查:0 errors
    • 单元测试:98/98 passed(6 个测试文件)
    Downloads
  • v0.4.3 8bbbb7ff70

    v0.4.3 Stable

    thzxx released this 2026-07-24 20:59:43 +08:00 | 22 commits to master since this release

    🆕 依赖更新

    • MetonaEditor 版本锁定:^0.1.100.1.14(精确锁定)
    • 文档中所有 MetonaEditor 版本引用同步更新至 v0.1.14

    🐛 Bug 修复

    预览区内容无法鼠标拖拽选择/复制

    问题现象:

    • 在 Markdown 预览面板中,用户无法通过鼠标拖拽选中文本内容
    • 导致无法复制预览区中的文字、代码等内容

    根因分析:

    • src/renderer/styles/global.css 中对 html, body 设置了 user-select: none
    • 该 CSS 属性具有继承性,导致整个应用(包括预览区)的文字都无法被选中
    • 该规则的原始目的是让工具栏、标签栏、侧边栏等 UI 控件不可被选中,营造更接近原生应用的体验

    修复方案:

    • src/renderer/styles/global.css 中新增 CSS 规则
    • 为 MetonaEditor 的预览面板(.me-preview)及其所有子元素显式设置 user-select: text
    • 同时为编辑器中的 textarea 恢复文本选择能力
    • UI 控件区域的 user-select: none 保持不变

    修改文件:

    • src/renderer/styles/global.css — 新增预览区选择修复 CSS 规则(15行)
    • package.json — 版本号更新 + MetonaEditor 版本锁定
    • src/shared/constants.ts — APP_VERSION 常量更新
    • README.mdDESIGN.mdDEVSETUP.md — 文档版本号同步

    质量保障

    • 全部 98 个单元测试通过(6 个测试文件)
    • TypeScript 类型检查无错误
    • ESLint 代码检查通过
    • Prettier 格式化检查通过
    Downloads
  • v0.4.2 20b6d03617

    thzxx released this 2026-07-24 15:06:57 +08:00 | 24 commits to master since this release

    v0.4.2 更新内容

    依赖变更

    • @metona-team/metona-editor: 0.1.3 -> 0.1.10
      • 实例级主题 API (editor.setTheme())
      • 新增配置项: lineNumbers / autoBrackets / autofocus / readOnly
      • 新增插件: exportTool (导出 MD/HTML)
      • 新增回调: onSave (原生 Ctrl+S 拦截)
    • @metona-team/metona-toast: 2.0.1 -> 0.1.2

    三主题系统

    • 亮色 / 暗色 / 暖色 三主题循环切换,工具栏按钮显示当前主题名称
    • 应用颜色通过 MeEditor.themes.exportCSSVars() 自动同步编辑器主题
    • 侧边栏选中项使用 accent 12% 透明度背景,文字清晰可读
    • 二级/三级背景色由文字色按透明度派生,适配任意编辑器主题
    • Toast 通知主题同步切换
    • 样式驱动: 移除 variables.css 中硬编码 .dark 色值,完全由 JS 动态同步

    编辑器功能启用

    • 行号装订线 (lineNumbers: true)
    • 括号自动闭合 (autoBrackets: true)
    • 自动聚焦 (autofocus: true)
    • 预览模式只读 (readOnly 动态同步)
    • 导出 MD/HTML 文件 (exportTool 插件)

    快捷键优化

    • Ctrl+S 双通道: 编辑器 onSave 回调 + 全局 keydown 兜底
    • 300ms 防重入锁,避免双击或双事件触发重复保存
    • 工具栏/侧边栏聚焦时 Ctrl+S 仍可正常工作

    架构重构

    • 主题模型: darkMode boolean -> themeMode 枚举 (light | dark | warm)
    • Store: toggleDarkMode() -> cycleTheme() 三态循环
    • 插件注册: PluginObject 引用 -> 字符串数组 (与 demo 一致)
    • 主题同步: 30行手动CSS覆写 -> editor.setTheme() 实例级API (v0.1.5+)

    测试

    • 更新 editorStore 测试用例,覆盖 themeMode / cycleTheme
    • 全部 98 个测试通过

    修复

    • 侧边栏选中项文字完全看不清的问题 (accent纯色背景+accent纯色文字 -> 12%透明度背景+纯色文字)
    Downloads
  • v0.4.1 7bd625b9ce

    thzxx released this 2026-07-24 14:00:16 +08:00 | 25 commits to master since this release

    v0.4.1 更新内容

    核心依赖升级

    • @metona-team/metona-editor: 0.1.3 -> 0.1.10
      • 实例级主题 API (editor.setTheme())
      • 新增配置项: lineNumbers / autoBrackets / autofocus / readOnly
      • 新增插件: exportTool (导出 MD/HTML)
      • 新增回调: onSave (原生 Ctrl+S 拦截)

    三主题系统

    • 亮色 / 暗色 / 暖色 三主题循环切换
    • 应用颜色通过 exportCSSVars() 自动同步编辑器主题
    • Toast 通知主题同步切换

    编辑器功能启用

    • 行号装订线 (lineNumbers)
    • 括号自动闭合 (autoBrackets)
    • 自动聚焦 (autofocus)
    • 预览模式只读 (readOnly 动态同步)
    • 导出 MD/HTML (exportTool 插件)

    快捷键优化

    • Ctrl+S 双通道: 编辑器 onSave + 全局 keydown 兜底
    • 300ms 防重入锁,避免重复保存

    架构重构

    • 主题模型: darkMode boolean -> themeMode 枚举 (light|dark|warm)
    • Store: toggleDarkMode() -> cycleTheme() 三态循环
    • 插件注册: PluginObject 引用 -> 字符串数组
    • 主题同步: 30行手动CSS覆写 -> editor.setTheme() 实例API
    • 样式驱动: 移除硬编码 .dark 色值,JS 动态同步编辑器颜色

    测试

    • 全部 98 个测试通过
    Downloads
  • v0.4.0 10cfe0066b

    v0.4.0 Stable

    thzxx released this 2026-07-23 22:58:57 +08:00 | 26 commits to master since this release

    v0.4.0 - MetonaEditor 集成与架构重构

    本次更新将编辑器核心从 Milkdown/ProseMirror 全面迁移至 MetonaEditor,带来更简洁的架构和更丰富的内置功能。


    核心变更

    编辑器迁移:Milkdown -> MetonaEditor v0.1.3

    • 三模式视图:编辑 / 分屏 / 预览,由编辑器内置工具栏一键切换
    • 内置格式化工具栏:bold, italic, strikethrough, underline, code, h1-h3, quote, ul, ol, indent, outdent, link, image, table, hr, undo, redo, fullscreen
    • 内置搜索替换:Ctrl+F / Ctrl+H,支持正则表达式和大小写敏感
    • 内置历史栈:撤销/重做,防抖合并
    • 粘贴图片:Ctrl+V 粘贴剪贴板图片,自动转 base64 内嵌
    • 字数统计:编辑器底栏显示字符数/行数/阅读时间
    • 零依赖:替换掉 10 个 Milkdown/ProseMirror 包,净减少约 150 个安装依赖

    渲染管线保留

    • unified/rehype 管线通过 MetonaEditor 的 render 钩子继续工作
    • 相对路径图片 -> file:// 绝对路径转换
    • rehype-highlight 代码语法高亮(180+ 语言)
    • rehype-sanitize XSS 防护
    • LRU 处理器缓存(最多 20 个)

    Toast 组件迁移

    • metona-toast 本地包 -> @metona-team/metona-toast v2.0.1 npm 包

    架构精简

    删除的组件(16 个文件)

    • SourceEditor — MetonaEditor edit 模式替代
    • Preview — MetonaEditor preview 模式替代
    • SearchReplace — MetonaEditor 内置 searchReplace 插件替代
    • EditorToolbar — MetonaEditor 内置工具栏替代
    • useMilkdown — MetonaEditor API 替代
    • StatusBar + StatusBarItems — MetonaEditor 内置底栏替代
    • statusBarStore — 状态栏扩展架构不再需要
    • useStatusBarItem / useStatusBarItems — 同上
    • useSettings — 功能由 useSettingsInit 统一管理
    • EditMode/PreviewMode/SourceMode 图标 — 工具栏不再需要

    修改的组件

    • Editor.tsx — 完全重写,集成 MetonaEditor
    • App.tsx — 移除模式条件渲染和状态栏,简化布局
    • Toolbar.tsx — 移除模式切换按钮,新增自动保存开关
    • Sidebar.tsx — 大纲导航从 ProseMirror 文档树改为 DOM 滚动
    • editorStore.ts — ProseMirror EditorView getter -> MetonaEditor getter
    • useKeyboard.ts — 移除 Ctrl+1/2/3/B/I(由编辑器内置处理)

    主题系统增强

    • 应用暗色模式与编辑器主题双向同步
    • 切换时自动覆写 wrapper inline CSS 变量,确保编辑器视觉即时响应
    • viewMode 变更自动持久化到 IndexedDB

    依赖变更

    新增:

    • @metona-team/metona-editor ^0.1.3
    • @metona-team/metona-toast ^2.0.1

    移除:

    • @milkdown/core, @milkdown/ctx, @milkdown/plugin-clipboard, @milkdown/plugin-history, @milkdown/plugin-indent, @milkdown/plugin-listener, @milkdown/plugin-trailing, @milkdown/preset-commonmark, @milkdown/preset-gfm, @milkdown/prose, @milkdown/react, @milkdown/utils

    保留:

    • unified / remark / rehype / rehype-highlight(渲染管线)

    文档更新

    • README.md:版本号、功能特性、技术栈、快捷键、项目结构
    • DESIGN.md:编辑器架构章节完全重写,更新组件/Store/Hook 数量
    • CONTRIBUTING.md:更新项目结构和编辑器架构说明
    • DEVSETUP.md:添加 @metona-team registry 配置说明
    • 新增 docs/ 参考文档:MetonaEditor + MetonaToast API 文档

    质量保证

    • TypeScript 严格模式零错误
    • ESLint 零错误零警告
    • 96 个单元测试全部通过(Vitest)
    • electron-vite 生产构建成功

    变更统计

    • 33 个文件变更,+460 / -4335 行
    • 16 个文件删除,13 个文件修改,4 个文档新增
    Downloads
  • thzxx released this 2026-07-22 15:56:37 +08:00 | 28 commits to master since this release

    MarkLite v0.3.13 发布

    本次版本聚焦于通知系统升级与全面质量修复,共变更 24 个文件(+170 / -387 行)。

    新功能

    • 集成 MetonaToast v2.0.0 — 用 MetonaToast 替换自研 Toast 组件,通知体验全面升级:
      • 通知位置改为右上角(top-right)
      • 显示倒计时进度条,用户可直观感知自动关闭
      • 支持拖拽关闭、悬停暂停计时、点击关闭
      • 主题与编辑器暗色模式自动联动(light/dark)
      • 11 种动画效果、80+ 图标类型
    • 新增 .npmrc.example 模板 — 新开发者克隆后可参考配置 npm 镜像源

    🐛 Bug 修复

    • 侧边栏拖拽宽度未持久化 — 拖拽调整侧边栏宽度后刷新会丢失,现已修复:拖拽结束时同步写入 IndexedDB
    • Ctrl+Tab 标签切换不符合 MRU 语义 — 正向 Ctrl+Tab 现在优先切换到最近使用的标签,与文档描述一致
    • WYSIWYG 模式选区未恢复 — 切换标签后光标选区丢失,现已通过 EditorView 恢复 TextSelection(含越界夹紧保护)

    🧹 代码清理

    • 移除 useActiveHeading 中未使用的 IntersectionObserver 死代码
    • 删除旧版 #toast-notification.toast-container 等遗留 CSS 样式(约 130 行)
    • 合并 #tab-list 重复定义的滚动条样式
    • 移除 SearchReplace 中重复的空检查语句

    📝 文档同步

    • DESIGN.md 同步实际架构:stores 3→5、editorStore 字段补全、sidebarStore 类型修正、依赖清单 CodeMirror→Milkdown
    • docs/optimization-*.json 更新 techStack 与 PF-04 实现描述(CodeMirror→Milkdown)
    • 关于对话框与文档中的远程仓库地址更新为 Gitea(git.metona.cn/MetonaTeam/MarkLite)

    🔧 技术细节

    • showToast(msg, type, duration?) 签名与原实现完全兼容,调用方零改动
    • MeToast 自管理 DOM 与样式,无需在 React 树中挂载容器组件
    • 全部通过 TypeScript 类型检查(0 错误)、ESLint(0 错误 0 警告)、96 个单元测试

    完整变更: https://git.metona.cn/MetonaTeam/MarkLite/compare/v0.3.12...v0.3.13

    Downloads