Skip to content

Releases: yisinever/nestBoard

Nestboard v2.1.5 —— 内容找得到、拿得出、改得顺

Choose a tag to compare

@yisinever yisinever released this 28 Sep 13:26

Nestboard 2.1.5 更新公告
发版日:2026-09-28 | 需要 Obsidian 1.8.7+,仅桌面端 | .nboard 数据格式向后兼容,升级无缝

这一版的主线:白板里的内容"找得到、拿得出、改得顺"
2.1.5 没有再做"大功能",而是把白板从"能画"推到"能长期用":白板里的文字终于能被 Obsidian 全局搜索找到、 卡内文字可以正常复制、查找替换像原生一样顺手、侧栏能看见并编排演示路径。 同批还带来一套复古游戏机像素图标(第二种图标类型)与**.xmind 导入**。

新增

  1. 白板 / 脑图里的文字,全局搜索搜得到
    从前索引笔记只写"这块板有哪些卡"和卡里的 [[链接]],卡片正文一个字都没进 .md —— Obsidian 只索引 .md,所以全局搜索永远搜不到白板内容。

现在索引笔记里会收录每张卡的正文与脑图节点文字(带截断上限,不会写出巨长的笔记);
每张卡后面跟一条"飞到那张卡"的链接,搜到之后一点就跳到那块板上;
插件自带的跨板搜索照旧(在插件里搜,命中处能直接定位)。
2. 卡内文字终于能复制
右键菜单做了三个各自明确的复制项:
复制卡片 —— 复制整张卡(能粘回白板 / 别的板 / 别的库);
复制文字 —— 复制这张卡的正文文字;卡内选了哪段就复制哪段;
复制标题 —— 复制标题那一行(文件卡 / 白板卡拿到的是文件名)。
⌘C / ⌘X 在输入框里可用:以前在便签正文框、标题框里按 ⌘C 什么都拷不出来 (Obsidian 的内置热键先一步吃掉了这一下),现在这两个框里复制 / 剪切都正常。
关键是口径统一:只要此刻有选中的文字,⌘C 就复制文字、绝不复制对象;⌘X 也只复制、不删卡。
3. 查找与替换(画布上的浮条)
按 Obsidian 原生 md 的手感做在画布上:⌘⌥F 打开,输入即高亮、计数(含屏外命中), ↑/↓ 或 ⏎ 在命中之间跳(会自动飞进视野),⇄ 展开替换行 —— 替换 / 全部替换都是一步撤销。 范围是整块板(卡面文字 + 白板里的脑图节点),.nestmind 视图里同一张浮条。 入口也注入了右上角「…」菜单。

  1. 侧栏「演示路径」面板
    整条路径看得见:每一步的序号与对象名都列出来;
    挪得动:拖动手柄排序、上移 / 下移、移出、(按阅读顺序)填入、清空;
    点得过去:演示中点一行就跳到那一步;不在演示中则定位到那个对象;
    还没编排过时,面板列的是"按阅读顺序会怎么讲"——你在上面做的第一次编辑会把它实体化成显式路径(一步撤销回到"未编排")。
  2. 复古游戏机 · 像素图标(第二种图标类型)
    白色卡 / 便签的标记、脑图节点的标记,都可以选这一套:96 个图标 / 10 组(表情、手势、状态、媒体…);
    图标选择器重写:两个标签页(第一页传统 emoji、第二页复古游戏机), 一行 8 个正方形底框;切换标签页时整个窗口的尺寸不变,任何一页都只有一根滚动条, 并且鼠标在面板上滚轮只滚面板(不会把画布缩放 / 平移走);
    老文件零迁移:像素图标仍存在原来的 icon 字段里(nb: 前缀),旧 emoji 照旧;
    白板卡面、便签标题行、脑图节点、PNG / SVG 导出都认它(导出时像素图标按它自带的 emoji 兜底)。
  3. 导入 .xmind
    从电脑的文件目录里选文件(不再限制"库里已有的文件");导入即整棵替换当前脑图,一步撤销;
    两种世代的 .xmind 都认:新版(content.json)与 XMind 8 老格式(content.xml);
    失败会说清是哪一种(不是 .xmind / 没有主题树 / 现在改不了),不再"点了没反应"。
    改进
    脑图节点:可让所有层级都画框
    设置里新增「所有层级都画框」(默认关)。默认档与 2.1.4 逐像素一致: 四级及更深的节点只有文字、没有底色与边框;打开这个开关,每一层都带框。 画布、PNG 导出、SVG 导出三处同源,不会出现"画布上有框、导出的图里没有"。

卡片标题字号(新增设置项)
设置 → 卡片外观 → 「卡片标题字号」:所有带标题的卡片,标题行统一跟随(含标题卡的大字)。 默认值与 2.1.4 相同(14px),所以不改就与之前一模一样。

便签编辑:小卡也能正常写字
卡片矮到"内容框比标题行还矮"时,编辑正文以前会被裁掉;现在编辑时卡片会临时撑高到能写五行左右, 退出编辑恢复原尺寸(只影响画面,不改文件)。

树连线(折叠父子)的箭头画在交汇处
以前箭头落在卡片正中心、被卡片整个盖住;现在画在「连线与卡片边框的交汇处」,看得见。 同时修掉端点把手的老毛病:它从前被多减了一次宿主原点,屏幕上会离端点很远(这一条排查了好几轮)。

拖线贴边自动滚屏
把线拖到画布边缘时自动滚屏,方向修正(以前是反的),并让线跟着鼠标走。

其它看得见的修复
新建白板后新建卡片"有时不显示"(要点开别的文件再回来才看见)—— 主修 + 一道保险;
替换之后画面不刷新、替换框里退格删不掉字;
图标选完只显示代码(nb:0101,是渲染点漏了统一解析口)、选择器切标签页没反应、 切到像素页出现两根滚动条;
脑图下钻后的面包屑超出画布顶到外面;
演示里讲一棵脑图时的取景统一成"看全整棵树"(世界坐标,从哪儿翻过去都停在同一个位置);
折叠子级的 +N 角标、连线端点重拖、卡内节点的键盘操作等一批细节。
安装 / 升级
下载 Release 里的三个附件:main.js、manifest.json、styles.css;
放进 <你的Vault>/.obsidian/plugins/nestboard/(覆盖旧版即可);
Obsidian → 设置 → 第三方插件 → 禁用再启用(或重载)Nestboard。
★ 覆盖文件不会热更新已加载的插件 —— 一定要"禁用再启用"或重启 Obsidian。 自检:设置 → Nestboard,那一行应显示 2026-09-28 b133(版本号 2.1.5)。

2.1.4

Choose a tag to compare

@yisinever yisinever released this 23 Sep 06:05

Nestboard v2.1.4 —— 脑图升格为白板一等公民。

这一版的主线:脑图从前只活在"脑图卡"里(卡片内容的一部分),现在它是与卡片 / 分栏平级的白板对象。
(内部开发记录把这一轮叫 2.2.0,对外发版号定为 2.1.4。)

脑图

  • 新建 / 选中 / 搬运:工具栏或画布右键直接建一棵(中心主题 + 3 个分支);点节点选中、拖根节点挪整棵、双击节点就地改名。
  • 连线连到具体节点:节点四边中点浮出锚点,能连到别的卡片 / 别的节点 / 空白(自由端);线跟着节点走(改名 / 折叠 / 展开都跟)。
  • 老板子里的脑图卡打开自动转成这棵树,内容一个字节不丢;你不编辑那块板,文件就不会被改写。
  • 节点级框选与复制粘贴:框住几个节点 → ⌘C / ⌘X → 空白处 ⌘V 落成一棵新树(节点之间的线一起过去)。
  • 键盘(与 .nestmind 视图同一张键位表):Tab 加子节点、回车加同级、Shift+Tab 提升一层、F2 改名、方向键换选中、Delete 删掉。
  • 进演示 / 进模板 / 导出:一棵脑图可以作为演示的一步(取景 = 看全整棵树);模板能带脑图;导出 .nestmind 按根节点文字命名。
  • 搜索、过滤、缩略图、PNG / PDF / SVG 导出都认节点了。

其它新增

  • 卡片外观档:原版 / 拟物(设置里切换;「原版」与 2.1.3 逐像素一致)。
  • 标签进 Obsidian 体系:索引笔记带上 tags:、每个标签一页枢纽笔记;侧栏可按卡内标签筛选。
  • 连线可折叠(树化):卡右上角的把手拖到另一张卡上就是父子关系,子级可收成 +N。
  • 便签与文档节点对齐:编辑态只留正文一格,标题走卡面就地输入。
  • 连线端点可重拖:改绑到别的卡片 / 分栏 / 节点,拖到空白变自由端。

修复(挑看得见的)

  • 画布上的**「同层等宽」其实一直没生效**(超过第二级就参差不齐)—— 现在同级按最宽的对齐,连线与外接框跟着一起对齐。
  • 删掉一棵脑图之后 ⌘Z 能把整棵树找回来(撤销快照从前漏了 minds 这一格)。
  • 演示里讲一棵脑图:取景统一成"看全整棵树",并且用世界坐标 —— 从哪儿翻过去都停在同一个位置,不再乱飘。
  • 导出 / 缩略图里的脑图:字号按层级、备注与图片附件都画出来、长标题在节点内换行。
  • 分栏的 8 个缩放手柄从来没有样式(陈年漏洞,拟物档垫底色后才现形);脑图节点一度变成竖排文字。
  • .nestmind 改名后,白板上引用它的那棵树现在会跟着改路径(此前会报"找不到文件")。
  • 选中一棵树 / 几个节点按 Delete 现在真的会删;树身与根节点的右键菜单能弹出来了。
  • 节点粘贴只能落在节点上(从前在白板空白处按 ⌘V 会凭空长出一棵棵树)。

安装 / 升级

  1. 下载下面三个附件:main.js、manifest.json、styles.css;
  2. 放进 <你的Vault>/.obsidian/plugins/nestboard/(覆盖旧版即可);
  3. Obsidian → 设置 → 第三方插件 → 启用(或重载)Nestboard。

需要 Obsidian 1.8.7+,仅桌面端。.nboard 数据格式向后兼容,升级无缝。
完整清单见 CHANGELOG.md 的 [2.1.4] 一节。

2.1.3

Choose a tag to compare

@yisinever yisinever released this 18 Sep 14:44

Thanks for the review. All three source-code errors are fixed in 2.1.3.

Fixed

obsidianmd/no-unsupported-api (10 × app.workspace.revealLeaf(...))
revealLeaf returns a promise since Obsidian 1.7.2. Rather than papering over it, minAppVersion
is now 1.8.7 — 1.7.2 for revealLeaf, and 1.8.7 for the getLanguage() call added below.

obsidianmd/no-static-styles-assignment (31 sites)
All 31 literal assignments (el.style.display = 'none', …) now use Obsidian's el.setCssStyles({...})
(MindView, ConnectController, EdgeCurveController, BackgroundLayer, CardLayer).
setCssStyles has no @since gate, so it is available at the declared minimum version.

Unsafe assignment to innerHTML (src/mind/view/render.ts)
The outline/tree view-toggle icons were injected via seg.innerHTML = <constant SVG>. They are now
parsed with DOMParser and inserted with document.importNode; no innerHTML assignment remains.
(The currentColor-based highlighting is unchanged.)

prefer-get-language — fixed as well: the host language is no longer read from
localStorage.getItem('language'). main.ts calls Obsidian's getLanguage() and injects the value
into util/i18n (setHostLanguage), keeping that module free of obsidian imports (it is
unit-tested under Node). The plugin no longer touches localStorage at all.

