Skip to content

About

轻量画布笔记 / 待办客户端:Upload Labs 风格节点 + ComfyUI 式贝塞尔连线(Electron + React)

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

画布笔记 | CanvasNotes

TypeScript Electron License Platform


面向本地使用的 画布笔记 / 待办 桌面客户端(Windows EXE)。

节点外观参考 Upload Labs 窗口式卡片,连线方式参考 ComfyUI(仅连接点之间、贝塞尔曲线)。无边框独立窗口,双击即可运行,无需浏览器;数据保存在本机。


画布笔记桌面客户端总览

功能概览

功能 说明
Windows 独立客户端 打包为 .exe,安装版 / 绿色便携版均可
便签 / 记事本 标题 + 正文,适合会议纪要与短备忘
Markdown 支持 Markdown 正文;自动将首个一级标题 # 识别为组件标题;编辑 / 预览切换
开始 / 截止日期 日程名称 + 起止日期
信息列表 可增减条目的清单节点
文本框缩放 便签与其他文本输入框支持四向拖动调整大小
分组遮罩 半透明分组叠在控件上方;标题栏可拖动,组内控件可穿透点击
分组跟随 拖动分组时仅「开始拖动时」已在组内的控件跟随移动
自定义连接点 左右侧端口:通用 / 相关事件 / 日期 / 相关信息
节点管理 单选节点时可管理连接点名称、类型与顺序
通用互通 红色通用可与任意类型连接;其他类型需同色匹配
多连线 同一连接点可接到多个其他连接点
方向约束 仅允许不同卡片的左 ↔ 右;禁止自连与同侧连线
框选 底部「框选」模式拖拽矩形批量选中控件
底部工具栏 Upload Labs 风格悬浮菜单;窄窗口自动收拢为「鼠标 / 新建 / 控件操作 / 工作区」
工作区 新建 / 切换 / 重命名 / 导入导出本地工作区
画布右键菜单 空白处右键可快速新建便签、日期、清单、Markdown、分组
设置 · 关于 底部「设置」打开浮窗;关于页展示版本信息,并可对照 GitHub Release 检查更新
画布操控 左键拖空白平移、滚轮缩放、适应视图
无边框窗口 自绘标题栏(最小化 / 最大化 / 关闭)
本地持久化 自动写入本机存储

界面预览

选中卡片与底部菜单

选中节点后,底部 dock 出现 删除、复制、+左、+右 等上下文操作。

选中卡片后复制节点

新建连接点

通过 +左 / +右 打开对话框;默认类型为 通用(红色)。

新建连接点对话框,默认通用


快速开始

方式一:下载 Release(推荐)

  1. 前往 Releases 下载最新 Windows 包
  2. 推荐便携版(免安装):CanvasNotes-*-portable.exe — 双击即可运行
    若使用安装版:CanvasNotes-*-Setup.exe — 一键安装到当前用户目录
  3. 启动后即可在独立客户端窗口中编辑画布(无需打开浏览器)

首次如被 SmartScreen 拦截,选择「仍要运行」(开源自建包常见提示)。
便携版首次启动会解压运行时,可能等待数秒,属正常现象。

方式二:源码运行(开发)

git clone https://github.com/kamuxiy/CanvasNotes.git
cd CanvasNotes

npm install
npm run dev:desktop

会启动 Vite 渲染进程与 Electron 桌面窗口(不是用浏览器当主界面)。

方式三:本地打包 Windows EXE

在 Windows 上:

npm install
npm run dist:win

产物输出到 release/:

文件 说明
CanvasNotes-*-portable.exe 绿色便携版,双击即用(推荐)
CanvasNotes-*-Setup.exe 一键安装包(当前用户目录)

也可在仓库 Actions 中手动触发 Build Windows Client,或推送 v* 标签自动构建并发布 Release。


环境依赖

项目 要求 说明
操作系统 Windows 10 / 11(64 位) 正式客户端目标平台
运行方式 下载 EXE Release 已内置运行时,无需预装 Node / 浏览器
Node.js 20+ 仅源码开发或自行打包时需要
npm 随 Node 附带 安装依赖与执行打包脚本

主要依赖(源码)

库 作用
Electron 桌面壳与无边框窗口
React 界面
Vite 渲染进程构建
TypeScript 类型与构建
Tailwind CSS 样式工具链
electron-builder 打包 Windows EXE
uuid 节点 / 连接点 ID

