资讯详情

资讯详情

ppt-master 共享 SVG 技术标准体系解析:兼容路由、fail-closed 生成契约与保真度模型

AI 技能人工智能【免费下载链接】ppt-masterAI 把任意文档生成真正可编辑的 PowerPoint —— 原生形状与动画、演讲者备注可合成音频旁白、还能参考你自己的 .pptx 模板,而不是一张张图片 · 何雨果出品项目地址https://gitcode.com/hugohe3/ppt-master点击查看免费下载导读本文面向需要理解或使用 ppt-master 的 SVG 生成管线的开发者、Agent 与 LLM围绕仓库中管理 SVG 作者写作边界的共享技术标准体系展开shared-standards.md作为兼容路由指针将分卷规范按触发条件路由到各自权威文件shared-standards-core.md作为 always-on 的写作契约统一规定 XML 合法性、封闭的生成作者写作面、页面闭合、语义分组、视觉质量默认值与保真度词汇。读完本文你将掌握该体系的文件路由逻辑、四档保真度标签的取舍依据、结构化黑名单与内联属性白名单、条件契约线端标记、图片裁剪、静态复用、导入元数据、原生预设以及质量检查器与导出器共享验证器、fail-closed 校验的具体落地方式并能在自己的生成实践中直接写出通过校验的页面 SVG。1. 标准体系概览指针文件与权威文件的分工shared-standards.md是一份典型的指针pointer文档它本身不承载运行时规则而是声明了两条加载路径始终加载的写作契约shared-standards-core.md。任何通过 SVG 创作或再生成幻灯片视觉的路径都必须遵守它。按需加载的条件模块Default 与 Quick Generate 两条主生成路线通过 executor-base.md 的路由表加载全部条件模块其他 SVG 创作路径如 Create Template、Edit Native PPTX则通过核心文档顶部的路由表按触发条件加载。体系的核心设计原则是分卷而非合并shared-standards.md明确写道本文件是指针不是合并的运行时权威This file is a pointer, not a combined runtime authority要求遵循所选路由的必需模块而不是默认加载所有条件模块。这避免了将全部规则灌入单一上下文让 Default/Quick 与其他路径各取所需也保证了规则的可维护性与上下文经济性。从源码结构看这种分层与脚本层的模块划分一一对应质量检查入口 svg_quality_checker.py 与核心校验实现 checker.py 是同一套校验器的两个入口导出器预检preflight则复用svg_to_pptx包中的同一批验证器见下文 §6。2. 条件模块路由表什么时候加载什么核心契约顶部给出了两条路由来源适用对象不同路由一Default / Quick Generate由 executor-base.md 的路由表统一驱动覆盖十余种触发条件例如触发条件加载模块pptx_structure.mode: structuredexecutor-structured.md选择 Chart/Tablefamily/key引用executor-visualization.md值驱动几何迷你图、sparkline、inset、小多图executor-chart.md语义单元格网格表格executor-table.md预设图案填充或独立图表对象替换native-data-interface.md页面拓扑决策为yesexecutor-structure.mdtopology-assembly.md轮廓超出矩形/圆角矩形/圆/椭圆/直线native-shape-authoring.md视觉任务超出日常块faux glass、构造风格、渐变描边等svg-effects.md任何图片executor-image.md等四个图片模块结构记法分数、根号、矩阵等native-formula.md外部或同 deck 点击超链接native-hyperlinks.md已 sourced 的图片executor-web-image.md演讲者备注有效executor-notes.md路由二其他 SVG 创作路径如 Create Template、Edit Native PPTX使用核心文档顶部的精简表触发条件加载非规范/alpha 画笔、高级线或文本处理、渐变/滤镜/效果、变换、自由/径向几何或构造样式svg-effects.md预设图案填充或创作/编辑原生图表/表格数据native-data-interface.md在判定资格或输出元数据之前加载结构化 Master/Layout/slot 创作pptx-structure-interface.md两条路由都强调先读取、再进入页面循环Default 在 P01 前对整个花名册一次性评估全部触发条件并批量读取Quick 则针对冻结的瞬时花名册。若某页面遇到扫描时未预见的特性则在写出该页第一行 SVG 之前读取对应模块。3. 保真度标签四档映射语义shared-standards-core.md定义了贯穿整个体系的保真度词汇用于说明svg_output/→ PPTX 路径上每个特性的转换质量标签含义Native-stable生成的 PPTX 使用对应的原生 DrawingML 属性或对象并在该技术自身的限制内保留文档语义。Native-normalized导出目标是可编辑的 DrawingML 等价物但把 SVG 归一化为另一种结构如自由形状、run 属性或简化的画笔/效果。ApproximateDrawingML 没有精确的 SVG 等价物导出通过有文档记录的近似实现目标效果材料级差异需要输出审查。Bake-required运行时效果超出原生契约必须预渲染为图片或用显式受支持的几何重建。需要特别强调的是边界这些标签只描述svg_output/→ PPTX 方向的转换不描述 PPTX 导入后的重建也不描述 PowerPoint、LibreOffice、Keynote、WPS 之间的像素级一致性。4. 封闭的生成作者写作面Fail-Closed 硬规则这是整个体系最核心的约束生成作者写作是 fail-closed 的。svg_output/与可复用模板 SVG 只能使用本文件或路由表触发模块中显式列出的属性与条件接口未知的内联可视属性与未映射的条件契约都是错误errors而文档化的兼容拼写是合法输入只会收到推荐修正类建议警告warnings永不要求修改、永不阻断导出。这种检查器与导出器预检共享一个验证器的设计在源码中有直接对应从 checker.py 的导入语句可见它直接引用了svg_to_pptx.canvas_contract、svg_to_pptx.drawingml.utils、svg_to_pptx.drawingml.converter、svg_to_pptx.drawingml.text_properties等导出器组件因此检查失败的边界与导出会拒绝的边界是同一条。fail-closed一词在 svg-contract.md如 §1.1、§1.5 的 registry 校验、§6.8 变换与 utils.py非有限/不受支持/无上下文的百分比值等实现处大量出现是整套校验器的一致行为准则。4.1 文本字符必须是良构 XMLSVG 是严格的 XML所有文本与属性值必须遵守两条规则字符类别必须形式禁止形式排版与符号em dash、en dash、©、®、→、·、NBSP、全角标点、emoji…原始 Unicode 字符直接写—–©®→HTML 命名实体mdash;ndash;copy;reg;rarr;middot;nbsp;hellip;bull;等XML 保留字符仅 XML 实体amp;lt;gt;quot;apos;如Ramp;D、error lt; 5%裸如RD、error 5%一个违规字符就会使文件无效并中止导出。4.2 结构性黑名单以下全局禁用的语法是穷尽式清单不是正向允许清单被禁特性说明mask蒙版style内嵌样式表classCSS 选择器属性外部 CSS外部样式表链接foreignObject嵌入的外部内容textPath沿路径文本font-face自定义字体声明animate*/setSVG 动画script/ 事件属性脚本与交互iframe嵌入框架4.3 内联可视属性白名单内联style只能携带以下属性画笔与线fill、stroke、stroke-width、stroke-dasharray、stroke-linecap、stroke-linejoin、fill-opacity、stroke-opacity、vector-effect文本font-family、font-size、font-weight、font-style、text-anchor、letter-spacing、text-decorationalpha 与定义画笔opacity、stop-color、stop-opacity、flood-color、flood-opacity§2.1 字面几何属性仅预览shape-rendering不改变原生几何而filter、clip-path、marker-start/marker-end以及tspan上的baseline-shiftsuper|sub必须是直接属性绝不能放进内联 style。!important、未知 CSS 属性、混合模式、isolation、backdrop filter 均会导致质量检查失败。4.4 默认普通生成画笔与文本新生成的普通实色画笔使用大写六位#RRGGBBfill/stroke也可使用小写none或精确的本地url(#id)。alpha 通道、虚线、两档渐变、以及executor-base.md日常块中的阴影/发光滤镜无需额外文件但任何其他颜色拼写、cap/join 选择、渐变描边或文本填充、滤镜形式、rotate 之外的变换、构造画笔都必须先加载 svg-effects.md。普通文本使用非空font-family、有限正数无单位 px 的font-size、font-weight为normal/bold/整数百、font-style为normal/italic、text-anchor为start/middle/end只能放在svg、g或text上绝不能放在tspan上。字距、下划线/删除线、描边、渐变与滤镜文本处理遵循svg-effects.md§6.7。4.5 紧凑继承式创作公共排版呈现属性放在svg上只要文本可见就必须有直接font-family根画笔/效果被禁止共享排版或画笔放在最近的、有意义的g上真正子级的覆盖保持显式。源码保持合法、浏览器可见、语义化、本地可编辑不得使用 class/样式表、别名/私有键、编码负载、精度损失或无关的间接层。--canonical-authoring会以建议性警告报告与紧凑形式的漂移compact_svg_styles.py 的--inplace可对已创作的项目页面不作用于结构化模板花名册应用相同的归一化。5. 五个条件契约Conditional Contracts5.1 线端标记§1.1marker-start/marker-end只能用在line与path上引用defs中一个本地marker其orient必须为auto或auto-start-reverse且唯一子元素必须是五种 DrawingML 线端之一三顶点闭合多边形三角形 triangle简单凹四顶点闭合多边形stealth开放三顶点路径arrow简单凸四顶点闭合多边形diamond一个circle/ellipseoval闭合形状使用与父描边一致的填充开放 arrow 使用fillnone与匹配描边。任何其他 marker 形状都会阻断导出。类型保真度为Native-normalized尺寸为Approximatesm/med/lg。5.2 图片裁剪§1.2clip-path只在image上映射为原生defs中一个本地clipPath只能包含恰好一个circle、ellipse、rect可带rx/ry、path或polygon且不得带clip-rule/fill-rule。圆、椭圆与矩形裁剪必须精确覆盖图片框成为 preset 图片几何路径或多边形则成为框内自定义几何轮廓未覆盖整框时优先使用。形状、组、文本上的clip-path一律禁止——直接创作目标几何。5.3 静态同文档use§1.3创作href#id指向symbol有限正viewBox、内含图形、实例width/height为正数无单位或 primitive、g、text、image。本管线与浏览器 SVG 有两点不同finalization 与原生导出会把被引用 primitive 克隆进每个实例PowerPoint 没有 symbol 图PPTX 导入也从不重建use被复用子树不得携带 layer、placeholder 或 chart/table 替换元数据。原始文档给出示例svg xmlnshttp://www.w3.org/2000/svg defs symbol idstatusDot viewBox0 0 20 20 preserveAspectRatioxMidYMid meet circle cx10 cy10 r8 fill#16A34A/ /symbol g idlegendRow rect width120 height32 rx8 fill#F1F5F9/ text x42 y22 font-size16 fill#0F172AReady/text /g /defs use href#statusDot x80 y120 width32 height32/ use href#legendRow x120 y120/ /svg机器契约的更多边界64 个实例链上限、单 SVG 最多 10000 个use实例、外部/file/data URL 与循环引用链的禁止等见 svg-contract.md §1.3。5.4 导入的原生 PowerPoint 形状§1.4pptx_to_svg.py 为源自p:sp、p:cxnSp、p:grpSp的对象发射渲染中立元数据data-pptx-object、data-pptx-shape-id、data-pptx-frame、data-pptx-prst、data-pptx-av-*、data-pptx-part等。该契约只适用于无损导入 SVG 与导入/镜像/往返路径上未改变的导入对象普通创作 SVG 从不写这些属性导出也从不静默降级未知 preset 或不支持的效果。data-pptx-effect-statusunsupporteddata-pptx-effect-reason用于记录无法进入目标特定效果映射的原因——这些是诊断属性不是保留的效果负载或创作语法。5.5 创作的原生 PowerPoint 预设§1.5新 SVG 页面与项目自有规范模板可通过确定性片段助手将一个完整几何对象选入原生 DrawingML preset。选择逻辑见 native-shape-authoring.md助手打印一个紧凑原子的g>python3 ${SKILL_DIR}/scripts/preset_shape_svg.py render rightArrow \ --id p03-growth-arrow \ --frame 160 210 320 112 \ --fill #2563EB \ --stroke none \ --adjust adj1val 50000只有当该 id 已存在于页面级 svg-effects.md §6.4 滤镜定义中时才追加--filter-id softShadow。结合 preset_shape_svg.py 的参数解析器build_parserrender子命令还支持--object-kind shape|connectorconnector 需fillnone加可见描边导出为非连接p:cxnSp、--namePowerPoint 对象名、--fill-opacity/--stroke-opacity0–1、--stroke-width有描边时默认 1、--stroke-linecap butt|round|square、--stroke-linejoin miter|round|bevel以及--filter-id本地 SVG 滤镜引用页面必须在直接defs中定义。render-batch子命令接受 UTF-8 JSON 数组--input -读 stdin任一元素无效则整批不输出任何片段——与 fail-closed 精神一致。list --search/--grouped与describe --compact --frame --adjust则用于查看预设词汇与元数据。硬规则——仅助手可写元数据data-pptx-authoring、data-pptx-prst、data-pptx-frame、adjustment 元数据与 registry 路径只由预设助手写入手写值会在检查器失败preset、frame、adjustment、fill、stroke、stroke 宽度或滤镜引用变化时必须重新生成整个片段需要自由轮廓编辑时则替换为普通 SVG。助手只接受none或六位实色 HEX 画笔、可选通道 alpha、stroke 宽度、cap/join 与一个仅形状滤镜渐变、图案与其他处理保持普通 SVG文本保持在原子片段之外。检查器与导出器会从元数据重渲染每个片段任何漂移即 fail closed。6. 条件兼容映射几何语法与组透明度6.1 字面几何长度语法§2.1x、y、width、height、rx、ry、cx、cy、r、x1…y2、dx、dy与stroke-width必须写为页面viewBox空间中的有限无单位普通小数x120、stroke-width2尺寸与半径非负。px后缀可读并警告其他任何单位、百分比、表达式或奇异数值拼写都是错误且显式非法值永不回退到默认值。同一批几何属性也可以出现在元素自身style中作为px字面量如stylex:120px零值可无单位管线会将其物化为 XML 属性。线端点、文本位置、路径数据与 points 始终是 XML 属性。完整文法见 svg-contract.md §2.1共享几何实现位于 utils.py。6.2 组透明度§2.2DrawingML 没有孤立的组 alpha 模型。g opacity仍被接受Approximate乘入后代仅保真度警告但新创作的svg_output/应把 alpha 放在受影响的后代画笔、文本 run、图片或受支持效果上。7. 画布格式速查核心契约只负责在该画布上的 SVG 合规画布选择由 canvas-formats.md 独占。注册画布包括ppt1691280×72016:9、ppt431024×7684:3、xiaohongshu1242×16603:4、moments1080×10801:1、story1080×19209:16、wechat900×3832.35:1、banner1920×108016:9、a41240×17541:√2。自定义画布同样使用0 0 W H正整数像素一次导出内所有页面与内部 Layout prototype 共享一个数值画布且落在 PowerPoint 幻灯片范围每边 914,400–51,206,400 EMU约 96–5376 SVG px。无锁的 quick-generate 用其第一张 SVG 建立画布后续每一页必须使用相同viewBox。画布字体基线text/balanced/presentation三种阅读模式下的建议正文字号带与初始字号与short/long/span推导公式也由canvas-formats.md拥有核心文档不重复。8. 页面契约、语义标记与分组8.1 完整页面设计契约§4.0关注点要求可见幻灯片结果完成的svg_output/slide.svg必须包含该幻灯片所有可见文本、图片、形状、图表/表格回退、背景与模板派生布局元素外部视觉资源仅在 SVG 显式引用时有效。模板/控制输入模板、design_spec.md、spec_lock.md只指导创作不依赖它们在页面 SVG 完成后补充可见元素。PPTX 翻译导出器可将已表达的 SVG 内容映射为 DrawingML/原生对象并去重到 Master/Layout/Slide 部件但不得发明 SVG 中不存在的可见内容。排除的包行为演讲者备注、动画、过渡、旁白音频、PPTX 关系与直接原生 PPTX 工作流各自独立拥有不属于 SVG 页面设计契约。页面闭合硬规则最终页面 SVG 是完整的但并不同时拥有整个 PPTX 包其普通内容与 SVG-first Chart/Table 标记是权威。对data-pptx-native-authorityjson内联 JSON 是权威可视子树是派生的、可能近似的预览权威永不迁移到 sidecar。8.2 语义标记契约§4.1语义标记是最小编译器提示扁平页面声明一个根data-pptx-page-role并省略 Master/Layout/layer/placeholder 标记结构化页面从创作开始就携带最终根身份、layer 原子、slot 与原生对象元数据并省略data-pptx-page-role。仅在无专门标记表达页面框行为时使用带稳定id的data-pptx-role。词汇表由 semantic-svg.md 拥有。画布权威新创作写viewBox0 0 W H正整数像素可选根width/height永不覆盖它根svgtransform 被禁止。导出在1 SVG px 9,525 EMU处量化一次。字体可移植性先解析显式用户/模板交付目标否则默认 Windows Microsoft PowerPointlocale 跟随 deck 主语言。导出的 Latin/EA 字面必须在该目标上已安装或获批。创作主机字体只影响 SVG 预览与测量不得用于选择 PPTX 字面。font-face保持禁止字族选择属于规划角色plan-core.md §6.2。图标占位符use>g idcard-benefits-1>赞分享AI 技能人工智能【免费下载链接】ppt-masterAI 把任意文档生成真正可编辑的 PowerPoint —— 原生形状与动画、演讲者备注可合成音频旁白、还能参考你自己的 .pptx 模板,而不是一张张图片 · 何雨果出品项目地址https://gitcode.com/hugohe3/ppt-master点击查看免费下载相关推荐PPT Master 共享 SVG 技术标准解析从条件路由到 fail-closed 导出的完整作者契约PPT Master 共享 SVG 技术标准解析从条件路由到 fail closed 导出的完整作者契约 导读 shared standards.md 是 PAI 技能人工智能AI 应用PPT Master 的 Shared SVG Core Standards 深度解析生成式 SVG 编写的强制契约与保真度边界PPT Master 的 Shared SVG Core Standards 深度解析生成式 SVG 编写的强制契约与保真度边界 导读 shared stanAI 技能人工智能AI 应用ppt-master 的 SVG 兼容契约从语法边界到原生 PPTX 导出的完整技术参考ppt master 的 SVG 兼容契约从语法边界到原生 PPTX 导出的完整技术参考 本篇技术指南围绕 ppt master 中 svg contractAI 技能人工智能上一篇uni-app 跨端 UTS 插件开发完全指南从原生 API 封装到多端分发下一篇如何免费优化Windows风扇控制Fan Control完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →