Skip to content

InkForge v1.1.0

Choose a tag to compare

@Yichenlemon Yichenlemon released this 03 Sep 15:22
· 26 commits to main since this release

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 运行时的便携版,解压即跑。