项目结构

CanvasNotes/
├── electron/
│   ├── main.cjs                 # Electron 主进程(独立窗口、单实例)
│   └── preload.cjs              # 预加载:窗口控制桥
├── src/                         # 渲染进程 UI
│   ├── App.tsx
│   ├── appMeta.ts               # 关于页元数据(版本由 Vite 从 package.json 注入)
│   ├── components/
│   │   ├── BottomDock.tsx
│   │   ├── CanvasBoard.tsx
│   │   ├── GroupFrame.tsx
│   │   ├── NodeCard.tsx
│   │   ├── SettingsModal.tsx    # 设置浮窗(侧栏分类 + 关于)
│   │   ├── SocketDialog.tsx
│   │   ├── SocketManagerPanel.tsx
│   │   ├── SocketPort.tsx
│   │   ├── TitleBar.tsx
│   │   └── WorkspaceSwitcher.tsx
│   ├── hooks/useCanvasStore.ts
│   ├── utils/checkUpdate.ts     # 对照 GitHub Release 检查更新
│   ├── store.ts
│   └── types.ts
├── scripts/
│   └── bump-version.mjs         # 升版本(patch/minor/major)
├── build/                       # electron-builder 资源(图标等)
├── .github/workflows/
│   └── build-windows.yml        # 自动打包 Windows EXE
├── docs/images/                 # README 配图
├── package.json                 # 版本唯一来源(UI / 打包 / Release 共用)
└── release/                     # 本地打包输出(不入库)

新增功能并推送到 GitHub 时,请同步更新本 README(功能表、结构与使用说明)。 每次更新 GitHub 仓库文件前,先执行 npm run version:patch(或 version:minor / version:major)升版本;package.json 是唯一版本源,Vite 编译时注入到关于页与更新检查,electron-builder 产物名也会带上该版本。


使用说明

画布操作

操作 说明
底部「便签 / 日期 / 清单 / Markdown / 分组」 在视口中心附近添加控件
画布空白右键 打开新建菜单
底部「设置」 打开设置浮窗(关于 / 检查更新)
左键拖空白处 平移画布
滚轮 缩放
拖节点标题栏 移动节点
拖分组标题栏 移动分组及开始拖动时已在组内的控件
从连接点拖出 拉线到另一侧连接点
双击连接点 重命名
右键连接点 删除该连接点
点击连线 删除连线
Delete / Backspace 删除选中节点
适应 将全部节点适配进视口

连线规则

规则 说明
方向 仅 左 ↔ 右(输入 ↔ 输出),跨不同卡片
自连 同一卡片不允许自连
同侧 左连左、右连右不允许
通用(红) 可与任意颜色类型互连
其他类型 仅同类型互连
多连 一个连接点可接到多个目标;不会挤掉已有连线

选中与底部菜单

  1. 点击卡片标题栏选中(Shift 可多选)
  2. 底部出现 删除 / 复制;单选时另有 +左 / +右
  3. +左 / +右 打开「新建连接点」对话框(默认类型为通用)

对话与需求历史

立项以来的对话、需求碎片与版本变更已归档:

文档 说明
docs/history 对话索引
PROMPT.md 需求按主题整理
CONVERSATION.md 完整阶段时间线
CHANGELOG.md 按版本变更日志

根目录 Prompt.txt 仍保留原始累计粘贴,供对照。


参考与致谢

参考项目 / 设计

项目 用途
Upload Labs 窗口式模块卡片、边缘端口与底部工具栏观感参考
ComfyUI 仅端口连线、贝塞尔曲线交互参考

特别感谢

  • 感谢 Upload Labs 的模块化节点与底部 dock 交互启发
  • 感谢 ComfyUI 社区的节点连线范式
  • 感谢 Electron / React / Vite / electron-builder 等开源工具链维护者

开源协议

本项目使用 MIT License:

  • 允许个人与商业使用、修改、分发
  • 分发须保留版权声明与许可文本
  • 软件按「原样」提供,不附带担保

反馈


Made by kamuXiY

画布笔记 · Windows 桌面客户端 · Electron + React

About

轻量画布笔记 / 待办客户端:Upload Labs 风格节点 + ComfyUI 式贝塞尔连线(Electron + React)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages