Skip to content

Releases: Yichenlemon/inkforge

InkForge v1.3.0

Choose a tag to compare

@Yichenlemon Yichenlemon released this 04 Sep 08:04

InkForge v1.3.0

本版本变更

  • 元素框(Frame)三阶段:左栏拖拽嵌套、PowerPoint 式缩放/旋转/组合拆分、智能吸附与跨区块拖拽(ed050cf);修复跨区块移动下标错位、内联拖动逆变换、编辑态 SVG/图片不渲染、嵌套框不可落入(add8ab5);插入菜单新增元素框直达入口、顶层区块支持拖入元素框(daca2d7);真实斜切变形、内联元素画布手柄、流式布局拖拽排序、子块组合拆分与整组移动、导出同步 skew(c000279)。
  • 交互组件扩充至 50 个:本期新增 34 个微信清洗安全交互组件 —— 环形进度/提示/图片标注/前后对比/问答/撒花/加载/声波/投票/对话/角标/倒计时/文字跑马灯/渐显(b82b184);数字滚动/旋转/水波纹/点击烟花/飘雪/气泡上升/飘心/星光/输入中/抖动/放大镜/分页切换/步骤条/文字切换/划词高亮/折叠面板/剧透遮罩/时间轴/彩带雨/呼吸边框(4e7415b)。全部采用 SVG-SMIL 或 <details> 实现、无 JavaScript,过微信清洗白名单。
  • 编辑器修复:悬浮工具栏插入菜单点击 tab / 输入框导致 popover 闪退;素材库去重避免 React key 警告(856246a)。
  • 文件管理模块设计稿docs/文件管理模块设计.md,§0–§18):后续版本的完整规划,本期尚未落地代码
  • 工程文档:新增 docs/git与发布操作规范.md(git 与发版 SOP)。

与 v1.2.0 的差异

10 个提交、20 个文件、+2338 / −54(含实质功能代码,故重打便携包)。

下载

  • inkforge-1.3.0.zip —— 便携运行包(内置 Node.js,解压即跑;双击 scripts/inkforge.bat 启动,默认端口 5177)。
  • inkforge-1.3.0-design.md —— 文件管理模块完整设计稿(规划文档,尚未实现)。

说明

  • 本 Release 使用独立新 tag、新 zip 名、新说明,不覆盖 v1.0.0 / v1.1.0 / v1.2.0 任何资产

InkForge v1.2.0 (版权合规重构)

Choose a tag to compare

@Yichenlemon Yichenlemon released this 03 Sep 16:28

InkForge v1.2.0 版本说明

本版本聚焦版权合规:下线了依赖第三方样式中心的样式库集成(对应的服务端路由、客户端面板与插入组件,以及未入库的本地素材目录均已移除),并把界面与外部素材相关的「抓取」表述统一为「导入 / 提取」。

基本信息

项目 内容
版本号 1.2.0
许可协议 MIT
运行环境 内置 Node.js(解压即跑),无需另行安装
默认端口 API / 生产前端 5177
数据库 better-sqlite3(本地文件,无需额外服务)

本版本变更

  • 移除第三方样式库接入:左侧「样式库」面板、编辑器内的样式插入组件,以及服务端的样式检索路由全部下线;交互组件、文档模板、片段、素材库等原有能力不受任何影响。
  • 清理外部素材表述:外链图片入库、从文章链接提取生态组件等通用导入能力保留,但界面与提示文案中的「抓取」统一改为「导入 / 提取」,消除歧义。
  • 代码合规:全仓提交信息与源码中不再出现第三方品牌名与「抓取」字样。

与历史版本关系

  • v1.0.0 / v1.1.0 作为历史快照保留,本版本为在两者基础上的合规化重构,不改动既有快照

这个版本能做什么

  • 可视化编辑微信公众号图文:区块、组件、卡片、时间线、步骤、手风琴、SVG、Lottie、视频、音频、二维码、交互组件等。
  • Markdown 双向互转、浮动图文混排、精细字号与排版控制。
  • 微信生态组件(小程序 / 视频号)提取、外链图片导入到本地素材库。
  • 片段与模板库、历史版本、账号管理与一键群发草稿。
  • 导出为微信兼容 HTML(自带清洗白名单,符合平台约束)。
  • 内置运行时,解压即跑,数据本地持久化。

