Experience Page Layouts Configuration

Info: Available in brXM 14.3.0 and later.

Overview

Experience Pages are standalone pages that combine content and page layout, enabling a page-driven approach in Bloomreach Content. A CMS user creates an Experience Page Document, which includes an embedded page configuration based on an Experience Page Layout. Developers define Experience Page Layouts in the project's HST configuration.

Configuration

Under an hst:configuration node, you can add an optional hst:xpages node. This node contains one or more hst:xpage nodes that define Experience Page Layouts. Example structure:

+ hst:myproject + hst:configurations + myproject + hst:xpages [hst:xpages] + one-column-xpage [hst:xpage] - hst:referencecomponent = hst:abstractpages/base + main [hst:containercomponent] - hippo:identifier = 4d1776f0-faa8-4913-a94f-89d5e87bfce3

The hst:xpage node type extends hst:component, which is also used for pages configured under hst:pages. It supports all hst:component configuration options, with two additions:

  1. hst:pageref: Used only in user-created Experience Page Documents containing an hst:xpage node. Developers must not set this property in HST configuration.
  2. hst:label: Specifies the name of the Experience Page Layout shown when creating a new Experience Page Document.

Identifiable Containers

Nodes of type hst:containercomponent include the hippo:identifiable mixin. The behavior of nodes with this mixin is as follows:

  1. When created, the node receives a hippo:identifier property with a randomly generated UUID.
  2. If the hippo:identifier property is removed, it is not regenerated.
  3. When copying a node, if the source lacks hippo:identifier, a new UUID is assigned. If the source has hippo:identifier, the value is copied as-is.

The hippo:identifier property provides a stable identifier for nodes when neither jcr:uuid nor jcr:path is suitable.

HST configuration nodes of type hst:containercomponent always include the hippo:identifiable mixin, so container items receive the hippo:identifier property by default. Do not modify hippo:identifier values or copy them between different container nodes or xpages in YAML files. If a bootstrapped hst:containercomponent node from YAML does not have a hippo:identifier, the property is generated when the node is created.

For Experience Pages, the hippo:identifier property links the Experience Page Layout container to the Experience Page Document container.

Containers with Default Container Items

You can configure an Experience Page Layout so that its containers include one or more default container items. When a user creates an Experience Page Document, these container items are copied into the document's container and act as prototypes.

Hint: See the Configure Experience Pages tutorial for an example of an Experience Page Layout with a container that includes a default container item.

Inheritance

Info: Experience Page inheritance is supported starting with brXM 14.4.0.

Like hst:pages, you can inherit hst:xpages from other HST configurations.

Example configuration:

+ hst:myproject + hst:configurations + common + hst:xpages [hst:xpages] + common-xpage [hst:xpage] + myproject - hst:inheritsfrom = ../common + hst:xpages [hst:xpages] + one-column-xpage [hst:xpage]

In this example, the myproject configuration inherits the common-xpage layout from the common configuration.

The hst:xpages node is not supported under hst:workspace. Unlike hst:pages, only developers manage hst:xpages layout configuration.

When creating a -preview configuration or a branch of myproject, only the hst:workspace node is copied. The hst:xpages node is not duplicated; instead, these configurations inherit hst:xpages from the primary live configuration for the same channel ID.

For example:

+ hst:myproject + hst:configurations + myproject + hst:workspace + hst:xpages [hst:xpages] + one-column-xpage [hst:xpage] + myproject-preview - hst:inheritsfrom = ../myproject + hst:workspace + myproject-v8UfB: - hst:inheritsfrom = ../myproject - hst:branchid: v8UfB - hst:branchof: myproject + hst:upstream + hst:workspace + myproject-v8UfB-preview: - hst:inheritsfrom = ../myproject-v8UfB - hst:branchid: v8UfB - hst:branchof: myproject + hst:workspace

In this setup, myproject-preview, myproject-v8UfB, and myproject-v8UfB-preview all inherit the hst:xpages from the primary live myproject configuration.

If multiple channels require the same hst:xpages layouts, either duplicate the layouts or place them in a shared HST configuration that channels inherit from. Using a common configuration is recommended.

Share Feedback
Page: /build/hst-configuration/core-configuration/experience-page-layouts-configuration
Section: Build
Category *
Experience Page Layouts Configuration | Bloomreach Content Documentation