コンポーネント定義 component-definition

コンポーネント定義とユニバーサルエディター間の JSON 契約について詳しく説明します。

概要 overview

component-definition.json ファイルは、プロジェクトのコンテンツ作成者が使用できるコンポーネントを定義します。このドキュメントでは、このファイルの目的と、ユニバーサルエディターでこのファイルを使用して作成者にページオーサリングコンポーネントを表示する方法について詳しく説明します。

TIP
コンテンツモデリングプロセスの概要について詳しくは、Edge Delivery Services プロジェクトを使用した WYSIWYG オーサリングのコンテンツモデリングドキュメントを参照してください。
TIP
独自の component-definition.json ファイルをゼロから作成する必要はありません。プロジェクトのブートストラップに使用するプロジェクトボイラープレートには、ニーズに合わせて調整できる、完全に機能する component-definition.json ファイルが含まれています。

コンポーネント定義の例 example

以下は、例として、完全ですがシンプルな 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 は、エディターのプロパティパネルで 追加 アイコンをクリックしてページに新しいコンポーネントを追加した際に、作成者がユニバーサルエディターで見るコンポーネントのグループを定義します。グループは、コンポーネントの整理に役立ちます。共通グループには、一般コンポーネント ​と​ 詳細コンポーネント ​があります。

  • title は、エディター UI に表示されるグループのテキストによる説明を定義します。
  • id は、グループを一意に識別します。

components components

components は、グループに属するコンポーネントを定義します。

  • title は、エディター UI に表示されるコンポーネントのテキストによる説明を定義します。

  • id は、コンポーネントを一意に識別します。

    • 同じ idコンポーネントモデルは、コンポーネントのフィールドを定義します。
    • これは一意なので、例えば、フィルター定義で使用して、コンテナに追加できるコンポーネントを決定できます。
  • model は、コンポーネントで使用されるモデルを定義します。

    • その結果、モデルはコンポーネント定義内で集中管理され、実装を指定する必要はありません。
    • これにより、コンテナ間でコンポーネントを移動できます。
  • filter は、コンポーネントで使用されるフィルターを定義します。

plugins plugins

plugins は、コンポーネントの永続化を担当するプラグインを定義します。一般的なプラグインを次に示します。

  • aemAEM as a Cloud Service.
  • aem65AEM 6.5. およびAEM 6.5 LTS
  • xwalkEdge Delivery Services用AEM Sitesを使用したオーサリング ール

page または cf page-cf

plugin を定義したら、それがページ関連かフラグメント関連かを示す必要があります。

  • page は、コンポーネントが現在のページのコンテンツであることを示します。
  • cf は、コンポーネントがコンテンツフラグメント内のコンテンツに関連していることを示します。

page page

コンポーネントがページ上のコンテンツである場合は、次の情報を指定できます。

  • resourceType は、コンポーネントのレンダリングに使用される Sling resourceType を定義します。
  • template は、新しく作成されたコンポーネントに自動的に書き込まれるオプションのキーや値を定義し、コンポーネントに適用するフィルターやモデルを定義します。
    • 説明、サンプル、プレースホルダーテキストに役立ちます。

template template

オプションのキーと値のペアを指定することで、template はこれらを新しいコンポーネントに自動的に書き込むことができます。さらに、次のオプション値も指定できます。

cf cf

コンポーネントがコンテンツフラグメント内のコンテンツに関連している場合は、次の情報を指定できます。

  • name は、新しく作成されたコンポーネントの JCR に保存されるオプションの名前を定義します。
    • 情報提供のみを目的としており、通常は title のように UI には表示されません。
  • cfModel は、新しく作成されたコンポーネントのコンテンツフラグメントモデルを定義します。
  • cfFolder は、コンテンツフラグメントが作成されるフォルダーを定義します。
  • title は、新しいコンテンツフラグメントのタイトルを定義します。
  • description は、新しいコンテンツフラグメントの説明を定義します。
  • template は、新しく作成されたコンテンツフラグメントに自動的に書き込まれるオプションのキーや値を定義します。
    • 説明、サンプル、プレースホルダーテキストに役立ちます。

cf は暗黙的に指定可能 cf-implied

ページが参照フィールドを指すように実装されている場合は、cf が想定されます。

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

このような場合、data-aue-prop が参照フィールドを指しているので、cf が想定されます。data-aue-prop がない場合、コンポーネントが参照フィールドを通じてリンクされていないので、ユニバーサルエディターでは page が想定されます。

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

コンポーネントは、単にリソースの下にあるサブノードです。

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