Files
wehub-resource-sync 8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:09:29 +08:00

377 lines
11 KiB
JSON

{
"$schema": "../_schema.json",
"format": "pptx",
"element": "presentation",
"container": true,
"operations": {
"add": false,
"set": true,
"get": true,
"query": true,
"remove": false
},
"paths": {
"positional": [
"/"
]
},
"note": "Root container. Get returns the presentation node with slide count + theme/master/layout references as children. Not addressable via Add. Set on '/' exposes core document metadata (title/author/subject/keywords/description/category) — written to docProps/core.xml, same source as docx/xlsx. Element-level mutations go through /slide[N], /theme, etc.",
"children": [
{
"element": "slide",
"pathSegment": "slide",
"cardinality": "0..n"
},
{
"element": "slidemaster",
"pathSegment": "slidemaster",
"cardinality": "1..n"
},
{
"element": "theme",
"pathSegment": "theme",
"cardinality": "1"
}
],
"extends": "_shared/root-metadata",
"properties": {
"title": {
"type": "string",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop title=\"Q4 Review\""
],
"readback": "title string",
"enforcement": "report"
},
"author": {
"type": "string",
"aliases": [
"creator"
],
"add": false,
"set": true,
"get": true,
"examples": [
"--prop author=\"Alice\""
],
"readback": "author string",
"enforcement": "report"
},
"keywords": {
"type": "string",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop keywords=\"tag1,tag2\""
],
"readback": "keywords string",
"enforcement": "report"
},
"description": {
"type": "string",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop description=\"Abstract\""
],
"readback": "description string",
"enforcement": "report"
},
"category": {
"type": "string",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop category=Marketing"
],
"readback": "category string",
"enforcement": "report"
},
"lastModifiedBy": {
"type": "string",
"aliases": [
"lastmodifiedby"
],
"add": false,
"set": true,
"get": true,
"examples": [
"--prop lastModifiedBy=\"Bob\""
],
"readback": "last-modified author",
"enforcement": "report"
},
"revisionNumber": {
"type": "string",
"add": false,
"set": true,
"get": true,
"description": "docProps/core.xml Revision field — presentation save counter.",
"examples": [
"--prop revisionNumber=3"
],
"readback": "revision number string",
"enforcement": "report"
},
"created": {
"type": "string",
"description": "creation timestamp from docProps/core.xml.",
"add": false,
"set": false,
"get": true,
"readback": "ISO 8601 timestamp",
"enforcement": "report"
},
"modified": {
"type": "string",
"description": "last-modified timestamp from docProps/core.xml.",
"add": false,
"set": false,
"get": true,
"readback": "ISO 8601 timestamp",
"enforcement": "report"
},
"slideWidth": {
"type": "string",
"aliases": ["width"],
"description": "slide width from <p:sldSz/@cx>, formatted via FormatEmu. Set accepts unit-qualified or raw EMU; setting width or height alone switches @type to 'custom'.",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop slideWidth=30cm",
"--prop slideWidth=720pt"
],
"readback": "unit-qualified length string (e.g. '25.4cm', '720pt')",
"enforcement": "report"
},
"slideHeight": {
"type": "string",
"aliases": ["height"],
"description": "slide height from <p:sldSz/@cy>, formatted via FormatEmu. Set accepts unit-qualified or raw EMU; setting width or height alone switches @type to 'custom'.",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop slideHeight=20cm",
"--prop slideHeight=540pt"
],
"readback": "unit-qualified length string (e.g. '19.05cm', '540pt')",
"enforcement": "report"
},
"slideSize": {
"type": "string",
"description": "slide size preset name derived from <p:sldSz/@type>. Set accepts one of the listed preset names (widescreen | standard | 16:10 | a4 | a3 | letter | b4 | b5 | 35mm | overhead | banner | ledger | custom) and rewrites @cx/@cy + @type accordingly; unlisted names are rejected (use slideWidth/slideHeight for an arbitrary custom size).",
"add": false,
"set": true,
"get": true,
"examples": [
"--prop slideSize=widescreen",
"--prop slideSize=a4"
],
"readback": "preset name: widescreen | standard | 16:10 | a4 | a3 | letter | b4 | b5 | 35mm | overhead | banner | ledger | custom",
"enforcement": "report"
},
"defaultFont": {
"type": "string",
"description": "default minor (body) font from the first slide master's theme FontScheme.",
"add": false,
"set": false,
"get": true,
"readback": "default text font family name",
"enforcement": "report"
},
"extended.application": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "from docProps/app.xml application identifier (e.g. \"Microsoft PowerPoint\").",
"readback": "application string",
"enforcement": "report"
},
"compatMode": {
"type": "bool",
"aliases": ["compatibilitymode"],
"add": false,
"set": true,
"get": true,
"description": "presentation @compatMode flag — true when the file is in legacy-compatibility mode.",
"examples": [
"--prop compatMode=true"
],
"readback": "true when compat mode is on",
"enforcement": "report"
},
"firstSlideNum": {
"type": "number",
"aliases": ["firstslidenumber"],
"add": false,
"set": true,
"get": true,
"description": "presentation @firstSlideNum — slide number of the first slide (default 1).",
"examples": [
"--prop firstSlideNum=10"
],
"readback": "integer",
"enforcement": "report"
},
"rtl": {
"type": "bool",
"add": false,
"set": true,
"get": false,
"description": "Set-only input alias for presentation @rtl (right-to-left reading order). Get exposes the same OOXML attribute under the canonical key `direction` ('rtl' when true), matching docx convention. Asymmetric by design — set with `rtl=true|false`, read via `direction`.",
"examples": [
"--prop rtl=true"
],
"enforcement": "report"
},
"direction": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "Get-only canonical key for presentation reading direction. Emits 'rtl' when @rtl=true is set; absent otherwise. To set, use the input-only `rtl=true|false` key.",
"readback": "'rtl' when right-to-left; key absent for default left-to-right",
"enforcement": "report"
},
"print.colorMode": {
"type": "string",
"aliases": ["printcolormode"],
"add": false,
"set": true,
"get": true,
"description": "PrintingProperties color mode. Set accepts: color|clr, grayscale|gray, blackAndWhite|bw.",
"examples": [
"--prop print.colorMode=gray",
"--prop print.colorMode=color"
],
"readback": "color mode token (clr | gray | bw)",
"enforcement": "report"
},
"print.frameSlides": {
"type": "bool",
"add": false,
"set": true,
"get": true,
"description": "PrintingProperties FrameSlides flag — print a thin border around each slide.",
"examples": [
"--prop print.frameSlides=true"
],
"readback": "true when set",
"enforcement": "report"
},
"print.hiddenSlides": {
"type": "bool",
"add": false,
"set": true,
"get": true,
"description": "PrintingProperties HiddenSlides flag — include hidden slides in printed output.",
"examples": [
"--prop print.hiddenSlides=true"
],
"readback": "true when set",
"enforcement": "report"
},
"print.what": {
"type": "string",
"aliases": ["printwhat"],
"add": false,
"set": true,
"get": true,
"description": "PrintingProperties PrintWhat — what gets printed. Set accepts shorthand (slides, handouts, notes, outline) and explicit OOXML tokens (handouts1, handouts2, handouts3, handouts4, handouts6, handouts9). Bare `handouts` is an alias for handouts1. Get returns the OOXML token (e.g. handouts1).",
"examples": [
"--prop print.what=handouts",
"--prop print.what=handouts4",
"--prop print.what=notes"
],
"readback": "print-what enum inner text (slides | handouts1..9 | notes | outline)",
"enforcement": "report"
},
"print.scaleToFitPaper": {
"type": "bool",
"add": false,
"set": true,
"get": true,
"description": "PrintingProperties ScaleToFitPaper flag — scale slides to fill the paper page.",
"examples": [
"--prop print.scaleToFitPaper=true"
],
"readback": "true when set",
"enforcement": "report"
},
"show.loop": {
"type": "bool",
"aliases": ["showloop"],
"add": false,
"set": true,
"get": true,
"description": "ShowProperties Loop flag — auto-restart slideshow when reaching the end.",
"examples": [
"--prop show.loop=true"
],
"readback": "true when set",
"enforcement": "report"
},
"show.narration": {
"type": "bool",
"aliases": ["shownarration"],
"add": false,
"set": true,
"get": true,
"description": "ShowProperties ShowNarration flag — play recorded narration during slideshow.",
"examples": [
"--prop show.narration=true"
],
"readback": "true|false",
"enforcement": "report"
},
"show.animation": {
"type": "bool",
"aliases": ["showanimation"],
"add": false,
"set": true,
"get": true,
"description": "ShowProperties ShowAnimation flag — play animations during slideshow.",
"examples": [
"--prop show.animation=true"
],
"readback": "true|false",
"enforcement": "report"
},
"show.useTimings": {
"type": "bool",
"aliases": ["usetimings", "show.usetimings"],
"add": false,
"set": true,
"get": true,
"description": "ShowProperties UseTimings flag — use stored slide timings during slideshow.",
"examples": [
"--prop show.useTimings=true"
],
"readback": "true|false",
"enforcement": "report"
},
"removePersonalInfo": {
"type": "bool",
"aliases": ["removepersonalinfoonsave"],
"add": false,
"set": true,
"get": true,
"description": "ExtendedProperties RemovePersonalInfoOnSave — strip author/last-saved-by metadata on save.",
"examples": [
"--prop removePersonalInfo=true"
],
"readback": "true when set",
"enforcement": "report"
}
}
}