内容片段的组件 components-for-content-fragments
用于片段创作的组件 components-for-fragment-authoring
请参阅 内容片段管理API — 客户端.
用于页面创作的组件 components-for-page-authoring
Adobe Experience Manager (AEM)内容片段包括 创建并管理为独立于页面的资产. 它们允许您创建渠道中性内容,以及各种(特定于渠道的)变体。 然后,您可以在创作内容页面时使用这些片段及其变体. 您还可以通过以下方式使用现有的内容片段资源 将其从资产浏览器拖到页面 (对于其他基于资产的组件,例如基础组件图像)。 现成的内容片段组件仅显示一个 元素 引用的内容片段的。 利用组件对话框,您可以定义 元素、变量和片段段落范围 要显示在页面上的内容(选件大小、配置文件、值、参数等)。
定义 definition
此 内容片段 组件用于保留对内容片段资产(有效地增强了文本资产)的引用。 内容片段的资源类型为:
dam/cfm/components/contentfragment/contentfragment
引用在属性中定义:
fileReference
只有触屏UI的编辑器完全支持内容片段组件,其中包括客户端库:
cq.authoring.editor.plugin.cfm
此库会向编辑器添加特定于内容片段的功能。 例如,支持在页面上添加和配置内容片段,支持在资产浏览器中搜索内容片段资产,以及在侧面板中搜索关联内容。
中间内容 in-between-content
此 内容片段 t组件允许您在显示的不同段落之间放置其他组件 元素. 基本上,显示的元素由不同的段落组成(每个段落都标有一个回车符)。 在每个段落之间,您可以使用其他组件插入内容。
从技术角度来看,所显示元素的每个段落都位于其自身的parsys中,您在段落之间添加的每个组件都(在标题下)插入parsys中。
换句话说,如果内容片段组件的实例由三个段落组成,则组件在存储库中有三个不同的parsys。 添加到内容片段的所有中间内容实际上都位于这些parsys中。
在存储库中,中间内容是相对于其在整个段落结构中的位置存储的,也就是说,它未附加到实际的段落内容。
为了说明这一点,请考虑以下几点:
-
由三个段落组成的内容片段的实例
-
第二段之后已经插入了一些内容
- 这意味着内容存储在第二个parsys中。
基本上,如果此实例的段落结构发生更改(通过更改显示的变体、元素或段落范围),它可能会影响在内容片段内容时显示的中间内容:
-
编辑,并在第二段之前添加另一段:
- 中间内容在新创建的段落之后显示(第二个parsys现在保存新创建的段落)。
-
将编辑并删除第二段:
- 中间内容显示在之前是第三段的段落之后(第二个parsys现在包含前三个段落)。
-
进行了配置,以便仅显示第一段:
- 不显示中间内容(由于新配置,第二个Parsys不再呈现)。
自定义内容片段组件 customizing-the-content-fragment-component
要使用现成的内容片段组件作为扩展的Blueprint,您应遵守以下合同:
-
重用HTL渲染脚本及其关联的POJO,以便查看中间内容功能的实施方式。
-
重用内容片段节点:
cq:editConfig
呈现前资源重写 asset-rewriting-before-rendering
内容片段管理使用内部渲染过程为页面生成最终HTML输出。 这由内容片段组件内部使用,也由在引用页面上更新引用片段的后台进程使用。
在内部,Sling重写器用于该渲染。 相应的配置位于 /libs/dam/config/rewriter/cfm
如有必要,可以调整。 请参阅 Apache Sling重写器 以了解更多信息。
/libs/dam/config/rewriter/cfm
serializerType
必须 将更新为:serializerType="html5-serializer"
现成的配置使用以下转换器:
-
transformer-cfm-payloadfilter
— 用于检索body
部分(<body>...</body>
HTML )时,不会返回预期结果。 -
transformer-cfm-parfilter
— 如果指定了段落范围,则过滤掉不需要的段落(可以对内容片段组件执行此操作) -
transformer-cfm-assetprocessor
— 在内部使用,用于检索片段中嵌入的资产列表
呈现过程将通过公开 com.adobe.cq.dam.cfm.content.FragmentRenderService
如有必要,自定义组件可以使用(例如)和。