You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{ClientSideWebPartData}|Web part data defining the modern web part configuration
348
+
{ClientSideWebPartData}|Web part data defining the client side web part configuration
315
349
#### Output parameters
316
350
317
351
Name|Description
318
352
:-----|:----------
319
-
{JsonProperties}|Json properties to configure the modern web part
353
+
{JsonProperties}|Json properties to configure the client side web part
320
354
### DocumentEmbedLookup
321
355
322
356
**Description:** Does lookup a file based on the given server relative path and return needed properties of the file. Returns null if file was not found.
@@ -447,7 +481,7 @@ Name|Description
447
481
{ImageSources}|ImageSources nodes to be added in the serverProcessedContent node
448
482
### TextCleanUpSummaryLinks
449
483
450
-
**Description:** Rewrites summarylinks web part html to be compliant with the html supported by the modern modern text part.
484
+
**Description:** Rewrites summarylinks web part html to be compliant with the html supported by the client side text part.
{CleanedText}|Html compliant with modern text part
497
+
{CleanedText}|Html compliant with client side text part
464
498
### SummaryLinksToQuickLinksProperties
465
499
466
500
**Description:** Maps summarylinks web part data into a properties collection and supporting serverProcessedContent nodes for the quicklinks web part
@@ -530,6 +564,61 @@ Name|Description
530
564
Name|Description
531
565
:-----|:----------
532
566
{return value}|String provided as input
567
+
### Prefix
568
+
569
+
**Description:** Prefixes the input text with another text. The applyIfContentIsEmpty parameter controls if the prefix also needs to happen when the actual content is empty
570
+
571
+
**Example:**`Prefix('<H1>Prefix some extra text</H1>', {PublishingPageContent}, 'false')`
572
+
573
+
#### Input parameters
574
+
575
+
Name|Description
576
+
:-----|:----------
577
+
{'prefix string'}|Static input string which will be used as prefix
578
+
{PublishingPageContent}|The actual publishing page HTML field content to prefix
579
+
{'static boolean value'}|Static bool ('true', 'false') to indicate if the prefixing still needs to happen when the {PublishingPageContent} field content is emty
580
+
#### Output parameters
581
+
582
+
Name|Description
583
+
:-----|:----------
584
+
{return value}|Value of {PublishingPageContent} prefixed with the provided prefix value
585
+
### Suffix
586
+
587
+
**Description:** Suffixes the input text with another text. The applyIfContentIsEmpty parameter controls if the suffix also needs to happen when the actual content is empty
588
+
589
+
**Example:**`Suffix('<H1>Suffix some extra text</H1>', {PublishingPageContent}, 'false')`
590
+
591
+
#### Input parameters
592
+
593
+
Name|Description
594
+
:-----|:----------
595
+
{'suffix string'}|Static input string which will be used as suffix
596
+
{PublishingPageContent}|The actual publishing page HTML field content to suffix
597
+
{'static boolean value'}|Static bool ('true', 'false') to indicate if the suffixing still needs to happen when the {PublishingPageContent} field content is emty
598
+
#### Output parameters
599
+
600
+
Name|Description
601
+
:-----|:----------
602
+
{return value}|Value of {PublishingPageContent} suffixed with the provided suffix value
603
+
### PrefixAndSuffix
604
+
605
+
**Description:** Prefixes and suffixes the input text with another text. The applyIfContentIsEmpty parameter controls if the prefix/suffix also needs to happen when the actual content is empty
606
+
607
+
**Example:**`PrefixAndSuffix('<H1>Prefix some extra text</H1>','<H1>Suffix some extra text</H1>',{PublishingPageContent},'false')`
608
+
609
+
#### Input parameters
610
+
611
+
Name|Description
612
+
:-----|:----------
613
+
{'prefix string'}|Static input string which will be used as prefix
614
+
{'suffix string'}|Static input string which will be used as suffix
615
+
{PublishingPageContent}|The actual publishing page HTML field content to prefix/suffix
616
+
{'static boolean value'}|Static bool ('true', 'false') to indicate if the prefixing/suffixing still needs to happen when the {PublishingPageContent} field content is emty
617
+
#### Output parameters
618
+
619
+
Name|Description
620
+
:-----|:----------
621
+
{return value}|Value of {PublishingPageContent} prefixed/suffixed with the provided values
533
622
### ToImageUrl
534
623
535
624
**Description:** Returns the server relative image url of a Publishing Image field value.
@@ -626,6 +715,24 @@ Name|Description
626
715
Name|Description
627
716
:-----|:----------
628
717
{return value}|A formatted json blob describing the user's details
718
+
### DefaultTaxonomyFieldValue
719
+
720
+
**Description:** Populate a taxonomy field based upon provided term id's. You can configure to optionally overwrite existing values
title: Understanding in-place page transformation versus cross-site page transformation
3
+
description: Explains the differences between in-place and cross-site page transformation and when to use which one
4
+
ms.date: 02/06/2020
5
+
ms.prod: sharepoint
6
+
localization_priority: Priority
7
+
---
8
+
9
+
# Understanding in-place page transformation versus cross-site page transformation
10
+
11
+
When you use page transformation then you can either do an in-place transformation or a cross-site page transformation. Depending on the type of page you're transforming the only option is cross-site page transformation, but there are situations where you choose.
12
+
13
+
## In-place transformation
14
+
15
+
During an in-place transformation the created modern pages live in the same site as the original classic page. A typical example of this would be the transformation of the wiki and web part pages in a team site: when you run page transformation you'll end up with new pages (e.g. Migrated_mypage.aspx) next to the classic page (e.g. mypage.aspx) that you migrated. Depending on how you've configured page transformation it might also be the case that the modern page takes the name of the classic page (e.g. mypage.aspx) and the classic page will be renamed (e.g. Previous_mypage.aspx).
16
+
17
+
Overall in-place transformation will give you the best results as there's no risk of broken dependencies (e.g. File viewer web part showing a file from the site's Documents library) and therefor it's the recommended model for the page types (wiki and web part pages) that can be transformed in-place.
18
+
19
+
## Cross-site transformation
20
+
21
+
Cross site page transformation will read the classic page (e.g. mypage.aspx) and will then create the modern page (e.g. mypage.aspx) in **another** site collection. Typical use case of cross-site transformation is for transforming page types which cannot be used together with modern pages in the same site: this applies to classic publishing pages, blog pages and Delve blog pages. Another important use case is when you transform on-premises pages: given page transformation only supports SharePoint Online as the target platform for modern pages, this means these transformations are cross-site page transformations.
22
+
23
+
## In-place transformation versus cross-site transformation
24
+
25
+
Below table provides an overview on whether you need to use in-place transformation, cross-site transformation or whether you can choose.
26
+
27
+
Source\Type | Wiki page | Web part page | Publishing page | Blog page | Delve blog page
## Limitations on allowed target sites during a cross-site transformation
36
+
37
+
When you perform a cross-site page transformation then be aware that not all sites can serve as a target to receive modern pages in a cross-site page transformation flow. Allowed site templates are the following:
Copy file name to clipboardExpand all lines: docs/transform/modernize-userinterface-site-pages-model-publishing.md
+46-35Lines changed: 46 additions & 35 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Understanding and configuring the publishing page transformation model
3
3
description: Provides detailed guidance on how to configure and use the publishing page transformation model
4
-
ms.date: 12/13/2019
4
+
ms.date: 02/06/2020
5
5
ms.prod: sharepoint
6
6
localization_priority: Normal
7
7
---
@@ -344,45 +344,18 @@ Now that the assembly has been defined you can use your functions and selectors
344
344
345
345
## Page layout mapping FAQ
346
346
347
-
### I want to keep the source page creation information (as of September 2019 release)
347
+
### I want to keep the source page creation information (as of October 2019 release)
348
348
349
-
You can do this by altering your page layout mapping like shown in below sample:
349
+
When using the [PnP PowerShell approach](modernize-userinterface-site-pages-powershell.md) then use the `-KeepPageCreationModificationInformation` cmdlet in the `ConvertTo-PnPClientSidePage` cmdlet. When you're using the [.Net approach](modernize-userinterface-site-pages-dotnet.md) then set the `KeepPageCreationModificationInformation` parameter to true. Using this option will give the target page the Created, Modified, Author and Editor field values from the source page.
350
350
351
-
```XML
352
-
<MetaData>
353
-
...
354
-
<!-- Use below 4 fields to retain user created/date created, user modified/date modified will be overwritten afterwards, but you need to include them to make this "override" work -->
On publishing this page the modification data will change again. If you want to keep the modification date shown correctly in the modern page header you should set this field as well:
In above sample the page modification date is taken as FirstPublishedDate, but you can also take other DateTime fields like ArticleStartDate.
351
+
> [!Note]
352
+
> When you, as part of page transformation, promote the page as news or publish the page the Editor field will be set to the account running page transformation
374
353
375
-
### I want to promote the created pages as news
354
+
### I want to promote the created pages as news (as of October 2019 release)
376
355
377
-
Promoting pages created from a page layout as news pages can be be done by adding the below fields to your page layout mapping:
356
+
Promoting pages created from a page layout as news pages can be be done by using the `-PostAsNews` parameter on the `-KeepPageCreationModificationInformation` cmdlet (when you're using the [PnP PowerShell approach](modernize-userinterface-site-pages-powershell.md)) or alternatively by setting the `PostAsNews` parameter to true (when using the [.Net approach](modernize-userinterface-site-pages-dotnet.md)).
When you use the `PostAsNews` option in conjunction with the `KeepPageCreationModificationInformation` option then `FirstPublishedDateField` field will be set to the source page modification date. The `FirstPublishedDateField` field is the date value shown during news rollup.
386
359
387
360
### I want to insert hard coded text on the created page (as of September 2019 release)
388
361
@@ -401,6 +374,44 @@ Sometimes a page layout contains text snippets, which since they're not content
401
374
> [!Note]
402
375
> The HTML provided in the StaticString function must be XML encoded and must be formatted like the source page HTML as this HTML will still be converted to HTML which is compliant with the modern text editor
403
376
377
+
### I want to prefix or suffix the content from field (as of February 2020 release)
378
+
379
+
The approach used in the previous chapter allows you to add extra text on a page, but has as downside that the extra text will be added in it's own text part. If you want the extra text to be integrated with the actual text being transformed then the below approach allows you to do that. You can either prefix and/or suffix existing field content and optionally you can only have the prefixing/suffixing done when the the field contains content. The bool parameter in the `Prefix`, `Suffix` and `PrefixAndSuffix` functions defines whether the prefixing/suffixing needs to happen when the field content is empty: 'true' means to apply the action even when the field is empty.
380
+
381
+
See [Page Transformation Functions and Selectors](modernize-userinterface-site-pages-api.md) for more details on the below functions.
<PropertyName="Text"Type="string"Functions="PrefixAndSuffix('<H1>Prefix some extra text</H1>','<H1>Suffix some extra text</H1>',{PublishingPageContent},'false')" />
<PropertyName="Text"Type="string"Functions="Suffix('<H1>Suffix some extra text</H1>',{PublishingPageContent},'false')" />
396
+
</Field>
397
+
...
398
+
</WebParts>
399
+
```
400
+
401
+
### I want to populate a managed metadata field with one or more terms
402
+
403
+
When you have a managed metadata field in the source page metadata then you might want to have a similar managed metadata field for the target page. Given page transformation currently does have a managed metadata mapping feature this poses a problem. A possible workaround is to populate the target managed metadata field with a chosen term or a set of terms in case of a multi-value managed metadata field. This can be done using the `DefaultTaxonomyFieldValue` function as shown in below example:
See [Page Transformation Functions and Selectors](modernize-userinterface-site-pages-api.md) for more details on the `DefaultTaxonomyFieldValue` function.
414
+
404
415
### I want to add an extra web part on the created page
405
416
406
417
When you transform you classic publishing page to a modern page you sometimes want to add an **additional** modern web part on the created page, without that there's a classic version of that web part on the classic publishing page. This can be done by adjusting your webpartmapping.xml and page layout mapping files as shown below.
0 commit comments