Skip to content

feature: Paragraph.text includes hyperlink text#302

Closed
desecho wants to merge 0 commit into
python-openxml:masterfrom
savoirfairelinux:master
Closed

feature: Paragraph.text includes hyperlink text#302
desecho wants to merge 0 commit into
python-openxml:masterfrom
savoirfairelinux:master

Conversation

@desecho
Copy link
Copy Markdown

@desecho desecho commented Jun 13, 2016

Fixes issue #85

@desecho desecho closed this Mar 17, 2017
loadfix pushed a commit to loadfix/python-docx that referenced this pull request May 29, 2026
`docx.kit.patch.apply(doc, ops)` applies a list of RFC-6902 JSON
Patch operations (`add` / `remove` / `replace` / `move` / `copy` /
`test`) against a stable, addressable subset of the document's
structural model — paragraphs (by index or `w14:paraId`), table
cell text, and section page orientation. All ops are validated
against an in-memory shadow of the document before any mutation
reaches the live tree, so a failing op leaves the document
untouched (all-or-nothing semantics).

Path scheme:

* `/paragraphs/N[/text|/style]` — N is 0-indexed; negative N counts
  from the end; `-` after `add` appends a new paragraph (value is a
  `{"text": ..., "style": ...}` mapping).
* `/by_id/<paraId>[/text|/style]` — keyed on the stable
  `w14:paraId` Word stamps on every paragraph.
* `/tables/N/rows/M/cells/K/text`.
* `/sections/N/page_orientation` — `"portrait"` / `"landscape"`.

Failures raise a `PatchError` subclass: `PathNotFound`,
`PatchTestFailed`, or `InvalidOp`. Returns `None` on success.

The implementation vendors a small RFC-6902 dispatcher; no
`jsonpatch` PyPI dependency is added. Stdlib-only.

closes python-openxml#302

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
loadfix added a commit to loadfix/python-docx that referenced this pull request May 29, 2026
feat(docx-kit): patch — RFC-6902 JSON-patch over the structural model (python-openxml#302)
loadfix pushed a commit to loadfix/python-docx that referenced this pull request Jun 1, 2026
`docx.kit.patch.apply(doc, ops)` applies a list of RFC-6902 JSON
Patch operations (`add` / `remove` / `replace` / `move` / `copy` /
`test`) against a stable, addressable subset of the document's
structural model — paragraphs (by index or `w14:paraId`), table
cell text, and section page orientation. All ops are validated
against an in-memory shadow of the document before any mutation
reaches the live tree, so a failing op leaves the document
untouched (all-or-nothing semantics).

Path scheme:

* `/paragraphs/N[/text|/style]` — N is 0-indexed; negative N counts
  from the end; `-` after `add` appends a new paragraph (value is a
  `{"text": ..., "style": ...}` mapping).
* `/by_id/<paraId>[/text|/style]` — keyed on the stable
  `w14:paraId` Word stamps on every paragraph.
* `/tables/N/rows/M/cells/K/text`.
* `/sections/N/page_orientation` — `"portrait"` / `"landscape"`.

Failures raise a `PatchError` subclass: `PathNotFound`,
`PatchTestFailed`, or `InvalidOp`. Returns `None` on success.

The implementation vendors a small RFC-6902 dispatcher; no
`jsonpatch` PyPI dependency is added. Stdlib-only.

closes python-openxml#302

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
loadfix added a commit to loadfix/python-docx that referenced this pull request Jun 1, 2026
feat(docx-kit): patch — RFC-6902 JSON-patch over the structural model (python-openxml#302)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant