Definição de componente component-definition
Entenda o contrato JSON entre a definição do componente e o Editor universal em detalhes.
Visão geral overview
O arquivo component-definition.json define os componentes disponíveis para seus autores de conteúdo para o projeto. Este documento explica em detalhes a finalidade desse arquivo e como o Editor universal o usa para apresentar aos autores os componentes de criação de página.
component-definition.json do zero. O modelo de projeto que você usa para inicializar seu projeto contém um arquivo component-definition.json totalmente funcional que você pode adaptar às suas necessidades.Exemplo de definição de componente example
Veja a seguir um exemplo completo, mas simples de component-definition.json.
{
"groups":[
{
"title":"General Components",
"id":"general",
"components":[
{
"title":"Text",
"id":"text",
"model": "text",
"filter": "texts",
"plugins":{
"aem":{
"page":{
"resourceType":"wknd/components/text",
"template":{
"text":"Default Text",
"name":"Text"
}
}
},
"aem65":{
"page":{
"resourceType":"wknd/components/text",
"template":{
"text":"Default Text",
"name":"Text"
}
}
}
}
}
]
}
]
}
groups groups
groups define os grupos de componentes que o autor vê no Editor Universal ao clicar no ícone Adicionar no painel de propriedades do editor para adicionar um novo componente a uma página. Grupos ajudam a organizar os componentes. Os grupos comuns podem ser Componentes Gerais e Componentes Avançados.
titledefine a descrição textual do grupo mostrado na interface do usuário do editor.ididentifica exclusivamente o grupo.
components components
components define quais componentes pertencem a um grupo.
-
titledefine a descrição textual do componente mostrado na interface. -
ididentifica exclusivamente o componente.- O modelo de componente do mesmo
iddefine os campos do componente. - Por ser exclusivo, ele pode ser usado, por exemplo, em uma definição de filtro para determinar quais componentes podem ser adicionados a um contêiner.
- O modelo de componente do mesmo
-
modeldefine qual modelo é usado com o componente.- Portanto, o modelo é mantido centralmente na definição do componente e não precisa ser especificado na instrumentação.
- Isso permite mover componentes entre contêineres.
-
filterdefine qual filtro deve ser usado com o componente.
plugins plugins
plugins define qual plug-in é responsável pela persistência do componente. Os plug-ins comuns incluem:
aempara AEM as a Cloud Service.aem65para AEM 6.5. e AEM 6.5 LTSxwalkpara Criação com o AEM Sites para Edge Delivery Services.
page ou cf page-cf
Depois que o plugin é definido, é necessário indicar se ele está relacionado à página ou ao fragmento.
pageindica que o componente é conteúdo na página atual.cfindica que o componente está relacionado ao conteúdo em um Fragmento de conteúdo.
page page
Se o componente for conteúdo da página, você pode fornecer as seguintes informações.
resourceTypedefine o SlingresourceTypeusado para renderizar o componente.templatedefine chave/valores opcionais a serem gravados automaticamente no componente recém-criado e define qual filtro e/ou modelo deve ser aplicado ao componente.- Útil para texto explicativo, de amostra ou de espaço reservado.
template template
Ao fornecer pares de chave/valor opcionais, o template pode gravá-los automaticamente no novo componente. Além disso, os seguintes valores opcionais também podem ser especificados.
cf cf
Se o componente estiver relacionado ao conteúdo em um Fragmento de conteúdo, você poderá fornecer as seguintes informações.
namedefine um nome opcional salvo no JCR para o componente recém-criado.- Apenas informativo e geralmente não exibido na interface do usuário como
titleé.
- Apenas informativo e geralmente não exibido na interface do usuário como
cfModeldefine o modelo de Fragmento de Conteúdo para o componente recém-criado.cfFolderdefine em qual pasta o fragmento de conteúdo será criado.titledefine o título do novo fragmento de conteúdo.descriptiondefine uma descrição do novo fragmento de conteúdo.templatedefine chave/valores opcionais a serem gravados automaticamente no fragmento de conteúdo recém-criado.- Útil para texto explicativo, de amostra ou de espaço reservado.
cf Pode ser implícito cf-implied
Se a página for instrumentada para apontar para um campo de referência, cf será presumido.
<div data-aue-resource="urn:aem:/content" data-aue-type="container" data-aue-prop="field"></div>
Nesse caso, cf é presumido, porque data-aue-prop aponta para um campo de referência. Sem o data-aue-prop, o Editor Universal assumirá page, pois nesse caso os componentes não são vinculados por meio de um campo de referência.
<div data-aue-resource="urn:aem:/content" data-aue-type="container"></div>
Componentes são simplesmente subnós abaixo do recurso.