InkForge v1.1.0

Choose a tag to compare

@Yichenlemon Yichenlemon released this 03 Sep 15:22

InkForge v1.1.0 版本介绍

一句话:InkForge 是一个面向微信公众号的全栈可视化编辑器,把「写、排、存、导、发」整成一条流水线——Markdown 互转、浮动图文混排、微信生态组件、精细字号控制、数据库持久化与历史、商业级模板、一键部署,开箱即用。


基本信息

项目 内容
版本号 1.0.0
发布日期 2026-09-03
许可协议 MIT
运行环境 Node.js ≥ 18(推荐 22)、npm ≥ 9
默认端口 API / 生产前端 5177;开发前端 5173
数据库 better-sqlite3(本地文件,无需额外服务)

这个版本能做什么

1. 可视化块编辑器

  • 20+ 种内容块:标题、段落、引用、列表、图片、图集、代码、表格、分割线、卡片、标注、时间线、步骤、折叠、按钮、SVG、Lottie、视频、音频、二维码、互动、自定义 HTML、多列、微信生态。
  • 基于 dnd-kit 的区块拖拽排序。

2. 浮动图文混排(图片不再是独占一行)

  • 图片布局三态:通栏 / 左浮动 / 右浮动,与正文自然环绕,画布与导出一致。
  • 图片支持缩放(百分比宽度)、画布内拖动、旋转、水平翻转,均不污染历史记录(拖拽过程中静默更新,松手记一步)。

3. 字号与排版精细控制

  • 每个块独立设置字号、行高、字间距、对齐、缩进、颜色、背景、圆角、阴影、边框。
  • 已修复:早期版本块级字号会被主题默认值静默覆盖(CSS 同属性取最后声明)。现块级样式优先于主题默认,引用 / 列表 / 标题 / 段落的字号均正确生效。

4. Markdown 模式(双向、可往返)

  • 导入:粘贴 Markdown → 实时预览 → 追加到文末 / 转为区块(替换全文)。标题、列表、引用、代码、表格、图片都会变成真实可编辑 Block。
  • 导出:当前文档导出为 Markdown,可复制或下载 .md
  • 已修复导出缺陷:分隔线不再丢失;表格正确转为 GFM 表格(不再泄漏原始 <table> HTML)。

5. 微信生态组件(真实可用)

  • 三类:小程序 / 视频号 / 微信小店
  • 后端可抓取已发布文章中的 <mp-miniprogram> 元数据回填;导出生成符合微信规范的组件代码注释,回公众号后台即可恢复原生渲染。
  • 纯 SMIL + CSS、零 JS,可过微信白名单清洗。

6. 文档持久化与历史(非一次性草稿)

  • better-sqlite3 本地库,自动保存。
  • 历史记录面板:查看每步快照、跳转到任意历史状态(撤销 / 重做 / 定点回滚)。
  • 支持手动快照、复制副本、删除。

7. 壹伴样式库(16,000+ 微信兼容样式,开箱即用)

  • 内置从壹伴样式中心抓取的 16,245 条完整样式(40MB 数据随包附带,离线可用),覆盖 81 个分类:底色 / 二维码 / 边框 / 双图 / 单图 / 线框 / 顶部关注 / 在看 / 编号 / 饰物 / 动态 / 引用 / 轴线总结等。
  • 左侧面板「样式库」标签页:关键词搜索 + 分类筛选 + 分页浏览,每个样式带实时缩略预览
  • 点击即插入为原生 HTML 块,内联样式原样保留,直接通过微信合规导出链路。

8. 产品级首页与模板库

  • 首页:Hero Banner、真实数据卡片、最近文档封面、模板库(分类筛选)。
  • 9 套可直接商用的文档级模板(资讯 / 情感 / 干货 / 活动 / 招聘 / 测评 / 教程 / 长文 / 空白),新建即带封面、章节、引导关注等结构。

9. 菜单栏与命令面板

  • 文件 / 编辑 / 插入 / 视图 / 帮助 五类菜单;⌘K / Ctrl+K 命令面板。

