Skip to content

Support in-place publishing page conversion with existing parameters - #5490

Draft
TaoziZ03 wants to merge 8 commits into
pnp:devfrom
TaoziZ03:codex/ccd1073-module-dependency
Draft

TaoziZ03 wants to merge 8 commits into
pnp:devfrom
TaoziZ03:codex/ccd1073-module-dependency

Conversation

@TaoziZ03

@TaoziZ03 TaoziZ03 commented Oct 10, 2026 •

Copy link
Copy Markdown

Type

  • Bug Fix
  • New Feature
  • Sample

Related changes

Companion runtime behavior: pnp/pnpframework#1290.

What is in this Pull Request?

ConvertTo-PnPPage -PublishingPage supports conversion within the currently connected Web. The existing -TargetWebUrl and -TargetConnection parameters select an explicit target, and the cmdlet's public parameter surface is unchanged.

The companion Framework determines the transformation mode from the actual Site and Web identities. Same-Web conversion requires an existing writable Site Pages library, retains the source publishing page, and rejects an existing target even with -Overwrite.

The local Framework reference declares its required runtime dependencies and uses the selected build configuration. Help, examples, and the changelog list publishing pages among the page types supported for in-place conversion.

Validation

  • Debug build against the local companion Framework passed: 0 warnings, 0 errors.
  • A fresh staged module executed HTML transformation with private dependencies, verified the loaded companion DLL by SHA-256, and validated all 15 documented examples against the compiled command.
  • PublishingPage remains optional; no additional in-place switch or Framework option exists.
  • Companion Framework tests: 25 passed, 0 failed, 0 skipped; all four target-framework builds passed.
  • Live Enterprise Wiki tests passed for same-Web conversion without target parameters and cross-site conversion through both existing target parameters.
  • Three non-Enterprise-Wiki Publishing pages were each tested in-site and cross-site: rich ArticleLeft, simple ArticleLeft with List web part, and custom IPKit_Home. All six generated native modern drafts and completed editor save/exit. All original source hashes/identities/versions remained unchanged.
  • The rich ArticleLeft test exposed missing-file image JSON failure. The companion Framework now returns numeric defaults and a warning for a missing image. All 31 checked body blocks, 8 tables, and 3 Image web parts persisted; the 404 image references remain unresolved.
  • IPKit_Home converted using the existing -PageLayoutMapping parameter and a mapping verified against its body field and zone IDs. All 16 checked body blocks persisted. Default automatic mapping fails for this tenant's catalog item, which lacks PublishingAssociatedContentType.
  • Cross-site retained existing missing-target-list skip behavior (1 List web part on each ArticleLeft fixture; 4 on IPKit_Home). Same-Web retained the lists. Default Script Editor behavior is unchanged. These tests do not claim full page/asset/list/script fidelity.
  • Existing-target -Overwrite, missing Site Pages, and different-Web/same-site-collection negatives behaved as expected. Failed mapping runs produced no target page.
  • Enterprise Wiki SVG remains a readable source reference under the existing copy allow-list.
  • git diff --check passed.
  • The ordinary package build has an independently observed CS1705: Framework 1.21.49-nightly references Core assembly 1.18.51.0 while the feed resolves Core 1.18.47-nightly. Local companion-build validation passed.

This remains a draft pending the companion Framework runtime release. Live acceptance is scoped to the tested tenant, stock Enterprise Wiki/ArticleLeft layouts, and the supplied IPKit_Home mapping.

@TaoziZ03 TaoziZ03 changed the title Add in-place publishing page support to ConvertTo-PnPPage Support in-place publishing page conversion with existing parameters Oct 10, 2026

This branch has not been deployed

No deployments
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.

2 participants