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

105 lines
3.6 KiB
JSON

{
"$schema": "../_schema.json",
"format": "docx",
"element": "comment",
"parent": "paragraph|run",
"addParent": [
"/body/p[N]",
"/body/p[N]/r[M]"
],
"operations": {
"add": true,
"set": true,
"get": true,
"query": true,
"remove": true
},
"paths": {
"stable": [
"/comments/comment[@commentId=N]"
],
"positional": [
"/comments/comment[N]"
]
},
"note": "Comments live in WordprocessingCommentsPart. Anchor: CommentRangeStart/End surround the target run or paragraph; CommentReference marks the inline anchor.",
"extends": [
"_shared/comment",
"_shared/comment.docx-pptx"
],
"properties": {
"id": {
"type": "number",
"description": "OOXML comment id (w:comment/@w:id). Assigned by the writer; surfaces only on Get/Query.",
"add": false,
"set": false,
"get": true,
"readback": "integer comment ID",
"enforcement": "report"
},
"anchoredTo": {
"type": "string",
"description": "path of the paragraph or run the comment is anchored to (resolved from CommentRangeStart).",
"add": false,
"set": false,
"get": true,
"readback": "path of anchored paragraph/run",
"enforcement": "report"
},
"runStart": {
"type": "int",
"description": "1-based run index inside the parent paragraph where the comment range starts. N=0 (default) anchors the comment to paragraph start; N>=1 places <w:commentRangeStart/> immediately after the Nth run so dump→batch round-trip restores intra-paragraph anchor positions.",
"aliases": ["runstart"],
"add": true,
"set": false,
"get": false,
"examples": [
"--prop runStart=2"
],
"readback": "n/a (encoded inline; surfaces via anchoredTo path)",
"enforcement": "report"
},
"range": {
"type": "bool",
"description": "whether the comment spans a text range (default true: emits <w:commentRangeStart/> + <w:commentRangeEnd/> around the anchor plus a <w:commentReference/> run). Pass range=false for a zero-width / point-anchored comment that carries ONLY <w:commentReference/> — used by dump→batch to preserve reference-only comments without synthesizing a spurious range.",
"aliases": ["pointRef", "pointref"],
"add": true,
"set": false,
"get": false,
"examples": [
"--prop range=false",
"--prop pointRef=true"
],
"readback": "n/a (encoded inline; affects emitted markers)",
"enforcement": "report"
},
"parentId": {
"type": "number",
"description": "w:id of the comment this one replies to. Threads the reply under its parent in Word's review pane via word/commentsExtended.xml (w15:paraIdParent, keyed by the comment paragraphs' w14:paraId). Get returns the parent comment's w:id on replies only.",
"aliases": ["parentid"],
"add": true,
"set": false,
"get": true,
"examples": [
"--prop parentId=1"
],
"readback": "parent comment w:id (replies only)",
"enforcement": "report"
},
"done": {
"type": "bool",
"description": "resolved-state of the comment (Word's 'Resolve'), stored in word/commentsExtended.xml as w15:done. Get returns done=true|false on every comment, so 'query comment[done=false]' lists unresolved comments.",
"aliases": ["resolved"],
"add": true,
"set": true,
"get": true,
"examples": [
"set \"/comments/comment[1]\" --prop done=true",
"--prop done=false"
],
"readback": "true|false",
"enforcement": "report"
}
}
}