Repository navigation
Releases: Shingwha/open-pptd
Release list
v2.0.2
本版为 DeepSeek Harness(DSH)深度集成补齐引擎侧接缝:独立编辑器页可作为嵌入引导路径(站点前缀、chrome 档位、宿主主题注入),并程序化导出静态解析与渲染管线。全部为纯新增,缺省行为与 2.0.1 逐字节一致,已安装用户升级后无任何观感变化。
-
宿主 boot 接缝(契约 1/2/3 消费面):
editor/main.js支持从 query(?base=/?chrome=)或注入式window.__PPTD_BOOT__(base/chrome/theme)读取嵌入参数并透传createEditor;base让httpSource的保存与实时刷新跟随站点前缀(如 DSH 的/pptd/),chrome=embedded隐藏品牌与外链,theme注入时引擎内置三态主题不启动 -
主题消息钩子:独立页监听同源父窗口的
{type:"pptd:theme"}消息(applyThemeTokens语义,先还原再注入),并暴露window.__pptdTheme(apply/reset);挂载完成即向父窗口回执{type:"pptd:ready"},宿主可无闪色下发主题 -
server barrel 程序化导出:
open-pptd/server新增导出MIME/resolveFile/resolveStaticFile/sendFile/handleSave/handlePing,下游(如 DSH 适配插件)可按契约组装路由而无需深路径导入,复用同一套穿越防护与多根资源解析 -
cli barrel 导出
renderDeck:headless 渲染管线(packages/renderer/headless/shoot.js)经open-pptd/cli转出,供 in-process 消费(runRender仍是 CLI 入口,行为不变) -
契约测试接入全量门禁:
tests/contract/public-api.mjs正式纳入tests/run-all.mjs,并新增断言——server barrel 新导出面、editor/main.js宿主接缝(boot 参数/主题钩子/ready 回执);契约文档(docs/embedding.md)状态表对齐已实现事实,新增英文版「宿主 boot 参数」章节
v2.0.1
v2.0.1 更新内容
本版以编辑器与画廊的整体视觉重构(细线 Line 设计语言)为主:画布浮层大幅收敛、属性界面统一简洁,同时新增 PowerPoint 式智能参考线,并把右键菜单的生效范围收敛到画布内。画廊同步换新并支持深浅色三态。
新增
- 智能参考线:拖动、缩放元素时自动吸附到页面中线/页边及其他元素的边缘与中心,以贯穿画布的红色参考线提示对齐位置(多选按整体包围盒,四个缩放手柄同样支持)
- 画廊深浅色三态:文件菜单新增「外观」(浅/深/跟随系统),与编辑器共用同一设置、即时互通
- 主题适配规范化:语义颜色/阴影全量走设计令牌,新增 DSH 主题令牌映射文档(
--dsw-alias-*语义对照),applyThemeTokens注入契约保持不变,为深度集成 DeepSeek Harness 打好主题面 - 回归门禁:新增 UI 令牌字面量检查(颜色/阴影字面量只允许存在于设计令牌表)与智能参考线吸附数学的 15 例纯函数测试
改进
- 编辑器视觉重构(细线 Line):顶栏收敛至 44px 并显示项目文件名(悬停看完整路径);按钮全面 ghost 化,放映不再重彩;缩放控件并入缩略条右端成为状态栏一部分,画布浮层只剩选中浮条与两个圆钮;选中浮条去掉文字标签只留核心属性项;右侧属性面板分区发丝线化、字段节奏统一、多选混合态一致;两个圆形 FAB 改白底细线;窄屏下浮条、圆钮、缩放互不遮挡
- 画廊同步重构:卡片去投影改发丝线描边,封面完整展示(页数挪入标题行右侧),PPT/海报分段控件圆角共心,标签更清晰,窄屏栅格不再横向溢出
- 文档:两仓 README 英文版置于首位并互链,打包白名单与发布说明同步
修复
- 画布边界看不清:纸面恢复柔和投影,白页与灰台面的分界一目了然
- 右键菜单收敛:画布外(含灰色台面与底部页面缩略条)恢复浏览器原生右键菜单,编辑器菜单只出现在画布内;顺带移除不再使用的缩略条页级菜单
- 一批实测观感问题:画廊分类控件圆角不一致、tag 不明显、页数字色过浅、窄屏缩略条轻微溢出视口等逐项修正
Full Changelog: v2.0.0...v2.0.1
v2.0.0
v2.0.0 更新内容
2.0 大版本:引擎接口化 + 渲染管线三段式重构 + 技能拆分 + 编辑器操作 PowerPoint 化。四轮工程全部由回归守门(全量 23 套件、156 页黄金基线、契约测试、dep-graph 分层纪律),任何可见行为变化均逐页登记。
安装(2.0 起,推荐一键脚本)
Windows(PowerShell,无需管理员):
irm https://raw.githubusercontent.com/Shingwha/open-pptd/main/install.ps1 | iexLinux / macOS:
curl -fsSL https://raw.githubusercontent.com/Shingwha/open-pptd/main/install.sh | sh装到 ~/.open-pptd 并写入用户级 PATH,open-pptd doctor 自检。AI 对话用法请配合技能仓 open-pptd-skill(纯 markdown,clone 到技能目录即可)。
破坏性变更
- 仓库拆分:本仓不再是技能包——SKILL.md 与 references/ 迁至独立技能仓 open-pptd-skill;本仓 = 引擎 + 编辑器 + CLI。旧「clone 本仓到 skills 文件夹」用法请改按上面两步安装
- 深路径降级:packages/model/... 等深路径 import 归入 ./internal/*(2.x 兼容、3.0 移除),对外请用 open-pptd/model 等包级入口与包根 contract.json
- 渲染行为变更:文本不再因框小被裁剪(溢出由 check 几何告警暴露);表格行高从 min 语义改为精确值;二者均已列入黄金基线白名单
新增
- 一键安装:仓库根 install.ps1 / install.sh(SHA256 强制校验、幂等、--dry-run 干跑、-Version 锁版本),装到 ~/.open-pptd(OPEN_PPTD_HOME 可覆盖)
- CLI 产品化:doctor / paths / assets list|sync|clean / ensure;serve --detach --json --stop --open(stdout 单行 JSON,agent 友好);export 前置资源体检——自动按需补齐 deck 真正用到的字体(--offline / --strict / --json,软降级不阻断)
- 可挂载编辑器:createEditor(rootEl, options)——可销毁、chrome 三档(full/minimal/shot)、dialogs 可注入、非交互装配供截图管线复用
- 传输接缝:ProjectSource 契约(http / 目录句柄 / 内存三实现),读写不再硬编码端点;serve 模式能力标记注入,静态部署零失败请求
- 主题注入:applyThemeTokens / defaultTokens(light|dark),编辑器内置暗色板 + 宿主覆盖
- 编辑器 PowerPoint 化:多选 / 框选 / Shift 加选 / Ctrl 切换 / Ctrl+A / Esc 分层 / Ctrl+拖动复制;键位重映射(Shift→多选、Alt→微调/等比);对齐二义化(单选页面、多选选区)+ 分布 + 组合;右键上下文菜单三态;缩略条拖排序(可撤销)+ 页面多选;内部剪贴板;深浅色三态(含跟随系统)
- 渲染管线三段式:measure(字体度量表纯函数排版度量)+ layout(LayoutTree 几何事实与越界/重叠检测)+ paintPage 纯绘制;156 页黄金基线 + 白名单机制守门
- 图片导出统一:本地 headless 优先、foreignObject 逐元素体检回退——消灭静默白图
- 发布资产五件套:runtime zip + 图标/字体资产包 + 安装脚本 + SHA256SUMS;技能仓独立发布并带 drift-guard 五项只读比对
改进
- 接口化:8 个包级入口 + contract.json 双口径(契约测试守门);editor 深路径清零;CONTRACT_VERSION = 2
- 预览=导出再加固:writer 表格行高/行距与 measure 单源;颜色/主题一致性、公式 204 字节级对拍
- 反补丁治理:设计令牌单一真相、选择/状态单一入口、DOM 访问统一、媒体单一接缝、headless 装配单源
- 文档:中英双语 README、docs/embedding.md 下游契约、全仓注释英文化
修复
- 单选选中框遮挡元素内容;拖动/旋转/缩放进行中选中框不实时跟随
- scaleSvgPath Z 分支吞命令与 undefined 输出;httpSource.readMedia 潜在 404
- group 类型注册告警与 check 误报;loader.js 撤销/重做 ReferenceError
- 字体静默降级(导出结果如实转述 embedded/skipped);图片导出静默白图(逐元素体检)
- CI:measure 对拍在无字体环境自动 SKIP;公式产物等环境性失败澄清
Full Changelog: https://github.com/Shingwha/open-pptd/commits/v2.0.0
v1.5.0
v1.5.0 更新内容
图表体系大版本:图表有效语义全面收敛 model 单源(预览/导出退化为纯投影),13 种图表类型全部支持导出(heatmap/sankey 经 SSR 矢量图落地),并对编辑器预览 × PowerPoint 导出双端一致性做了系统性复核与修复(P0 清单 32 项闭环)。
新增
- heatmap/sankey 导出:PowerPoint 无原生对应类型,经无头渲染 SSR 为 SVG 矢量图片导出(PowerPoint 2019+/365/WPS/LibreOffice 可见,数据不可在 PPT 内编辑)——13 类型全部有产出
- 组合图与次轴配方固化:bar/line/area/scatter/bubble 自由混合 +
yAxis数组次轴;生成指引收紧为定量数据一律走原生 chart 元素,shapes 只做结构与标注层 - 青山咖啡验收示例:examples 新增 12 页经营复盘 deck,13 种图表全类型实拍验收
改进
- 有效语义单源 resolveChartSpec:归一化系列/标题/图例/布局/柱宽/气泡全部默认值在 model 落定,预览与 writer 只做方言投影——消除标题抽取 7 处、图例开关 3+1 处、方位映射 3 处等重复实现与漂移
- 绘图区布局单源 resolvePlotLayout:导出写 plotArea manualLayout,与预览网格同源投影;饼图/雷达半径纳入布局模型,两端绘图区几何不再各一套体系
- 导出路由单源 chartRouteOf:classic/chartEx/image 三体系类型清单、编号口径、frame 判定归一
- 结构拆分:writer/chart.js 四职责拆分为 chart/ 八模块、model/chart.js 按域拆分(公共导出面零变化、导出字节级一致),ECharts option 组装下沉 model/chart/option
- vendor 归位 packages/vendor/:解除 writer→renderer 逆向依赖
修复
- 导出端:line/area stack 丢失、散点图被连线、雷达填充丢失、股价图展开系列污染图例、百分比堆叠轴无 % 格式、chartEx 空标题泄漏占位文字、组级 smooth 连带平滑、横向柱组内顺序与图例倒序、treemap/sunburst 瓦片标签样式与 dataLabels 透传
- 预览端:瀑布图柱高成倍错误、chart.title 不渲染、轴标题方位/箭头、图例四方位、数值轴千分位、堆叠柱标签内嵌、饼图标签外置对齐、无 marker 折线标签丢失等 20 余项
- 回归:graphicFrame 双层 xfrm 致经典图表零尺寸不可见(修复过程中发现并已销项)
Full Changelog: https://github.com/Shingwha/open-pptd/commits/v1.5.0
v1.4.7
v1.4.7 更新内容
本次更新聚焦「预览 = 导出」的一致性:修复多处同一页面预览与导出效果不同的问题,并把两端共享的样式逻辑收敛到单一实现,降低不一致复发的可能。
修复
- 封面副标题预览变黑变大:段落内联样式(
<p style>的颜色/字号)此前只在导出生效、预览被丢弃——示例《订单中台架构升级评审》首页预览与导出不一致即此因 - 背景图 contain 导出被裁剪:按规范应为完整显示 + 居中留白,此前导出静默按 cover 裁剪;现导出为白底 + 居中底层图片,与预览一致
- 箭头预览一律三角:arrow / stealth / diamond / oval 四种箭头预览各画其形
- 未装字体的电脑打开导出文件被替换字体:得意黑这类单文件字体现在按全部样式槽嵌入,粗体/斜体文字都能命中嵌入数据
- 旧
{color}形态填充导出空白:预览有色、导出空白,随填充归一化收口一并修复
优化
- 表格单元格内边距、列表缩进、阴影默认值、图表默认字号/图例规则等此前"预览一套、导出一套"的参数统一为单一定义(以导出值为准,预览对齐:图表默认文字略变小、无色阴影更实)
- 非正方形图标上的渐变方向不再畸变,与形状渐变一致
- 内部整理:合并链 / 填充 / 渐变 / 单元格样式 / 编码工具等重复实现收敛到唯一模块(延续 v1.4.4 整理版思路)
Full Changelog: v1.4.6...v1.4.7
v1.4.6
v1.4.6 更新内容
本次更新带来导出的完整字体嵌入能力,并重设计了应用标签页图标。
新增
- 导出支持完整字体嵌入:导出对话框新增「嵌入范围 子集/完整」选项(附预计体积),CLI 新增
--full-fonts。默认仍为子集嵌入——导出文件在未安装字体的电脑上需要继续编辑、或子集缺字形时,选「完整」即可解决
优化
- 标签页图标重设计为「一点墨」——留白页面落一点
- 中英双语 README 精简;SKILL / design 文档补充完整嵌入的用法与默认策略
修复
- 修复曲线预览出现意外色块的问题(开放路径被浏览器按默认填充闭合)
- Pages 部署产物清理不再误删 lib/
Full Changelog: v1.4.5...v1.4.6
v1.4.5
v1.4.5 更新内容
本次更新聚焦作品画廊的体验优化,并新增两张海报示例。
新增
- 新增「山谷回声音乐节」演出活动海报示例:现场摄影背景,霓虹视觉风格(2:3 竖版)
- 新增「白露」节气文化海报示例:竖排书法与诗文版式,适配手机屏比例(9:16)
优化
- 作品画廊分类切换新增滑块指示动画,卡片渐次浮现,切换更平稳
- 调整滚动条样式,页面观感更整洁
- 切换分类后自动返回页面顶部
修复
- 修复部分示例作品缩略图字体显示错误的问题
Full Changelog: v1.4.4...v1.4.5
v1.4.4
v1.4.4 更新内容
内部整理版本:无新功能与界面变化,全局合并重复实现、清理死代码(30 个文件,+176/−225),行为经全量回归测试与人工实测确认不变。
改进
- 重复实现收口:画布尺寸 deckSize/主题合成 resolveTheme/文本自适应 autoGrowTexts/dataURL 编解码/文件名净化 safeFileName/Blob 下载,各收敛到唯一模块;画廊字体加载复用注册表管线
- 新建空白单路径:编辑器空白启动并入「文件 → 新建空白演示」同一实现,消除两份初始化清单的漂移
- 骨架屏动画合一:画廊封面/画布遮罩/缩略图三处 shimmer 合并为 base.css 单一 keyframes 定义
修复
- 空白启动初始化缺失:空白编辑器此前未建撤销历史、未同步元素 id 计数、未重建图片映射,随路径合并一并补齐
- 项目包下载内容类型:zip 下载此前误用 pptx MIME,已改正
Full Changelog: https://github.com/Shingwha/open-pptd/commits/v1.4.4
v1.4.3
编辑器新增导出图片
文件菜单新增「导出图片(png)」——纯浏览器渲染,线上画廊与本地 serve 行为一致,导出当前编辑现场(未保存修改一并生效):
- 任意勾选页面:单页、某几页或全选,不必整本导出
- 倍率可选 1x / 2x / 3x(默认 2x),按画布实际尺寸标注输出像素;图表按所选倍率高清出图
- 多页可 zip 打包或逐张下载
- 自定义字体自动内嵌,任意画布比例(3:4 竖版等)直接出长图,发小红书 / 公众号即导即用
- 外链图片若无跨域授权,导出图中为空白(导出时会提示张数)
Full Changelog: v1.4.2...v1.4.3
v1.4.2
本版亮点
任意画布比例 · 全链路支持
render 出图、编辑器画布 / 缩略条 / 放映、画廊封面全部改为跟随 deck.size 实际尺寸渲染,不再写死 16:9 —— 3:4 竖版海报、方图等任意比例,预览即所得(小红书、公众号长图等场景直接做)。
作品画廊双分类
- 画廊主页新增 PPT / 海报 两个 tab,作品在
meta.yaml里写kind: poster即归入海报分类(缺省 ppt) - 封面卡片按作品真实比例渲染,海报 tab 采用更紧凑的竖版列宽
- 内置首个 3:4 竖版示例:《一句话,做整套 PPT》小红书宣传海报,点击即可在线编辑
- 画廊主页精简:移除底部操作说明文字
Full Changelog: v1.4.1...v1.4.2