10. 一键部署脚本

  • scripts/inkforge.sh:数字菜单执行 检测环境 / 一键部署 / 启动 / 结束 / 卸载 / 清理,兼容 Git Bash / WSL / macOS / Linux。

11. 微信公众平台合规

  • wechatify 清洗管线:剥离 <script> / JS / onclick / CSS animation / transition / @keyframes / id / position,保留 SMIL、<details>:active / :checked

12. 本轮重大增强(编辑器体验全面升级)

自首个 1.0.0 发布后,围绕「悬浮工具栏 / 全局设置 / 图片编辑 / 大纲 / 右侧功能区 / 顶栏 / 状态栏 / 图源」做了一轮系统性补齐,以下能力均已随最新提交合入 main

  • 悬浮工具栏大扩容:新增独立字号 / 段落样式 / 对齐控制;「插入」支持四类资源——区块 / 组件 / 样式库 / 素材,一键插入到选中块之后,不再只能嵌套当前块。
  • 全局设置面板重构:界面主题(浅色 light / 纸张 paper / 暗色 dark,CSS 变量驱动)、强调色、默认作者、正文字体 / 字号 / 行高、自动保存、导出图片压缩与质量,全部持久化到本地。新建文档自动套用默认设置。
  • 图片编辑器(全新):亮度 / 对比度 / 饱和度 / 色相 / 旋转 / 模糊 / 灰度 / 反相 / 智能抠图,服务端实时预览(/api/assets/image/preview 返回 dataURL,不落盘),确认后生成新素材并替换区块。右侧「图片」区块一键唤起。
  • 大纲面板增强:支持拖拽排序 + 圆形编号样式 + 单块上移 / 下移 / 删除,长文结构一目了然。
  • 右侧功能区增强:区块上移 / 下移 / 复制 / 删除快捷键;图片区块一键进入图片编辑器;「文章信息」页新增字数 / 图片数 / 区块数统计。
  • 顶栏文件名重构:点击文件名即重命名(修复此前点击白屏);文章信息补全年份 + 作者,未署名时回退默认作者。
  • 底部状态栏:实时显示字数 / 缩放比例 / 选中区块信息,并支持撤销 / 重做。
  • 在线图源切换为国内免费源:告别不稳定外链;图标接入 IconPark 中文图标库,搜索即插。
  • 壹伴帮助页能力落地:收藏样式 / 一键排版 / 深色预览 / 文章背景,从帮助页提取为可用功能。
  • 修复:悬浮工具栏若干交互 bug;设置对话框输入异常;newDoc 默认设置未注入;在线源 const 重赋值导致运行时报错;文件名点击白屏等。

技术架构

前端 (Vite + React18 + TS)  ──HTTP/JSON──▶  后端 (Express + tsx)
  区块视图 / 首页 / 菜单栏              文档 API · 编译 · 转换 · 微信清洗
  Zustand 状态                          better-sqlite3 持久化
        ▲                                      │
        └──── 编译产物(HTML)回传,wechatify 清洗后用于公众号 ────┘
  • 前端构建产物 dist/ 由 Express 在生产模式下直接托管(单端口 5177)。
  • 开发模式:npm run dev 同时拉起 API(5177) 与 Vite(5173),Vite 代理 /api

安装与运行

# 1. 安装依赖
npm install          # 或 npm ci

# 2A. 开发模式
npm run dev          # 打开 http://localhost:5173

# 2B. 生产模式
npm run build        # 生成 dist/
npm start            # 打开 http://localhost:5177

使用管理脚本(推荐)

./scripts/inkforge.sh        # 数字菜单
./scripts/inkforge.sh deploy # 一键部署
./scripts/inkforge.sh start  # 启动
./scripts/inkforge.sh stop   # 结束

版本发布包内容(releases/inkforge-1.0.0.zip · 便携版)

自包含、解压即跑,目标机器无需安装 Node / npm。

  • ✅ 内置 Node.js 运行时 runtime/(Windows 版随包提供,约 180 MB)
  • ✅ 完整 node_modules(含 tsx / vite / better-sqlite3 等全部依赖与预编译原生模块)
  • ✅ 已构建 dist/ 前端产物
  • ✅ 完整前端 / 后端源码 + scripts/(含 inkforge.sh 与 Windows inkforge.bat
  • README.md / RELEASE_NOTES.md / LICENSE / VERSION

便携版运行方式

  1. 解压 inkforge-1.0.0.zip
  2. Windows:双击 scripts/inkforge.bat;macOS / Linux / Git Bash:bash scripts/inkforge.sh
  3. 菜单选 3) 启动服务,待出现 http://localhost:5177
  4. 浏览器打开 http://localhost:5177 即可使用
  5. 菜单 4) 结束服务 或关闭窗口停止

管理脚本会优先使用内置 runtime/node,仅在缺失时回退系统 Node。若需自行从源码运行,仍是 npm install && npm run build && npm start


已知限制

  • 微信互动效果需使用 SMIL(<animate> / <animateTransform> / <set>),不支持 JS 驱动的复杂逻辑。
  • 当前为单机本地存储,未做多用户 / 云端同步(见路线图)。
  • 第三方素材(如 E2.COOL 案例图)可能带版权声明,请勿商业二次模板化。

升级说明

从源码运行无需额外迁移;数据库表结构由 server/db.ts 自动建表(SCHEMA_VERSION 演进时请备份 data/inkforge.db)。

v1.1.0 新增内容

在 1.0.0 基础上,本轮重点补齐编辑器体验与微信生态能力(全部经真实 compile→wechatify 管线校验,可正常发布):

  • 图片编辑器:亮度 / 对比度 / 饱和度 / 色相 / 旋转 / 模糊 / 灰度 / 反相 / 智能抠图。服务端实时预览、确认后落新素材并替换区块;右侧图片区块一键唤起。
  • 右侧功能区增强:区块 上移 / 下移 / 复制 / 删除;文章统计(字数 / 图片数 / 区块数)。
  • 全局设置重构并持久化:主题(浅色 / 纸张 / 暗色,CSS 变量驱动)、强调色、默认作者、字体 / 字号 / 行高、自动保存、导出压缩与质量;新建文档自动套用。
  • 大纲拖拽排序 + 编号样式
  • 顶栏文件名重命名 + 年份 / 作者(修复点击白屏);底部状态栏实时字数 / 缩放 / 撤销重做。
  • 在线图源切换为国内免费源 + IconPark 图标
  • 交互组件扩容:新增 图片轮播 / 进度条 / 跑马灯 三种 SVG-SMIL 组件(无 JS、过微信白名单);全库交互组件经真实管线校验零非预期错误。

下载包 inkforge-1.1.0.zip 为内置 Node 运行时的便携版,解压即跑。

InkForge v1.0.0

Choose a tag to compare

@Yichenlemon Yichenlemon released this 03 Sep 10:48

InkForge v1.0.0 版本介绍

一句话:InkForge 是一个面向微信公众号的全栈可视化编辑器,把「写、排、存、导、发」整成一条流水线——Markdown 互转、浮动图文混排、微信生态组件、精细字号控制、数据库持久化与历史、商业级模板、一键部署,开箱即用。


基本信息

项目 内容
版本号 1.0.0
发布日期 2026-09-03
许可协议 MIT
运行环境 Node.js ≥ 18(推荐 22)、npm ≥ 9
默认端口 API / 生产前端 5177;开发前端 5173
数据库 better-sqlite3(本地文件,无需额外服务)

这个版本能做什么

1. 可视化块编辑器

  • 20+ 种内容块:标题、段落、引用、列表、图片、图集、代码、表格、分割线、卡片、标注、时间线、步骤、折叠、按钮、SVG、Lottie、视频、音频、二维码、互动、自定义 HTML、多列、微信生态。
  • 基于 dnd-kit 的区块拖拽排序。

2. 浮动图文混排(图片不再是独占一行)

  • 图片布局三态:通栏 / 左浮动 / 右浮动,与正文自然环绕,画布与导出一致。
  • 图片支持缩放(百分比宽度)、画布内拖动、旋转、水平翻转,均不污染历史记录(拖拽过程中静默更新,松手记一步)。

3. 字号与排版精细控制

  • 每个块独立设置字号、行高、字间距、对齐、缩进、颜色、背景、圆角、阴影、边框。
  • 已修复:早期版本块级字号会被主题默认值静默覆盖(CSS 同属性取最后声明)。现块级样式优先于主题默认,引用 / 列表 / 标题 / 段落的字号均正确生效。

4. Markdown 模式(双向、可往返)

  • 导入:粘贴 Markdown → 实时预览 → 追加到文末 / 转为区块(替换全文)。标题、列表、引用、代码、表格、图片都会变成真实可编辑 Block。
  • 导出:当前文档导出为 Markdown,可复制或下载 .md
  • 已修复导出缺陷:分隔线不再丢失;表格正确转为 GFM 表格(不再泄漏原始 <table> HTML)。

5. 微信生态组件(真实可用)

  • 三类:小程序 / 视频号 / 微信小店
  • 后端可抓取已发布文章中的 <mp-miniprogram> 元数据回填;导出生成符合微信规范的组件代码注释,回公众号后台即可恢复原生渲染。
  • 纯 SMIL + CSS、零 JS,可过微信白名单清洗。

6. 文档持久化与历史(非一次性草稿)

  • better-sqlite3 本地库,自动保存。
  • 历史记录面板:查看每步快照、跳转到任意历史状态(撤销 / 重做 / 定点回滚)。
  • 支持手动快照、复制副本、删除。

7. 产品级首页与模板库

  • 首页:Hero Banner、真实数据卡片、最近文档封面、模板库(分类筛选)。
  • 9 套可直接商用的文档级模板(资讯 / 情感 / 干货 / 活动 / 招聘 / 测评 / 教程 / 长文 / 空白),新建即带封面、章节、引导关注等结构。

8. 菜单栏与命令面板

  • 文件 / 编辑 / 插入 / 视图 / 帮助 五类菜单;⌘K / Ctrl+K 命令面板。

9. 一键部署脚本

  • scripts/inkforge.sh:数字菜单执行 检测环境 / 一键部署 / 启动 / 结束 / 卸载 / 清理,兼容 Git Bash / WSL / macOS / Linux。

10. 微信公众平台合规

  • wechatify 清洗管线:剥离 <script> / JS / onclick / CSS animation / transition / @keyframes / id / position,保留 SMIL、<details>:active / :checked

技术架构

前端 (Vite + React18 + TS)  ──HTTP/JSON──▶  后端 (Express + tsx)
  区块视图 / 首页 / 菜单栏              文档 API · 编译 · 转换 · 微信清洗
  Zustand 状态                          better-sqlite3 持久化
        ▲                                      │
        └──── 编译产物(HTML)回传,wechatify 清洗后用于公众号 ────┘
  • 前端构建产物 dist/ 由 Express 在生产模式下直接托管(单端口 5177)。
  • 开发模式:npm run dev 同时拉起 API(5177) 与 Vite(5173),Vite 代理 /api

安装与运行

# 1. 安装依赖
npm install          # 或 npm ci

# 2A. 开发模式
npm run dev          # 打开 http://localhost:5173

# 2B. 生产模式
npm run build        # 生成 dist/
npm start            # 打开 http://localhost:5177

使用管理脚本(推荐)

./scripts/inkforge.sh        # 数字菜单
./scripts/inkforge.sh deploy # 一键部署
./scripts/inkforge.sh start  # 启动
./scripts/inkforge.sh stop   # 结束

版本发布包内容(releases/inkforge-1.0.0.zip)

  • ✅ 完整前端源码 + 已构建 dist/
  • ✅ 后端源码与 scripts/
  • README.md / RELEASE_NOTES.md / LICENSE
  • ❌ 不含 node_modules(需 npm install

已知限制

  • 微信互动效果需使用 SMIL(<animate> / <animateTransform> / <set>),不支持 JS 驱动的复杂逻辑。
  • 当前为单机本地存储,未做多用户 / 云端同步(见路线图)。
  • 第三方素材(如 E2.COOL 案例图)可能带版权声明,请勿商业二次模板化。

升级说明

从源码运行无需额外迁移;数据库表结构由 server/db.ts 自动建表(SCHEMA_VERSION 演进时请备份 data/inkforge.db)。