枝见 Zhijian:一个用 Avalonia 做的 Markdown 脑图编辑器

发布时间:2026/5/20 6:13:29

枝见 Zhijian:一个用 Avalonia 做的 Markdown 脑图编辑器 今天继续打磨本地桌面脑图编辑器「枝见 Zhijian」。枝见是一个基于「C# Avalonia」的 Markdown-first 脑图编辑器。它不是一个复杂项目管理系统而是围绕写提纲、梳理功能设计、整理文章结构这些高频场景把大纲、Markdown 和脑图三种视角绑定到同一棵树上。项目仓库https://github.com/dotnet9/Zhijian。本轮截图和 GIF 已按当前界面重新制作并使用程序启动时默认加载的使用手册重点展示文件列表、小图、缩放、画布拖拽和层级调整。打开就是使用手册新版本启动后会默认加载随程序输出的使用手册.md。这份文档本身就是一棵多层级脑图首屏可以直接看到文件列表、大纲和脑图的联动效果用户需要从零开始时仍然可以通过“新建”创建只有中心主题的空白脑图。脑图二级节点也不再是单调灰色。新建或导入后二级节点会使用更醒目的自动强调色备注文字使用灰色前景和略大的字号与标题区分但不再额外加背景块视觉负担更低。文件菜单补齐成产品工作流标题栏“文件”菜单现在不只是导入导出入口而是完整文件工作流。macOS 下菜单快捷键会显示并响应⌘Windows/Linux 继续使用Ctrl避免 Mac 用户看到一组不符合系统习惯的快捷键。新建创建一个空白脑图。新建窗口打开新的编辑器进程。打开通过一个文件对话框选择 Markdown、OPML、XMind 等支持格式并把这个文件放进左侧文件列表。打开文件夹扫描文件夹下支持的脑图文件并在左侧文件列表里切换。打开最近文件记录最近操作过的文件。保存、另存为、打开文件位置、关闭补齐日常编辑需要的闭环。标题栏菜单继续按真实工作流整理菜单现在不再只放“文件”和“关于”。标题栏已经整理为文件、编辑、主题、语言、帮助、关于几组入口菜单项带图标常用操作显示快捷键。“编辑”菜单放撤销、重做、添加同级、添加子级、提升、降级、上移、下移、删除以及“复制为 Markdown”。复制后会写入系统剪贴板并使用桌面全局消息提示。主题不再使用标题栏 ToggleSwitch而是单独放到“主题”菜单里后续扩展更多主题会更自然。语言菜单使用Lang.Avalonia.Json当前提供中文简体、中文繁体、英语和日语资源。“帮助”菜单提供问题反馈、提交需求、提交 PR 和 GitHub 仓库入口“关于”菜单继续提供网站、更新日志、感谢和关于窗口。首次启动新手引导这次重新梳理过文件步骤直接高亮标题栏文件菜单不再笼统罩住左侧面板后续步骤再依次指向大纲编辑区、Markdown 切换、脑图画布、小图预览、缩放和状态栏导航。引导里提供“跳过”按钮刚打开软件的人可以随时结束引导。是否显示引导、默认语言、最近文件数量、历史步数以及recent-files.json、new-user-tour.seen这些运行状态文件名都集中放在src/Zhijian/App.config。运行时由ApplicationSettings读取 .NET 编译后的Zhijian.dll.config配置损坏时回退到默认值不影响启动。打开单个文件后左侧“文件”Tab 会列出这个文件方便后续切换打开文件夹后则列出目录里的 Markdown、OPML、XMind 文档。选择文件后会自动切回“大纲”展示当前脑图结构。关闭或切换文件前如果存在未保存修改会弹出保存提示。最近文件记录保存在程序目录避免每次重新定位常用文档。大纲和脑图都要顺手大纲视图和脑图视图共享同一个MindMapNode树所以在任意一侧编辑标题、备注、父子关系另一侧都会同步刷新。常用结构操作补到了两个视图的菜单里添加子节点、添加同级节点。提升为父节点、降级为子节点。上移、下移。备注、删除。键盘创建节点的路径也重新走了一遍Enter添加同级Tab或ShiftTab调整层级焦点会落回新节点输入框。大纲圆点菜单和拖拽共用同一个入口短按打开菜单移动超过阈值后才进入拖拽这样菜单和拖拽不会互相抢事件。备注输入也做了细节处理只有节点已有备注或者用户明确选择“备注”时才显示备注输入框空备注失焦后会自动收起。脑图节点里备注与标题已经按同一文本对齐方式绘制短文本节点也能重新点回去继续输入。脑图节点获得焦点后会显示悬浮工具条可以直接添加备注或删除节点。脑图侧也支持拖拽调整父子层级拖到节点中部成为子节点拖到上下边缘调整同级顺序。小图、缩放和画布拖拽脑图面积变大后用户最需要的是“我现在看的是整张图的哪一块”。小图现在基于真实节点坐标和当前视口绘制不是固定示意图点击小图可以定位到对应区域。缩放、中心主题定位、画布拖拽也都在实际窗口里重新验证过。中间分隔条的拖拽调整宽度也已经改为明确的GridSplitter行为并通过截图验证只是这类动图对阅读帮助不大文档里不再把它作为重点演示。关于、更新日志和感谢标题栏“关于”菜单包含打开网站https://codewf.com更新日志独立桌面窗口展示随程序复制的更新日志文件并使用CodeWF.Markdown.Lite.Themes渲染。关于展示软件名称、简介、版本号、更新时间、作者、联系方式、仓库地址和 NuGet 包地址。感谢列出本项目使用和受益的开源项目链接可直接跳转。枝见感谢这些优秀的开源平台和项目DotnetAvalonia UISemi.AvaloniaUrsa.AvaloniaAtomUI新应用怎么复用 CodeWF.MindView如果你想在自己的 Avalonia 应用里复用脑图能力优先引用CodeWF.MindView不要直接复制整个枝见应用。CodeWF.MindView当前包含MindMapNode共享节点模型包含标题、备注、颜色、坐标和子节点。MindMapEditor脑图主编辑控件内置基础节点创建、删除、升降级、同级移动、拖拽移动和自动布局。MindMapMiniMap基于真实节点坐标的小图控件。MindMapDocumentCodecMarkdown、OPML、XMind 编解码。IMindMapEditorController可选宿主接口需要接入撤销历史、未保存状态或业务限制时再实现。IMindMapFileService文件打开、保存、最近文件、文件夹加载和未保存提示等应用级文件服务契约。新应用可以引用控件库和主题库ounter(lineounter(lineounter(lineounter(lineItemGroup ProjectReference Include..\CodeWF.MindView\CodeWF.MindView.csproj / ProjectReference Include..\CodeWF.MindView.Themes\CodeWF.MindView.Themes.csproj //ItemGroup在App.axaml注册主题ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineApplication xmlnshttps://github.com/avaloniaui xmlns:mindThemesusing:CodeWF.MindView.Themes Application.Styles mindThemes:MindViewThemes / /Application.Styles/Application页面里直接放脑图控件。普通接入只需要绑定节点集合和当前选择ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineUserControl xmlnshttps://github.com/avaloniaui xmlns:mindhttps://codewf.com mind:MindMapEditor Roots{Binding Roots} SelectedNode{Binding SelectedNode, ModeTwoWay} //UserControl宿主 ViewModel 提供ObservableCollectionMindMapNode就能跑起来。控件库负责显示、编辑、拖拽预览、小图和基础节点操作应用如果要管理自己的文档状态、撤销历史、文件菜单和业务规则再实现IMindMapEditorController并绑定Controller。如果你的应用也需要类似枝见的大纲视图、文件菜单、标题栏和 Markdown 面板可以参考src/Zhijian。其中OutlineEditor和桌面窗口属于应用层代码CodeWF.MindView则保持 Avalonia-only方便其他项目复用。仓库与发布仓库地址https://github.com/dotnet9/Zhijian发布地址https://github.com/dotnet9/Zhijian/releases/tag/V12.0.3本轮验证这轮不只是改完代码看一眼编译。我重新生成了文档截图/GIF并用默认加载的使用手册覆盖这些操作启动默认加载使用手册并确认单独打开的文件会出现在左侧文件列表。打开文件菜单和关于菜单确认标题栏菜单可点击且右侧没有突兀箭头。打开编辑、主题、语言、帮助菜单确认菜单、图标、快捷键和分类都正常。切换深色/浅色主题确认文字和菜单在不同主题下可读。切换英语语言确认标题栏菜单、Tab 和状态栏文本能更新。使用复制为 Markdown确认剪贴板命令执行并出现桌面全局消息。重置首次启动标记确认新手引导能按真实窗口显示。点击引导“跳过”确认能立即关闭引导并写入已看过状态。打开文件夹确认“文件 / 大纲”Tab 能切换并加载文件。在大纲和脑图中打开节点菜单确认常用结构操作齐全。编辑短文本节点和备注确认可以重新获得焦点且标题/备注对齐。使用 macOS⌘ L、⌘ 鼠标滚轮确认中心主题定位和缩放符合 Mac 快捷键习惯。打开小图、缩放脑图、拖拽画布。通过 ViewModel 模拟新建、添加同级、添加子级、删除、提升、降级、备注和 Markdown 同步。拖动左右分隔条确认大纲和脑图宽度能真实调整。最终构建命令ounter(linedotnet build Zhijian.slnx构建结果为 0 警告、0 错误。对我来说枝见最重要的不是堆功能而是每个高频操作都顺手打开就是空白文档、菜单项能直接命中真实需求、节点创建后焦点在正确位置、备注不抢视觉、缩放和小图能帮用户重新找到方向。这些细节做好了用户才愿意一直用它整理结构。

相关新闻