___desc___.md 现在与普通文档一样写入首版 commit 和 headCommitId;升级后启动时会为历史上缺少 head 的目录描述从磁盘补迁移,修复「无法发布:缺少版本基准」publishError,自动扫描会跳过重试;可在设置页「未发布草稿」查看失败原因并手动重试或另存@fgbg/lobe-editor@fork.13,Shiki 语法高亮仅保留约 40 种常用语言(见下方列表),dist/web 资源文件减少;冷门语言代码块以纯文本显示,内容不丢失compression),JS/CSS 等响应带 Content-Encoding: gzip,首屏传输量显著下降/assets/*(带 hash 的文件)设置 Cache-Control: public, max-age=31536000, immutable,二次打开更快npm install -g 后访问 / 显示 Cannot GET /——前端静态目录改为相对安装包路径解析,不再依赖启动时的当前工作目录MDOCS_HOST 从 127.0.0.1 改为 0.0.0.0,服务器部署后外网可直接访问(本地仅本机可设 MDOCS_HOST=127.0.0.1)bin/mdocs.js 无执行权限导致 npm install -g 后 mdocs: Permission denied 的问题activeDoc 对象GET .../merge-context 提供合并祖先(LCA)正文,用于三路对比documentId 为主键,保存正文与开编基准 commit(baseCommitId),并在首次编辑落盘时携带文档快照信息,后续自动保存只更新内容相关字段public_read 文档 + invite(edit) 的编辑判定(被邀请编辑者现在可正常发布).mdocs-comment-content 增加 white-space: pre-wrap,发出的评论保留输入时的换行和空格,不再被折叠成一坨resize: vertical(只能从右下角往下拖),改用 React state + 自定义顶部 handle,textarea 高度由 state 接管fgbg-docs/comments-panel-resize.mdfgbg-docs/comments-layout-optimization.mdDocumentEditor 挂载时主动检查 IndexedDB 草稿,若内容与服务器版本不同则自动恢复草稿内容和标题useAutoSave Hook 中 useCallback 依赖循环导致监听器反复注册的性能问题optimizeDeps 配置,优化首次冷启动速度@fgbg/lobe-editor 至 1.0.0-fork.12
listItem markdown reader 通过 children.map() 返回数组,解析器的 .flat() 将数组展平导致单个 list item 被拆成多个独立节点1. **开关关闭时**:不查询果切任务 时,有序列表被拆成两个 listItem(value=1 和 value=2)fgbg-docs/references/listitem-parsing-bugfix.md@fgbg/lobe-editor 至 1.0.0-fork.9
.editor_table_scrollable_wrapper 增加 min-width: 0,解决 flex 布局下宽表格撑开父容器的经典问题.image / .blockImage 样式中增加 img { max-width: 100% !important; },防止大图片横向撑开编辑器minWidth: 0,确保左侧目录树展开时,大纲不会被宽表格挤出视野@fgbg/lobe-editor 至 1.0.0-fork.10(仍属 v0.7.4 产品线,仅上游编辑器迭代;mdocs 应用包版本号未改):
---markmap--- 正确注册 IMarkdownShortCutService;嵌套 textarea 粘贴不再走主编辑器 Markdown 粘贴链路;预览区按钮可右下角;新增一键展开/折叠全部节点,节点数超过 30 个时默认全部折叠;修复左侧 markdown 编辑器无法全选问题(Cmd/Ctrl+A 事件被 Lexical 全局拦截,需 stopPropagation)getLatest 报错(改为 read + $getNodeByKey);EDIT_LINK_COMMAND 移至 LinkNode.ts```markmap 代码块中输入 Markdown 即可渲染为可交互思维导图
@fgbg/lobe-editor 至 1.0.0-fork.7.mdocs-editor-content-area img { max-width: 100% !important; } 样式规则,覆盖 Antd Image 组件的内联样式,防止大图片横向撑开编辑器容器/visitors/login 到豁免路径白名单,解决登录时提示 missing visitor token 的错误visitor_sessions 会话表,支持多个设备同时登录同一账号,互不干扰1234,登录后可自行修改background: '#fff' 但未重置文字颜色,暗色主题下所有按钮(撤销/重做/删除/适应/100%/关闭)白底白字。加 color: '#000' 修复registerLocale() 改为深合并,避免插件注册 {codemirror:{...}} 时覆盖已有 meta2d.editor 等嵌套 key---meta2d--- 或粘贴插入后,自动创建空白段落并定位光标,不再卡在图片后无法继续输入useEditorState 在 selection 为 null(如 ColorPicker popup 导致编辑器失焦)时错误清空了 textColor/bgColor,现改为保留上一次检测到的颜色值,避免无选区时误判格式状态ReactEditor 和 useEditor 增加 destroy() cleanup,配合 pendingDestroyRef + queueMicrotask 兼容 StrictMode remountisShowChild=false 的 pens,高大预览图自动居中并支持滚动useOutlineActionItem,工具栏可一键展开/折叠大纲面板@lobehub/editor 的 ReactEditor 组件创建编辑器实例后从不调用 destroy(),且 DocumentEditor 使用 key 强制重新挂载导致每次切换都泄漏一个完整的编辑器实例(含 CodeMirror、Meta2d Canvas、图片等 DecoratorNode 资源)。上游 ReactEditor 和 useEditor() hook 已增加 destroy() cleanup,mdocs 侧移除多余的 key 并增加防御性清理editor.destroy() 后重新挂载导致 DataSource for type "json" is not registered 报错。采用 pendingDestroyRef + queueMicrotask 延迟取消模式:cleanup 中把 destroy 排队到 microtask,若紧接着是 StrictMode remount 则同步取消,真正卸载时才执行销毁CommentsPanel、SettingsPage、DraftListPage、RecoveryDialog、DocumentEditor 的异步请求增加卸载保护。CommentsPanel 采用 expectedDocumentIdRef 竞态保护丢弃旧请求;其余组件采用 mountedRef 模式防止卸载后 setStateURL.createObjectURL 未 revokeObjectURL 的问题;修复 actions.ts 文件选择器在 Safari 中取消后 DOM 节点未移除的问题(增加 5s 兜底超时);修复 Playground 卸载后 window.editor 和 debounce 定时器未清理的问题useAutoSave Hook 中 useCallback 依赖循环问题,使用 useRef 保存频繁变化的值,避免 Lexical 监听器反复注册注销,减少不必要的性能开销documentId 不匹配的问题,新增 expectedDocIdRef 竞态检查机制CommentsPanel 评论列表渲染从 O(n*m) 优化为 O(n),使用 useMemo + Map 单次遍历完成根评论与回复分组,同时顺便计算未删除评论总数DocumentEditor.handleInit 中重复的 JSON.parse 逻辑,直接复用已预计算的 contentType@deprecated 的 deleteFolderApiV0 函数(已被递归删除目录的 deleteFolderApi 替代)getDocument() 现在返回 invitedEdit 标记,前端 canEdit 计算补充 invite 检查canEditDocument() 在 private 域各权限档位下补充 document_invites 检查,被 invite edit 的非创建者现在可正常编辑<table>),标题/域/作者/收藏时间四列对齐;新增名称搜索框和域筛选下拉;每行新增📖快速打开按钮;操作按钮支持即时 tooltip;标题超长时自动截断并显示原生 tooltip;取消收藏有淡出动画Intl.RelativeTimeFormat 相对时间(自动适配中英文)visitor_name 增加数据库 UNIQUE 约束,避免同名混淆pnpm mdocs visitor migrate --from Alice --to Bob,不再需要输入 UUIDcreate / update 默认使用 contentFormat: 'markdown'https://github.com/xuhuafeifei/mdocs-cli,提供 search、get、create、update、domains、mkdir 六个命令,Token 在设置页创建x-cli-token 认证头,继承访客所有权限window.confirmfile_type('dir' / 'md')和 parent_id,目录不再是路径切割的产物~/.mdocs/files/docs/{domain_id}/),不同域同名文件不再冲突desc.md 改为 ___desc___.md,避免与用户创建的文件冲突POST /api/folders,创建目录时自动创建 ___desc___.mdparent_id 一次查询建树,不再递归切割路径private → domain_read → domain_write → public_read → public_write),invite 从档位改为独立叠加层