Verified locally against eslint-plugin-obsidianmd's recommended config: those rule sets now
report zero errors.

Warnings we are deliberately not changing

  • prefer-create-el (~250 sites): the card renderers build DOM imperatively with
    document.createElement throughout. Converting the entire rendering layer is a large refactor
    with no user-visible benefit; we would rather land it incrementally than inside a reviewed release.
  • @typescript-eslint/no-unnecessary-type-assertion / unbound-method / no-unsafe-*: style-level,
    no behavioural impact; a cleanup pass is queued.
  • !important (9), :has (11), css-scrollbar / clip-path / masks / text-decoration:
    deliberate and commented in styles.css. The !important ones are (a) tool-state cursors — while
    pen / highlighter / eraser / eyedropper is active the canvas must show exactly one cursor, over
    cursor: grab on cards and nwse-resize on resize handles; (b) the prefers-reduced-motion
    override; (c) the print stylesheet. :has styles card state and is supported by the Chromium build
    Obsidian ships.
  • keyCode, execCommand, document.write, display, setDynamicTooltip, setWarning,
    getSettingDefinitions:
    acknowledged; migrating the settings tab to the declarative settings API
    is a separate piece of work.

Behaviour notes

  • Vault enumeration is what the file / note pickers need — a canvas that hosts vault files has to
    list them. Nothing is read beyond what the user selects.
  • Clipboard is used only on an explicit user action: copy board link, copy board as Markdown,
    paste an image, paste a map share link. No background clipboard access.
  • Artifact attestations: releases are currently built locally and uploaded by hand. Moving to a
    CI-built, attested release (actions/attest-build-provenance) is on the roadmap.

For reference: the plugin has no background network activity. The only two networking features are
"fetch link preview" (on by default, can be disabled) and "map card static image" (off by default),
both triggered only by a click.

2.1.2

Choose a tag to compare

@yisinever yisinever released this 18 Sep 14:26

CSS lint cleanup per community review. No visual or behavioral changes.

2.1.1

Choose a tag to compare

@yisinever yisinever released this 18 Sep 14:10

Nestboard v2.1.1 —— 仅桌面端。

变更

  • manifest.json 声明改为 isDesktopOnly: true:仅支持桌面端,手机 / 平板无法安装。
    移动端尚未实测,先如实收窄声明,避免给用户一个装得上却可能不好用的期望。
  • 不含任何功能与数据格式变更,.nboard 与 2.1.0 完全兼容,升级无缝。

安装

  1. 下载下方三个附件:main.js、manifest.json、styles.css
  2. 放进 <你的Vault>/.obsidian/plugins/nestboard/
  3. Obsidian → 设置 → 第三方插件 → 关闭「安全模式」→ 启用 Nestboard

release: v2.1.0

Choose a tag to compare

@yisinever yisinever released this 18 Sep 13:57

Nestboard v2.1.0 —— 首个公开版本。

把无限画布搬进你的 Vault:一块白板就是一个纯文本 .nboard 文件,纯本地、可 Git、可与笔记双链互通。

安装

  1. 下载下方三个附件:main.js、manifest.json、styles.css
  2. 放进 <你的Vault>/.obsidian/plugins/nestboard/
  3. Obsidian → 设置 → 第三方插件 → 关闭「安全模式」→ 启用 Nestboard

本版要点

  • 卡片:便签 / 同步便签 / 引用 / 图片 / 地图 / 文件 / 白板卡 / 链接 / 待办 / 色板 / 手绘 / 评论 / 标题 / 图集 / 视频 / 音频
  • 无限画布、分栏、嵌套白板(白板卡进子板、再返回)
  • 演示模式、缩略图导航、模板库、版本快照与历史回滚
  • 导出 Markdown / PNG / PDF / SVG / ZIP / Canvas
  • 网络:无后台请求;仅「抓取链接预览」与「地图卡静态图」在你点击时联网,后者默认不出图

完整变更见仓库 CHANGELOG.md 的 2.1.0 一节。