Canvas Branch Manager
approvedby Ryan
Explicit hierarchy, branch movement, focus, and collapse tools for Obsidian Canvas. - This plugin has not been manually reviewed by Obsidian staff.
Canvas Branch Manager
English
Canvas Branch Manager adds explicit hierarchy, branch movement, focused editing, and descendant collapse tools to Obsidian Canvas. It works locally with standard .canvas files and does not use network services.
Features
- Move a node together with all of its descendants while preserving their relative positions.
- Focus on a selected node, its upstream ancestors, and its direct siblings.
- Optionally show the selected node's complete upstream and downstream knowledge chain.
- Mark Canvas edges as explicit
parent → childrelations. - Collapse and expand descendants by branch direction.
- Optionally sync hierarchy markers and collapsed branches through a Markdown state note.
- Follow Obsidian's interface language automatically, with English and Chinese included.
Requirements
- Obsidian 1.8.7 or later.
- The built-in Canvas core plugin must be enabled.
Installation
Once the plugin is available in the Community directory:
- Open Settings → Community plugins → Browse in Obsidian.
- Search for Canvas Branch Manager.
- Select Install, then Enable.
For manual installation, download main.js, manifest.json, and styles.css from the latest GitHub release and place them in:
<vault>/.obsidian/plugins/canvas-branch-manager/
Reload Obsidian and enable Canvas Branch Manager under Community plugins.
Quick start
- Open a Canvas and select an edge.
- Use the hierarchy button in the native Canvas selection controls to mark the edge's start node as the parent and its end node as the child.
- Use the directional buttons on parent nodes to collapse or expand their branches.
- Enable Move branches together in plugin settings, then hold
Altwhile dragging a parent node. - Select one node and use the ribbon, Canvas toolbar, or command palette to enter Focus mode.
Before a Canvas has explicit markers, ordinary edges are interpreted as fromNode → toNode for hierarchy preview and branch movement. Marking the first edge switches that Canvas to explicit hierarchy mode.
Data and privacy
Canvas Branch Manager does not send data over the network and does not include telemetry. Interaction preferences and hierarchy state are stored locally in the plugin's data.json.
If Sync Canvas state with Markdown is enabled, the plugin maintains Canvas Branch Manager State.md in the vault root. This note contains hierarchy markers and collapsed-branch state so those values can be synchronized by services that only sync Markdown files.
Development
npm install
npm run lint
npm run test:graph
npm run build
简体中文
Canvas Branch Manager 为 Obsidian Canvas 增加显式层级、分支联动移动、聚焦编辑和后代折叠功能。插件完全在本地处理标准 .canvas 文件,不使用网络服务。
功能
- 移动一个节点时,让它的全部后代保持相对位置一起移动。
- 聚焦显示所选节点、它的全部上游祖先以及直接兄弟节点。
- 可选显示所选节点完整的上游与下游知识链。
- 将 Canvas 边标记为显式的
父节点 → 子节点关系。 - 按分支方向折叠和展开后代节点。
- 可选通过 Markdown 状态笔记同步层级标记和折叠状态。
- 自动跟随 Obsidian 的界面语言,内置中文和英文。
使用要求
- Obsidian 1.8.7 或更高版本。
- 必须启用 Obsidian 内置的 Canvas 核心插件。
安装
插件进入社区目录后:
- 在 Obsidian 中打开 设置 → 第三方插件 → 浏览。
- 搜索 Canvas Branch Manager。
- 点击安装,然后点击启用。
手动安装时,请从最新的 GitHub Release 下载 main.js、manifest.json 和 styles.css,放入:
<仓库>/.obsidian/plugins/canvas-branch-manager/
重新加载 Obsidian,然后在第三方插件中启用 Canvas Branch Manager。
快速开始
- 打开一个 Canvas 并选中一条边。
- 使用 Canvas 原生选择控件中的层级按钮,将边的起点标记为父节点、终点标记为子节点。
- 使用父节点四周的方向按钮折叠或展开对应分支。
- 在插件设置中启用分支联动移动,按住
Alt拖动父节点。 - 选中一个节点,通过左侧功能区、Canvas 工具栏或命令面板进入聚焦模式。
在 Canvas 尚无显式标记时,普通边会按照 fromNode → toNode 用于层级预览和分支联动。标记第一条边后,该 Canvas 会切换到显式层级模式。
数据与隐私
Canvas Branch Manager 不会通过网络发送数据,也不包含遥测。交互偏好和层级状态保存在插件本地的 data.json 中。
启用使用 Markdown 同步 Canvas 状态后,插件会在仓库根目录维护 Canvas Branch Manager State.md。该笔记包含层级标记和分支折叠状态,方便通过仅同步 Markdown 文件的服务在设备之间共享这些状态。
开发
npm install
npm run lint
npm run test:graph
npm run build
License / 许可证
MIT. See LICENSE.
Third-party design references and license notes are documented in THIRD_PARTY_NOTICES.md.
本项目采用 MIT 许可证,详见 LICENSE。第三方设计参考和许可证说明见 THIRD_PARTY_NOTICES.md。
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.