Komponentdefinition component-definition

Förstå JSON-kontraktet mellan komponentdefinitionen och den universella redigeraren i detalj.

Ökning overview

Filen component-definition.json definierar de komponenter som är tillgängliga för de som skapar ditt innehåll för projektet. I det här dokumentet förklaras i detalj syftet med filen och hur den används av den universella redigeraren för att ge författarna tillgång till komponenter för sidredigering.

TIP
En översikt över innehållsmodelleringsprocessen finns i dokumentet Innehållsmodellering för WYSIWYG-redigering med Edge Delivery Services-projekt.
TIP
Du behöver inte skapa en egen component-definition.json-fil från grunden. Projektmallen som du använder för att bootstrap ditt projekt innehåller en fullt fungerande component-definition.json fil ​ som du kan anpassa efter dina behov.

Exempel på komponentdefinition example

Följande är ett fullständigt, men enkelt component-definition.json som exempel.

{
  "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 definierar de grupper av komponenter som författaren ser i den universella redigeraren när han klickar på ikonen Lägg till på egenskapspanelen i redigeraren för att lägga till en ny komponent på en sida. Med grupper kan du ordna komponenterna. Vanliga grupper kan vara Allmänna komponenter och Avancerade komponenter.

  • title definierar den textbeskrivning av gruppen som visas i redigerarens användargränssnitt.
  • id identifierar gruppen unikt.

components components

components definierar vilka komponenter som tillhör en grupp.

  • title definierar textbeskrivningen för komponenten som visas i användargränssnittet.

  • id identifierar komponenten unikt.

    • komponentmodellen för samma id definierar komponentens fält.
    • Eftersom den är unik kan den till exempel användas i en filterdefinition för att avgöra vilka komponenter som kan läggas till i en behållare.
  • model definierar vilken modell som används med komponenten.

    • Modellen underhålls därför centralt i komponentdefinitionen och behöver inte vara specificerad i instrumenteringen.
    • På så sätt kan du flytta komponenter mellan behållare.
  • filter definierar vilket filter som ska användas med komponenten.

plugins plugins

plugins definierar vilket plugin-program som ansvarar för att komponenten behålls. Vanliga plugin-program:

page eller cf page-cf

När plugin har definierats måste du ange om den är sidrelaterad eller fragmentrelaterad.

  • page anger att komponenten är innehåll på den aktuella sidan.
  • cf anger att komponenten är relaterad till innehåll i ett innehållsfragment.

page page

Om komponenten är innehåll på sidan kan du ange följande information.

  • resourceType definierar Sling resourceType som används för återgivning av komponenten.
  • template definierar valfria nycklar/värden som ska skrivas automatiskt till den nyskapade komponenten och definierar vilket filter och/eller vilken modell som ska användas på komponenten.
    • Användbart för förklarande text, exempeltext eller platshållartext.

template template

Genom att tillhandahålla valfria nyckel-/värdepar kan template automatiskt skriva dessa till den nya komponenten. Dessutom kan följande valfria värden anges.

cf cf

Om komponenten är relaterad till innehåll i ett innehållsfragment kan du ange följande information.

  • name definierar ett valfritt namn som har sparats i JCR för den nyskapade komponenten.
    • Endast informativ och visas vanligtvis inte i användargränssnittet som title är.
  • cfModel definierar ​ Content Fragment ​-modellen för den nyskapade komponenten.
  • cfFolder definierar i vilken mapp innehållsfragmentet ska skapas.
  • title definierar titeln på det nya innehållsfragmentet.
  • description definierar en beskrivning av det nya innehållsfragmentet.
  • template definierar valfria nycklar/värden som automatiskt ska skrivas till det nyligen skapade innehållsfragmentet.
    • Användbart för förklarande text, exempeltext eller platshållartext.

cf kan vara underförstådd cf-implied

Om sidan är instrumenterad för att peka på ett referensfält antas cf.

<div data-aue-resource="urn:aem:/content" data-aue-type="container" data-aue-prop="field"></div>

I så fall antas cf eftersom data-aue-prop pekar på ett referensfält. Utan data-aue-prop får den universella redigeraren page eftersom komponenterna i så fall inte är länkade via ett referensfält.

<div data-aue-resource="urn:aem:/content" data-aue-type="container"></div>

Komponenterna är helt enkelt delnoder under resursen.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab