所用 Web 部件映射概述

重要

SharePoint PnP 新式化框架是 PnP 框架的一部分,且在不断演进,请查看发行说明了解最新更改的最新信息。 如果遇到问题,请在 PnP 框架 GitHub 问题列表中提出问题。

将页面从经典页面转换为新式页面时,也将转换那些使用频率最高的 Web 部件。 XSLTListView 等经典 Web 部件会被替换为列表 Web 部件等对应的 OOB 新式部件,假如有对应的新式部件。 下一章概述转换的经典 Web 部件和转换方式。

Web 部件转换列表

页面转换使用默认的 Web 部件映射将经典页面转换为新式页面。 此处对这种默认模型中使用的映射作出了介绍,但尚不明确你是否可更新该映射以便执行将自己的第三方自定义 Web 部件添加为转换目标等操作。 如何扩展 Web 部件映射模型见页面转换模型一文所述。

经典 Web 部件 新式 Web 部件 Comments 跨网站支持
Microsoft.SharePoint.WebPartPages.XsltListViewWebPart(列表数据视图) 列表活动 Web 部件 请参阅下一章了解更多详细信息 是,如果存在具有相同名称的列表
Microsoft.SharePoint.WebPartPages.ListViewWebPart(列表数据旧版视图) 列表活动 Web 部件 请参阅下一章了解更多详细信息 是,如果存在具有相同名称的列表
Microsoft.SharePoint.Portal.WebControls.SiteFeedWebPart(工作组网站的网站源) 新闻 Web 部件 此 Web 部件通常用于在主页上显示新闻,因此我们将其替换为 OOB 新闻 Web 部件
Microsoft.SharePoint.WebPartPages.ContentEditorWebPart(嵌入内容) 嵌入 Web 部件、文本 Web 部件和/或社区开源脚本编辑器作为可选的目标 Web 部件 请参阅下一章了解更多详细信息
Microsoft.SharePoint.WebPartPages.ScriptEditorWebPart(嵌入脚本) 未转换的 OOB、社区开源脚本编辑器可以配置为可选的目标 Web 部件 请参阅下一章了解更多详细信息
Microsoft.SharePoint.WebPartPages.ImageWebPart 图像 Web 部件
Microsoft.SharePoint.WebPartPages.ClientSideWebPart(= 经典页面上基于 SPFX 的新式 Web 部件) 将保留同一新式 Web 部件及其配置 是的,如果目标网站上提供了相同的 SPFX Web 部件
Microsoft.SharePoint.WebPartPages.ClientWebPart(= 经典页面上的 SharePoint 外接程序 Web 部件) 同一外接程序可用于新式页面,该外接程序(包括其配置)将被取代 是的,如果目标网站上提供了相同的加载项 Web 部件
Microsoft.SharePoint.Publishing.WebControls.MediaWebPart(嵌入视频) 文件查看器 Web 部件
Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart(查询并呈现数据) 突出显示内容 Web 部件
Microsoft.SharePoint.Publishing.WebControls.ContentBySearchWebPart(搜索并呈现数据) 突出显示内容 Web 部件
Microsoft.SharePoint.Publishing.WebControls.ResultScriptWebPart(搜索并呈现数据) 突出显示内容 Web 部件
Microsoft.Office.Excel.WebUI.ExcelWebRenderer(从 Excel 文件嵌入) 文件查看器 Web 部件
Microsoft.Office.Visio.Server.WebControls.VisioWebAccess(从 Visio 文件嵌入) 文件查看器 Web 部件
Microsoft.SharePoint.WebPartPages.PageViewerWebPart(从其他页面嵌入) 嵌入 Web 部件
Microsoft.SharePoint.WebPartPages.PictureLibrarySlideshowWebPart(放映图片幻灯片) 图像库 Web 部件 图片库不支持 CDN,建议将图片库内容复制到常规文档库,然后在图像库 Web 部件中配置该文档库 是,如果存在具有相同名称的图片库
Microsoft.SharePoint.WebPartPages.SimpleFormWebPart(HTML 表单嵌入) 可以配置未转换的 OOB、(可选)社区开源脚本编辑器 请参阅下一章了解更多详细信息
Microsoft.SharePoint.Publishing.WebControls.SummaryLinkWebPart QuickLinks Web 部件或文本 Web 部件 默认情况下,摘要链接 html 会转换为 QuickLinks,但你可以选择生成 html,然后使用文本 Web 部件显示该 html。 请参阅下一章了解更多详细信息
Microsoft.SharePoint.Portal.WebControls.ContactFieldControl(联系人卡片) 人员 Web 部件
Microsoft.SharePoint.WebPartPages.UserDocsWebPart(用户文档) 突出显示内容 Web 部件
Microsoft.SharePoint.WebPartPages.XmlWebPart(使用 xml 和 xsl 生成 HTML) 已删除(添加了文本 Web 部件用于说明原因)
Microsoft.SharePoint.WebPartPages.DataFormWebPart(列表表单旧版视图) 已删除(添加了文本 Web 部件用于说明原因)
Microsoft.SharePoint.WebPartPages.WikiContentWebpart 已删除(添加了文本 Web 部件用于说明原因) SPO 中不再相关
Microsoft.SharePoint.WebPartPages.SilverlightWebPart(运行 Silverlight 应用) 已删除(添加了文本 Web 部件用于说明原因) 没有新式替换件,Micosoft Edge 和 Chrome 等新式浏览器中 Silverlight 不再有效
Microsoft.SharePoint.Publishing.WebControls.MembersWebPart 已删除(添加了文本 Web 部件用于说明原因) 现在使用 OOB 网站权限功能来管理网站成员
Microsoft.Office.InfoPath.Server.Controls.WebUI.BrowserFormWebPart(InfoPath Web 部件) 已删除
Microsoft.SharePoint.WebPartPages.GettingStartedWebPart(入门磁贴) 已删除 经典团队网站体验不必保留入门磁贴
Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart(沙盒 Web 部件) 已删除 沙盒 Web 部件在 SPO 中不再可用
Microsoft.SharePoint.Publishing.WebControls.TableOfContentsWebPart 已删除 如果依然相关,则应将此数据集成到站点导航中

注意

上表中未列出的所有其他 Web 部件都将被默认映射为声明“未转换 xxx Web 部件”的文本 Web 部件。 请参阅经典和新式 Web 部件体验一文了解经典 Web 部件和新式 Web 部件在功能层面的关系。

映射属性

映射属性允许你在使用 OOB 映射文件时定义行为。 典型示例是允许使用社区脚本编辑器。 下表定义了可用的映射属性。

映射属性 默认值 说明
UseCommunityScriptEditor false 在适用的映射中配置社区脚本编辑器的使用
SummaryLinksToQuickLinks true 配置摘要链接 Web 部件到 QuickLinks 的映射

Web 部件转换详细信息

允许在转换期间使用社区脚本编辑器 Web 部件

没有 OOB 新式脚本编辑器 Web 部件,由于嵌入脚本存在固有的安全风险,因此不鼓励使用它。 但是,如果你确实想要转换经典脚本编辑器 Web 部件,那么仍可以使用开源社区新式脚本编辑器来完成此操作。

安装社区脚本编辑器

按照说明安装开放源代码脚本编辑器 Web 部件 (https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor) 租户。

设置 UseCommunityScriptEditor 映射标志

你需要告诉页面转换引擎你已安装社区脚本编辑器,并且希望在转换期间使用它。 使用 ConvertTo-PnPPagePnP PowerShell cmdlet 时,可以指定 标志 -UseCommunityScriptEditor 。 当使用 .Net 时,你可以设置标志,如下面的示例所示

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    // If target page exists, then overwrite it
    Overwrite = true,
};

pti.MappingProperties["UseCommunityScriptEditor"] = "true";

pageTransformator.Transform(pti);

XsltListViewWebPart 和 ListViewWebPart Web 部件

这两种 Web 部件在经典页面中非常灵活,因此被替换为更具体的新式 Web 部件。 替换方式如下:

  • 文档库: Web 部件
  • 列表:列表 Web 部件
  • 日历:活动 Web 部件
  • 问题列表:列表 Web 部件
  • 任务列表:说明无法映射该任务列表的文本 Web 部件
  • 讨论板:说明无法映射该讨论板的文本 Web 部件
  • 调查列表:说明无法映射该调查列表的文本 Web 部件

在转换为列表或库 Web 部件期间,转换引擎将尝试检测用于配置 Web 部件的视图并将新式库或列表 Web 部件配置为显示相同的视图。

ContentEditorWebPart Web 部件

可通过以下两种方式之一使用内容编辑器 Web 部件:指向 SharePoint 中位于其他位置的文件,或者嵌入内容。 根据使用的模式应用以下逻辑:

  • 文件链接:
    • 文件为 ASPX 文件时,可通过嵌入 Web 部件显示该文件
    • 当内容是另一种类型的文件时,将读取并分析文件内容:
      • 如果文件内容不包含 JavaScript,则它将转换为第三方脚本编辑器 Web 部件(如果已配置),或者将显示文本 Web 部件,其中包含已清理的文件内容 html
      • 如果文件内容包含脚本,则它将转换为第三方脚本编辑器 Web 部件(如果已配置),或替换为文本 Web 部件,告知无法映射此内容
  • 嵌入的内容:
    • 如果嵌入的内容不包含 JavaScript,则它将转换为第三方脚本编辑器 Web 部件(如果已配置),或者将显示文本 Web 部件,其中包含已清理的嵌入式 html
    • 如果嵌入的内容包含脚本,则它将转换为第三方脚本编辑器 Web 部件(如果已配置),或替换为文本 Web 部件,告知无法映射此内容

ScriptEditorWebPart Web 部件

默认情况下,将显示文本 Web 部件以说明此内容未进行转换,或者如果已配置,则使用社区方脚本编辑器 Web 部件(如上所示)

默认情况下,摘要链接 html 会转换为 QuickLinks,但你可以选择生成 html,然后使用文本 Web 部件显示该 html。 若要使用 HTML,需要设置所需的映射属性:使用 ConvertTo-PnPPagePnP PowerShell cmdlet 时, -SummaryLinksToHtml 可以指定 标志。 当使用 .Net 时,你可以设置标志,如下面的示例所示

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    // If target page exists, then overwrite it
    Overwrite = true,
};

pti.MappingProperties["SummaryLinksToQuickLinks"] = "false";

pageTransformator.Transform(pti);