元件定義 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定義編輯器使用者介面中顯示之群組的文字說明。id是群組的唯一識別。
components components
components 定義哪些元件屬於某個群組。
plugins plugins
plugins 定義哪個外掛程式負責保留元件。常見的外掛程式包括:
- AEM as a Cloud Service 的
aem。 - AEM 6.5. 和 AEM 6.5 LTS 的
aem65 - 使用 AEM Sites 進行 Edge Delivery Services 編寫 的
xwalk。
page 或 cf page-cf
定義 plugin 後,您必須標明這是頁面相關或片段相關。
page表示該元件是目前頁面上的內容。cf表示該元件與內容片段中的內容相關。
page page
如果元件是頁面上的內容,您可以提供以下資訊。
resourceType定義用於轉譯元件的 SlingresourceType。template定義要自動寫入新建立之元件的選用鍵/值,並定義應將哪個篩選器和/或模型套用至該元件。- 適用於解釋性、範例或預留位置文字。
template template
藉由提供選用的鍵/值配對,template 可以自動將這些寫入新元件。此外,也可以指定下列選用值。
cf cf
如果元件與內容片段中的內容相關,則可以提供以下資訊。
name為新建立的元件定義儲存至 JCR 的選用名稱。- 僅供參考,不像
title那樣通常會顯示在使用者介面中。
- 僅供參考,不像
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>
於此情況下會假定使用 cf,因為 data-aue-prop 指向一個參照欄位。如果沒有 data-aue-prop,通用編輯器會假定使用 page,因為於此情況下,並沒有透過參照欄位連結元件。
<div data-aue-resource="urn:aem:/content" data-aue-type="container"></div>
元件只是資源下方的子節點。
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab