项目文件夹

文件
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

803 行
24 KiB
JSON

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
{
"$schema": "../_schema.json",
"format": "docx",
"element": "run",
"elementAliases": [
"r"
],
"parent": "paragraph",
"operations": {
"add": true,
"set": true,
"get": true,
"remove": true
},
"paths": {
"stable": [
"/body/p[@paraId=ID]/r[N]"
],
"positional": [
"/body/p[N]/r[N]"
]
},
"note": "effective.* keys (effective.size, effective.bold, effective.color, ...) are read-only inheritance-resolved values: the run does not set the property directly, but resolves it by walking the run/paragraph style chain up to docDefaults. Each carries a paired effective.X.src pointer (e.g. \"/styles/Heading1\" or \"/docDefaults\") so callers can locate the writing layer. effective.* never appears when the run has the corresponding direct value — direct always wins. Run-level formatting can also be applied by character offset without addressing individual runs: `set <paragraph-or-body-path> --prop range=START:END --prop bold=true` (0-based, half-open; several disjoint spans as `range=0:5,12:15`) splits the run(s) covering each span and applies the format props to just that slice — the offset-based sibling of `find` (which locates the span by text). Offsets are relative to the concatenated run text of the path scope: a /body/p[N] path is that paragraph, /body spans every paragraph. Mind the two bases: the path `[N]` positions are 1-based (XPath-style, `/p[2]` = 2nd paragraph); range START:END are 0-based half-open (`range=0:1` = first character). `find` and `range` are mutually exclusive on one call; `range` is run-level formatting only (no text=/replace/revision — use find or an explicit run path for those).",
"extends": [
"_shared/run",
"_shared/run.docx-pptx",
"_shared/run.docx-xlsx"
],
"properties": {
"highlight": {
"type": "color",
"description": "Word built-in highlight color. Accepts named colors (yellow, green, cyan, magenta, blue, red, ...).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop highlight=yellow"
],
"readback": "highlight color name",
"enforcement": "report"
},
"strike": {
"type": "bool",
"description": "single strikethrough.",
"aliases": [
"strikethrough",
"font.strike",
"font.strikethrough"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop strike=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"dstrike": {
"type": "bool",
"description": "double strikethrough.",
"aliases": [
"doublestrike",
"doubleStrike"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop dstrike=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"caps": {
"type": "bool",
"description": "render text in all caps (display only; underlying text unchanged).",
"aliases": [
"allCaps"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop caps=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"smallcaps": {
"type": "bool",
"description": "render lowercase as small caps.",
"aliases": [
"smallCaps"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop smallcaps=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"vanish": {
"type": "bool",
"description": "hidden text (not rendered, but present in the file).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop vanish=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"outline": {
"type": "bool",
"description": "outline (text effect).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop outline=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"shadow": {
"type": "bool",
"description": "shadow (text effect).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop shadow=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"emboss": {
"type": "bool",
"description": "emboss (text effect).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop emboss=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"imprint": {
"type": "bool",
"description": "imprint / engrave (text effect).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop imprint=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"noproof": {
"type": "bool",
"description": "exclude this run from spell/grammar checking.",
"aliases": [
"noProof"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop noproof=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"rtl": {
"type": "bool",
"description": "right-to-left text (legacy alias of 'direction'). Get surfaces this as direction=rtl|ltr.",
"add": true,
"set": true,
"get": false,
"examples": [
"--prop rtl=true"
],
"enforcement": "strict"
},
"direction": {
"type": "enum",
"values": [
"ltr",
"rtl"
],
"description": "run reading direction. Use 'rtl' for Arabic / Hebrew, 'ltr' to clear. Canonical key for run direction; matches paragraph/section vocabulary.",
"aliases": [
"dir"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop direction=rtl"
],
"readback": "rtl | ltr",
"enforcement": "strict"
},
"font.cs": {
"type": "string",
"description": "Complex-script font slot (rFonts/cs) — Arabic / Hebrew / Thai typefaces.",
"aliases": [
"font.complexscript",
"font.complex"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.cs=\"Arabic Typesetting\""
],
"enforcement": "report"
},
"font.ea": {
"type": "string",
"description": "East-Asian font slot (rFonts/eastAsia) — Chinese / Japanese / Korean typefaces.",
"aliases": [
"font.eastasia",
"font.eastasian"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.ea=\"メイリオ\""
],
"enforcement": "report"
},
"font.latin": {
"type": "string",
"description": "Latin font slots (rFonts/ascii + hAnsi) — ASCII / Western text.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.latin=Calibri"
],
"enforcement": "report"
},
"font.hint": {
"type": "string",
"description": "Font slot hint (rFonts/hint) — tells Word which slot (eastAsia / cs / default) to use for ambiguous characters (CJK digits, punctuation) so they render with the intended font. Values: eastAsia, cs, default.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.hint=eastAsia"
],
"enforcement": "report"
},
"font.asciiTheme": {
"type": "string",
"description": "Theme font binding for the ascii slot (rFonts/asciiTheme). Values: minorHAnsi, majorHAnsi, minorEastAsia, majorEastAsia, minorBidi, majorBidi.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.asciiTheme=minorHAnsi"
],
"enforcement": "report"
},
"font.hAnsiTheme": {
"type": "string",
"description": "Theme font binding for the hAnsi slot (rFonts/hAnsiTheme).",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.hAnsiTheme=minorHAnsi"
],
"enforcement": "report"
},
"font.eaTheme": {
"type": "string",
"description": "Theme font binding for the East-Asia slot (rFonts/eastAsiaTheme). Values: minorEastAsia, majorEastAsia.",
"aliases": [
"font.eastAsiaTheme"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.eaTheme=minorEastAsia"
],
"enforcement": "report"
},
"font.csTheme": {
"type": "string",
"description": "Theme font binding for the complex-script slot (rFonts/cstheme). Values: minorBidi, majorBidi.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop font.csTheme=minorBidi"
],
"enforcement": "report"
},
"bold.cs": {
"type": "bool",
"description": "complex-script bold (<w:bCs/>). Word renders Arabic / Hebrew bold via this flag, NOT <w:b/>. Required for Arabic bold to actually render.",
"aliases": [
"font.bold.cs",
"boldcs"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop bold.cs=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"italic.cs": {
"type": "bool",
"description": "complex-script italic (<w:iCs/>). Same role as bold.cs for italic styling on Arabic / Hebrew text.",
"aliases": [
"font.italic.cs",
"italiccs"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop italic.cs=true"
],
"readback": "true | false",
"enforcement": "strict"
},
"size.cs": {
"type": "font-size",
"description": "complex-script font size (<w:szCs/>). Independent from the bare 'size' (<w:sz/>) which only sizes Latin text.",
"aliases": [
"font.size.cs",
"sizecs"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop size.cs=14pt",
"--prop size.cs=14"
],
"readback": "unit-qualified, e.g. \"14pt\"",
"enforcement": "strict"
},
"lang.latin": {
"type": "string",
"description": "Latin-script language tag (<w:lang w:val=.../>). e.g. en-US, fr-FR.",
"aliases": [
"lang",
"lang.val"
],
"add": false,
"set": true,
"get": true,
"examples": [
"--prop lang.latin=en-US"
],
"readback": "BCP-47 / xml:lang tag, e.g. \"en-US\"",
"enforcement": "lenient"
},
"lang.ea": {
"type": "string",
"description": "EastAsian-script language tag (<w:lang w:eastAsia=.../>). e.g. zh-CN, ja-JP.",
"aliases": [
"lang.eastAsia",
"lang.eastAsian"
],
"add": false,
"set": true,
"get": true,
"examples": [
"--prop lang.ea=zh-CN"
],
"readback": "BCP-47 / xml:lang tag",
"enforcement": "lenient"
},
"lang.cs": {
"type": "string",
"description": "ComplexScript language tag (<w:lang w:bidi=.../>). e.g. ar-SA, he-IL.",
"aliases": [
"lang.complexScript",
"lang.bidi"
],
"add": false,
"set": true,
"get": true,
"examples": [
"--prop lang.cs=ar-SA"
],
"readback": "BCP-47 / xml:lang tag",
"enforcement": "lenient"
},
"vertAlign": {
"type": "enum",
"description": "vertical text alignment. Values: superscript|super, subscript|sub, baseline.",
"aliases": [
"vertalign"
],
"values": [
"superscript",
"super",
"subscript",
"sub",
"baseline"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop vertAlign=superscript"
],
"readback": "n/a (surfaces as superscript/subscript flag)",
"enforcement": "report"
},
"kern": {
"type": "int",
"description": "kerning activation threshold (<w:kern w:val=.../>): font sizes at or above this point size get automatic pair kerning. Value is an integer in half-points (28 = 14pt threshold); a 'pt' suffix is NOT accepted (unlike pptx kern). Valid range 0-3277 half-points (~164pt); an empty value clears it.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop kern=28"
],
"readback": "integer half-points, e.g. \"28\"",
"enforcement": "report"
},
"position": {
"type": "length",
"description": "vertical baseline shift (<w:position w:val=.../>): positive raises text above the baseline, negative lowers it, 0 = baseline. Keeps the full glyph size (distinct from vertAlign=super|sub, which also shrinks the glyph). Accepts a 'pt' value (e.g. 6pt) or a bare integer in half-points; an empty value clears it.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop position=6pt",
"--prop position=-3pt"
],
"readback": "unit-qualified pt, e.g. \"6pt\"",
"enforcement": "report"
},
"charSpacing": {
"type": "length",
"description": "character spacing (letter spacing) in points. Stored as twips × 20.",
"aliases": [
"charspacing",
"letterspacing",
"letterSpacing",
"spacing"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop charSpacing=1pt",
"--prop charspacing=2"
],
"readback": "unit-qualified pt, e.g. \"1pt\"",
"enforcement": "report"
},
"fill": {
"type": "color",
"description": "run background shading (w:shd @fill). A solid background reads back as this canonical key (matching table cells and paragraphs). Accepts a solid color — hex ('FF0000'), '#'-prefixed hex ('#FF0000'), named color ('red'), or rgb(...) notation. For a true pattern shading (pct*/stripe/cross) or a foreground pattern color, pass the legacy `shading`/`shd` triplet form 'PATTERN;FILL[;COLOR]' instead; those read back via the shading.* detail keys. Distinct from `highlight` (w:highlight marker) and the w14 text shadow.",
"aliases": [
"shading",
"shd"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop fill=FFFF00",
"--prop fill=#FF0000",
"--prop shd=\"pct25;FF0000;0000FF\""
],
"readback": "#RRGGBB uppercase",
"enforcement": "report"
},
"shading": {
"type": "color",
"description": "background shading color or '<pattern>;<fill>;<color>' triplet. Set-side alias for `fill`; a solid background reads back via the canonical `fill` key.",
"aliases": [
"shd"
],
"add": true,
"set": true,
"get": false,
"examples": [
"--prop shading=FFFF00",
"--prop shd=clear;FFFF00;auto"
],
"enforcement": "report"
},
"shading.val": {
"type": "string",
"description": "shading pattern value. Emitted on get only for a true pattern shading (pct*/stripe/cross); a solid background reads back as the canonical `fill` key. Add/Set use `fill`/`shading`/`shd`.",
"add": false,
"set": false,
"get": true,
"readback": "shading pattern token (pattern shading only)",
"enforcement": "report"
},
"shading.fill": {
"type": "string",
"description": "shading fill color hex. Emitted on get only for a true pattern shading; a solid background reads back as the canonical `fill` key.",
"add": false,
"set": false,
"get": true,
"readback": "#RRGGBB (pattern shading only)",
"enforcement": "report"
},
"shading.color": {
"type": "string",
"description": "shading foreground (pattern) color hex. Pattern shading only.",
"add": false,
"set": false,
"get": true,
"readback": "#RRGGBB (pattern shading only)",
"enforcement": "report"
},
"textOutline": {
"type": "string",
"description": "w14 text outline 'WIDTHpt-COLOR' (e.g. '1pt-FF0000'). Width first, color second; '-' or ';' separator.",
"aliases": [
"textoutline"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop textOutline=1pt-FF0000"
],
"readback": "\"{width}pt\" or \"{width}pt;#RRGGBB\"",
"enforcement": "report"
},
"textFill": {
"type": "string",
"description": "w14 text fill (color or gradient spec).",
"aliases": [
"textfill"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop textFill=FF0000"
],
"readback": "#RRGGBB (solid) | C1;C2;angle (gradient) | radial:C1;C2",
"enforcement": "report"
},
"w14shadow": {
"type": "string",
"description": "w14 text shadow effect.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop w14shadow=FF0000"
],
"readback": "#RRGGBB;blur_pt;angle_deg;dist_pt;opacity",
"enforcement": "report"
},
"w14glow": {
"type": "string",
"description": "w14 text glow effect.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop w14glow=FF0000"
],
"readback": "#RRGGBB;radius_pt;opacity",
"enforcement": "report"
},
"w14reflection": {
"type": "string",
"description": "w14 text reflection effect.",
"add": true,
"set": true,
"get": true,
"examples": [
"--prop w14reflection=true"
],
"readback": "semicolon-delimited reflection parameters",
"enforcement": "report"
},
"effective.size.src": {
"type": "string",
"description": "source pointer for effective.size — path of the writing layer (e.g. \"/styles/Heading1\", \"/docDefaults\"). Documented but not emitted today; only the resolved `effective.size` value surfaces on Get.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned — only effective.size emits today)",
"enforcement": "report"
},
"effective.font.ascii": {
"type": "string",
"description": "inheritance-resolved Latin/ASCII font slot (read-only).",
"add": false,
"set": false,
"get": true,
"readback": "font family name",
"enforcement": "report"
},
"effective.font.ascii.src": {
"type": "string",
"description": "source pointer for effective.font.ascii. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.font.eastAsia": {
"type": "string",
"description": "inheritance-resolved East-Asian font slot (read-only).",
"add": false,
"set": false,
"get": true,
"readback": "font family name",
"enforcement": "report"
},
"effective.font.eastAsia.src": {
"type": "string",
"description": "source pointer for effective.font.eastAsia. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.font.hAnsi": {
"type": "string",
"description": "inheritance-resolved High-ANSI font slot (read-only).",
"add": false,
"set": false,
"get": true,
"readback": "font family name",
"enforcement": "report"
},
"effective.font.hAnsi.src": {
"type": "string",
"description": "source pointer for effective.font.hAnsi. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.font.cs": {
"type": "string",
"description": "inheritance-resolved complex-script font slot (read-only).",
"add": false,
"set": false,
"get": true,
"readback": "font family name",
"enforcement": "report"
},
"effective.font.cs.src": {
"type": "string",
"description": "source pointer for effective.font.cs. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.bold.src": {
"type": "string",
"description": "source pointer for effective.bold. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.italic": {
"type": "bool",
"description": "inheritance-resolved italic (read-only). Surfaced only when the run does not set 'italic' directly.",
"add": false,
"set": false,
"get": true,
"readback": "true | false",
"enforcement": "report"
},
"effective.italic.src": {
"type": "string",
"description": "source pointer for effective.italic. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.color.src": {
"type": "string",
"description": "source pointer for effective.color. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.underline": {
"type": "string",
"description": "inheritance-resolved underline style (read-only).",
"add": false,
"set": false,
"get": true,
"readback": "underline style name",
"enforcement": "report"
},
"effective.underline.src": {
"type": "string",
"description": "source pointer for effective.underline. Documented but not emitted today.",
"add": false,
"set": false,
"get": false,
"readback": "n/a (planned)",
"enforcement": "report"
},
"effective.rtl": {
"type": "bool",
"description": "inheritance-resolved right-to-left flag (read-only). Emitted even when 'rtl' is set directly so callers can compare direct vs cascade-resolved state.",
"add": false,
"set": false,
"get": true,
"readback": "true | false",
"enforcement": "report"
},
"effective.rtl.src": {
"type": "string",
"description": "source pointer for effective.rtl.",
"add": false,
"set": false,
"get": true,
"readback": "style/docDefaults path",
"enforcement": "report"
},
"dirty": {
"type": "bool",
"add": false,
"set": false,
"get": true,
"description": "true when the run is flagged as dirty (rPr/dirty=1) — Word treats it as needing reflow on next open.",
"readback": "true|false",
"enforcement": "report"
},
"font.ascii": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "individual rFonts @ascii slot readback. On Add/Set use the unified `font.latin` key (which writes both ascii + hAnsi).",
"readback": "font family name",
"enforcement": "report"
},
"font.eastAsia": {
"type": "string",
"add": false,
"set": false,
"get": false,
"description": "legacy alias for the rFonts @eastAsia slot. Get emits only the canonical `font.ea` key (for runs, paragraphs, and styles alike); use `font.ea` on Add/Set/Get.",
"readback": "see font.ea",
"enforcement": "report"
},
"font.hAnsi": {
"type": "string",
"add": false,
"set": false,
"get": true,
"description": "individual rFonts @hAnsi slot readback. On Add/Set use the unified `font.latin` key (which writes both ascii + hAnsi).",
"readback": "font family name",
"enforcement": "report"
},
"color": {
"type": "color",
"aliases": [
"font.color"
],
"add": true,
"set": true,
"get": true,
"examples": [
"--prop color=#FF0000",
"--prop color=accent1"
],
"readback": "#RRGGBB uppercase, or bare scheme name (accent1). Theme-linked colors (e.g. hyperlink runs) read back as '#RRGGBB;themeColor=NAME' — the compound form is accepted back by add/set and preserves the w:themeColor linkage on round-trip.",
"enforcement": "strict"
}
}
}