forked from scanny/python-pptx
-
Notifications
You must be signed in to change notification settings - Fork 0
[Epic] Threaded Comments & Review #25
Copy link
Copy link
Open
Labels
area:commentsFeature area: commentsFeature area: commentsepicMulti-feature roadmap epicMulti-feature roadmap epicprior-art:noneNo known prior art — greenfieldNo known prior art — greenfieldpriority:P1Important but not urgentImportant but not urgent
Milestone
Metadata
Metadata
Assignees
Labels
area:commentsFeature area: commentsFeature area: commentsepicMulti-feature roadmap epicMulti-feature roadmap epicprior-art:noneNo known prior art — greenfieldNo known prior art — greenfieldpriority:P1Important but not urgentImportant but not urgent
Problem
Slide comments are completely absent from python-pptx. The content-type registry already declares
commentAuthorsandcommentsparts but there are no part classes, no Python API, and no read path. Modern PowerPoint uses threaded comments (replies, @mentions) under thep188:schema (Office 2017+), distinct from the legacy single-comment<p:cm>schema. Programmatic deck-review automation (generating a deck, seeding it with reviewer questions, harvesting reviewer responses) is impossible today. Demand is small but pure (scanny/python-pptx#756, scanny/python-pptx#487, scanny/python-pptx#538).Sub-features
CommentAuthorpart class wrappingcommentAuthors.xmlCommentandCommentReplypart classes for legacy<p:cm>and modern<p188:cm>Slide.commentscollection with.add(text, author, anchor=None),.remove(comment), iterationComment.repliesfor threaded reply chains (modern schema)Comment.author,.text,.created_at,.anchor_position(slide-relative xy if anchored to a shape, else null)Comment.resolve()for the resolution-state flagShape.commentsfilter<p:cm>siblings on round-tripPrior art
<p:cm>legacy comments incommentsN.xml. Modern threaded: namespacehttp://schemas.microsoft.com/office/powerpoint/2018/8/mainwith<p188:cm>incommentsExt.xml. Authors:commentAuthors.xmlwith<p:cmAuthor>IDs referenced from comments.src/pptx/parts/comments.py, newsrc/pptx/oxml/comments.py, register content-types insrc/pptx/__init__.pyandsrc/pptx/opc/constants.py.Acceptance criteria
slide.comments.add("Looks great!", author="Reviewer Name")shows the comment in PowerPoint's Review pane.comment.replies.add(...)) round-trips through PPT Mac/Win.Effort: M
Two-part work (legacy + modern schema). Authors part is small; comments part has the schema-version branch.