为登陆页面扩展和配置设计导入程序

此部分介绍如何针对登录页面配置和扩展(如果需要)设计导入程序。登陆页面中介绍了导入后使用登陆页面。

使设计导入程序提取自定义组件

以下是使设计导入程序识别自定义组件的逻辑步骤

创建TagHandler

标记处理程序是处理特定类型 HTML 标记的 POJO。TagHandler 可处理的 HTML 标记类型通过 TagHandlerFactory 的 OSGi 属性“tagpattern.name”来定义。此 OSGi 属性实质上是应与要处理的输入 HTML 标记匹配的正则表达式。所有嵌套的标记都会交由标记处理程序进行处理。例如,如果注册的div包含嵌套的

标记,则

标记也会引发给TagHandler,具体处理方式由您来决定。

标记处理程序的界面与 SAX 内容处理程序的界面类似。它接收每个 HTML 标记的 SAX 事件。作为标记处理程序提供者,您需要实施设计导入程序框架自动调用的特定生命周期方法。

创建其相应的TagHandlerFactory。

标记处理程序工厂是 OSGi 组件 (singleton),负责生成标记处理程序的实例。

您的标记处理程序工厂必须公开一个名为“tagpattern.name”的 OSGi 属性,其值将针对输入 HTML 标记进行匹配。

如果有多个标记处理程序与输入html标记匹配,则会选取排名较高的标记处理程序。 排名本身作为OSGi属性​service.ranking​公开。

TagHandlerFactory 是一个 OSGi 组件。要提供给 TagHandler 的任何引用都必须通过此工厂提供。

如果要覆盖默认值,请确保TagHandlerFactory具有更好的排名。

准备要导入的 HTML

创建导入程序页面后,可以导入完整的HTML登录页面。 要导入 HTML 登录页面,需要首先将其内容压缩到设计包中。设计包包含 HTML 登录页面以及引用的资产(图像、css、图标、脚本,等等)。

以下备忘录提供了如何准备导入 HTML 的示例:

登陆页面备忘单

Zip 文件布局和要求

注意

目前,ZIP 文件只包含一个 HTML 页面或页面的一部分。

zip 文件的示例布局如下所示:

/index.html ->登陆页面HTML文件

/css ->添加到CSS clientlib中

/img ->所有图像和资产

/js ->添加到JS clientlib中

该布局基于 HTML5 Boilerplate 最佳实践布局。有关更多信息,请访问https://html5boilerplate.com/

注意

设计包​必须至少​在根级别包含​index.html​文件。 如果要导入的登陆页面也具有移动版本,则zip文件必须在根级别包含​mobile.index.html​以及​index.html。

准备登录页面 HTML

为了能够导入 HTML,需要向登录页面 HTML 添加画布 div。

画布div是带有id="cqcanvas"的html div,必须插入到HTML

标记中,并且必须包含要转换的内容。

添加画布 div 后的登录页面 HTML 示例代码片段如下所示:

准备 HTML 以包含可编辑的 AEM 组件

导入登录页面时,可以选择按原样导入页面,这意味着导入登录页面之后,无法在 AEM 中编辑任何导入的项目(但仍可以在页面上添加其他 AEM 组件)。

导入登录页面之前,您可能要转换登录页面的某些部分,以便它们成为可编辑的 AEM 组件。这样,即使在导入登陆页面设计后,您也可以快速编辑登陆页面的各个部分。

通过将 data-cq-component 添加到导入 HTML 文件中的相应组件,可完成此操作。

以下部分介绍如何编辑 HTML 文件,以便可以将登录页面的某些部分转换为可编辑的不同 AEM 组件。有关组件的详细说明,请参阅登陆页面组件。

注意

用于将登录页面的各部分转换为 AEM 组件的 HTML 标记同时具有长格式和短标记声明。将分别介绍每个组件的这两种形式。

限制

导入之前,请注意以下限制:

在标记上应用的任何属性(如类或 id) <body>标记未保留

如果对body标记(例如

)应用了id或类等任何属性,则导入后不会保留该属性。 因此,导入的设计不应与标记上应用的属性有任何依赖关系。

拖放 zip

Internet Explorer和Firefox版本3.6及更早版本不支持拖放zip上传。 要在使用这些浏览器时上传设计,请单击放置文件区域,打开文件上传对话框,然后使用该框上传您的设计。

支持设计zip文件“拖放”的浏览器包括Chrome、Safari5.x、Firefox 4及更高版本。

不支持 Modernizr。

Modernizr.js 是一个基于 javascript 的工具,它检测浏览器的本机功能,还检测这些功能是否适用于 html5 元素。使用 Modernizr 增强各种旧版浏览器支持的设计可能会导致登录页面解决方案中出现导入错误。设计导入程序不支持 Modernizr.js 脚本。

导入设计包时不保留页面属性

导入设计包前为页面(使用空白登录页面模板)设置的任何页面属性(例如,自定义域、强制 HTTPS,等等)在导入设计之后都会丢失。因此,推荐的做法是在导入设计包后设置页面属性。

仅假定HTML标记

导入时,出于安全原因会对标记进行清理,以避免导入和发布无效标记。这种情况会假定只有 HTML 标记;所有其他形式的元素,例如内联 SVG 或 Web 组件等,都会被筛选掉。

文本

用于在设计包内的 HTML 中插入文本组件 (foundation/components/text) 的 HTML 标记:

This is some editable text

要在 HTML 中包含以上标记,请执行以下操作:

在导入设计包后创建的登陆页面中创建可编辑的AEM文本组件(sling:resourceType=foundation/components/text)。

将创建的文本组件的text属性设置为div内包含的HTML。

短组件标记声明:

Text component shorthand

包含列表的文本

添加包含列表的文本:

1st

2nd

可在 RTE 编辑器中进行编辑:

This is text with a list:

  • 1st
  • 2nd

It can be edited with the RTE editor

具有颜色的文本

添加可在 RTE 编辑器中进行编辑的具有颜色(粉红色)的文本:

This is pink text.

It can be edited with the RTE editor

标题

用于在设计包内的HTML中插入标题组件(wcm/landingpage/components/title)的HTML标记:

This is some editable title text

要在 HTML 中包含以上标记,请执行以下操作:

在导入设计包后创建的登陆页面中创建可编辑的AEM标题组件(sling:resourceType=wcm/landingpage/components/title)。

将创建的标题组件的 jcr:title 属性设置为标题标记内 div 中包含的文本。

将type属性设置为标题标记,在此例中为h1。

标题组件支持7种类型 — h1, h2, h3, h4, h5, h6和default。

短组件标记声明:

Title component shorthand

图像

用于在设计包内的 HTML 中插入图像组件 (foundation/components/image) 的 HTML 标记:

要在 HTML 中包含以上标记,请执行以下操作:

在导入设计包后创建的登陆页面中创建可编辑的AEM图像组件(sling:resourceType=foundation/components/image)。

将创建的图像组件的 fileReference 属性设置为导入的 src 属性中指定的图像路径。

将alt属性设置为img标记中alt属性的值。

将title属性设置为img标记中标题属性的值。

将width属性设置为img标记中宽度属性的值。

将height属性设置为img标记中高度属性的值。

短组件标记声明:

图像组件 Div 内不支持绝对 URL img src

如果尝试对具有绝对url src的标记进行组件转换,则会引发相应的​UnsupportedTagContentException​标记。 例如,不支持以下内容:

但是,不属于图像组件 div 的 img 标记支持绝对 URL 图像。

行动动员组件

您可以标记登陆页面的一部分以将其导入为“可编辑的行动动员组件” — 这样,导入的行动动员组件后,便可以编辑这些组件。 AEM 包含以下 CTA 组件:

点进率链接 - 允许您添加一个文本链接,当访客单击这个链接时即被引向目标 URL。

图像链接 - 允许您添加一个图像链接,当访客单击这个链接时即被引向目标 URL。

点进率链接

该 CTA 组件可用于在登陆页面上添加文本链接。

支持的属性

标签,具有粗体、斜体和下划线选项

目标 URL,支持第三方和 AEM URL

页面渲染选项(同一窗口、新窗口等)

用于在导入的 zip 文件中包含点进组件的 HTML 标记。此处的href映射到目标URL,“查看产品详细信息”映射到标签,依此类推。

.

.

View Product Details >

.

.

此组件既可以在任何独立应用程序中使用,也可以从 zip 中导入。

短组件标记声明:

Click Through Link shorthand

图形链接

该 CTA 组件可用于在登陆页面上添加任何带链接的图像。该图像可以是一个简单的按钮,也可以是任何用作背景的图像。用户单击图像时,将转到组件属性中指定的目标 URL。它是“行动动员”组的一部分。

支持的属性

图像裁剪、旋转

悬停文本、说明、大小(像素)

目标 URL,支持第三方和 AEM URL

页面渲染选项(同一窗口、新窗口等)

用于在导入的 zip 文件中包含图形链接组件的 HTML 标记。此处的href将映射到目标url,img src将作为渲染图像,“标题”将被用作悬停文本,依此类推。

短组件标记声明:

注意

要创建clickthroughgraphical链接,您需要将锚点标记和图像标记包含在具有data-cq-component="clickthroughgraphicallink"属性的div中。

例如

使用 CSS 时,不支持通过其他方式将图像与锚点标记相关联,例如,以下标记将无法使用:

与关联的css .hasbackground { background-image: pathtoimage }

潜在客户表单

潜在客户表单是一种用于搜集访客/潜在客户个人资料信息的表单。这类信息可被存储起来,以供以后进行有针对性的营销活动。此信息通常包括标题、名称、电子邮件、出生日期、地址、关注,等等。它是“CTA潜在客户表单”组的一部分。

支持的功能

预定义潜在客户字段 — Sidekick中提供了名字、姓氏、地址、Dob、性别、关于、userId、emailId、提交按钮。 只需将所需的组件拖放到您的潜在客户表单即可。

借助于这些组件,作者可以设计独立的潜在客户表单,这些字段与潜在客户表单字段相对应。在独立或导入的zip应用程序中,用户可以使用cq:form或cta潜在客户表单字段添加其他字段,并根据要求对其进行命名和设计。

使用CTA潜在客户表单的特定预定义名称映射潜在客户表单字段,例如,firstName表示潜在客户表单中的名字,等等。

未映射到潜在客户表单的字段将映射到 cq:form 组件 - 文本、单选按钮、复选框、下拉框、隐藏、密码。

用户可以使用“标签”标记提供标题,使用样式属性“类”提供样式(仅适用于 CTA 潜在客户表单组件)。

感谢页面和订阅列表可作为表单的隐藏参数提供(在index.htm中提供),也可从“潜在客户表单的开头”的编辑栏添加/编辑

约束(如 — 必需)可通过每个组件的编辑配置来提供。

用于在导入的 zip 文件中包含图形链接组件的 HTML 标记。此处的“firstName”已映射到潜在客户表单firstName等,但复选框除外 — 这两个复选框映射到cq:form下拉组件。

NEWSLETTER SIGN UP

FIRST NAME

LAST NAME

EMAIL ADDRESS

Send me the latest We.Retail news and announcements.

Send me We.Retail deals and special offers.

Parsys

AEM parsys 组件是可包含其他 AEM 组件的容器组件。可以在导入的 HTML 中添加 parsys 组件。这样,即使在导入之后,用户仍可以向登录页面添加可编辑的 AEM 组件,或从中删除可编辑的 AEM 组件。

段落系统为用户提供了使用 Sidekick 添加组件的功能。

用于在设计包内的 HTML 中插入 parsys 组件 (foundation/components/parsys) 的 HTML 标记:

ULTIMATE PROTECTION

ON SALE

要在 HTML 中包含以上标记,请执行以下操作:

在导入设计包后创建的登录页面中插入 AEM parsys 组件 (foundation/components/parsys)。

使用默认组件初始化 Sidekick。通过将 Sidekick 中的组件拖动到 Parsys 组件上,可将新组件添加到登录页面。

parsys 还包含两个标题组件。

Target

目标组件在页面上显示体验的内容。营销活动中可能创建了多个体验,目标组件可以向访问页面的各个用户动态显示不同体验的内容。

用于插入目标组件和在营销活动中创建不同体验的 HTML 标记:

Default content. Select this campaign in client context to view other experiences

Content for Over 30

Content for Under 30

其他导入选项

除指定导入的组件是否为可编辑的 AEM 组件之外,还可以在导入设计包之前配置以下内容:

通过提取导入 HTML 中定义的元数据设置页面属性。

指定 HTML 中的字符集编码。

覆盖导入器页面模板。

通过提取导入 HTML 中定义的元数据设置页面属性

设计导入程序应将导入HTML的标题中声明的以下元数据作为属性“jcr:description”进行提取和保留:

设计导入程序将提取并保留HTML标记中设置的Lang属性,作为属性“jcr:language”

指定 HTML 中的字符集编码

设计导入程序读取导入 HTML 中指定的编码。可按如下方式指定编码:

或者

如果导入 HTML 中未指定编码,则设计导入程序设置的默认编码为 UTF-8。

覆盖模板

通过在以下位置创建新登陆页面,可以覆盖空白登陆页面模板:/apps//designimporter/templates/

此处

html加了文档声明之后页面错乱,为登陆页面扩展和配置设计导入程序相关推荐

  1. html加了文档声明之后页面错乱,DOCTYPE 文档类型声明(网页爱好者必看)

    DOCTYPE 文档类型声明(网页爱好者必看) 发布时间:2009-11-02 00:59:13   作者:佚名   我要评论 文档类型声明与不声明,将会导致你的css或js都无法正常安装要求显示.所 ...

  2. html加了文档声明之后页面错乱,PDF转成HTML排版错乱?教你一招完美转换

    原标题:PDF转成HTML排版错乱?教你一招完美转换 PDF与HTML作为时下流行的文档格式.页面格式,小伙伴们的工作学习都会经常接触到.比如有时我们PDF文档过大无法发送,或者需要以网页的形式将文档 ...

  3. html文档主体的根标签,2 HTML简介标签嵌套和并列关系文档声明

    HTML:Hyper Text Markup Language  超文本标签语言(hyper:精力旺盛的 markup:标记 n noun) HTML不是编程语言,而是一种标记语言(就是一套标记标签) ...

  4. 文档声明和HTML样式表

    文档声明 不是注释也不是元素,总是在HTML的第一行 书写格式:<!DOCTYPE HTML> 是用于通知浏览器目前文档正使用哪一个HTML版本(相关属性 lang) 若不写文档声明,浏览 ...

  5. 前端开发 html第二课 自结束标签 注释 标签中的属性 文档声明 进制 字符编码 文档使用 VScode 实体 meta标签 语义化标签 块元素和行内元素 布局标签

    1 自结束标签 标签一般成对出现,但是也存在一些自结束标签 如: 多"/"和没有"/"区别不大 2 注释 注释的作用: 注释中的内容会被浏览器忽略,不会在网页中 ...

  6. html正确的文档声明,HTML 文档声明

    DTD(文档类型定义)是一组机器可读的规则,定义XML或HTML特定版本中可以出现哪些东西. 解析网页的时候,浏览器将使用这些规则检查页面的有效性并采取相应的措施. 浏览器通过解析页面的DOCTYPE ...

  7. 文档声明Doctype和Doctype html区别 文档类型定义(DTD)

    文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 文档声明的作用: 文档声明是为了告诉浏 ...

  8. 打开PDF文件弹出阅读未加标签文档的解决方法

    打开PDF文件弹出阅读未加标签文档的解决方法 参考文章: (1)打开PDF文件弹出阅读未加标签文档的解决方法 (2)https://www.cnblogs.com/Tty725/p/3308065.h ...

  9. html5在线显示word文档,JS实现获取word文档内容并输出显示到html页面示例

    本文实例讲述了js实现获取word文档内容并输出显示到html页面.分享给大家供大家参考,具体如下: title var w = new activexobject('word.application ...

最新文章

  1. 一元享移动怎么样_移动大王卡千万别买!!!
  2. java dh算法_dh密钥交换算法java
  3. java 反向映射,如何使用lambdas實現反向映射Java?
  4. 配置Tomcat的server.xml以适应web-content文件系统的位置改变
  5. 建立你第一个 Outlook Add-in
  6. 路径取值之含正则表达式的的取值方法
  7. html科学计算器,html+css+js实现科学计算器
  8. 深度linux运行浏览器中毒,使用深度Deepin系统的用户可在商店中安装360安全浏览器正式版...
  9. Adobe各种最新版本软件下载 PhotoShop Dreamweaver FW Ai Fl.....
  10. 经验分享 | ENVI app store
  11. 纪录片让你开阔眼界、增长见识
  12. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况
  13. 尝试编写一个加密程序,加密方法将明文的字母变成其后的第4个字母,**字母表首尾相连。非字母符号** 不加密。 例如输入“China“, 输出密文“Glmre“, 输入 “ab123“, 输出 “ef1
  14. Xshell简单介绍与作用
  15. 软件应用无所不在 正吞噬整个世界
  16. struct hdr_cmn
  17. Geometric Glovius Pro v6.0.0.624 3D可视化分析/3D模型查看器
  18. 信息系统项目管理师第三版 pdf可编辑_信息系统项目管理师教程(第三版)——可行性研究...
  19. 佳能Canon PIXMA iP6000D 打印机驱动
  20. 好用的翻牌器,定时器适用于react vue 等等

热门文章

  1. LeetCode-Linked List Cycle II
  2. IOS图标icon,png去掉高光效果
  3. 【转】HttpModule和HttpHandler(续)
  4. H5 input type=“search“ 不显示搜索 解决方法
  5. Ubuntu 11.10 make menuconfig 失败的解决方法
  6. MySQL------报错Access denied for user ‘root‘@‘localhost‘ (using password:NO)解决方法
  7. 【报告分享】科技产业2021年投资策略:科技进步与中美再平衡下的新机遇.pdf(附下载链接)...
  8. Deformable Shape Completion with Graph Convolutional Autoencoders
  9. 深度好文!男性在青年时期应为自己做哪些投资?
  10. 测试需求分析第二部分