定義內容片段模型 defining-content-fragment-models

IMPORTANT
透過早期採用者計畫可以使用內容片段模型的各種功能。
若要檢視狀態,以及如果您有興趣要如何套用,請檢視發行說明

Adobe Experience Manager (AEM) as a Cloud Service中的內容片段模型定義內容片段的內容結構。 這些片段隨後可用於頁面製作,或用作Headless內容的基礎。

本頁涵蓋如何使用專用編輯器定義您的內容片段模式。 請參閱管理您的內容片段模式,瞭解建立片段後可用的進一步工作與選項,包括內容片段主控台可用的動作允許在資料夾上建立模式以及發佈模式

CAUTION
如果要查詢多個引用的片段,則建議不要讓各種片段模式具有名稱相同,但型別不同的欄位名稱。
如需詳細資訊,請參閱搭配內容片段使用的AEM GraphQL API — 限制

定義內容片段模型 defining-your-content-fragment-model

內容片段模式透過選擇​ 資料型別,有效地定義了結果內容片段的結構。 使用模型編輯器,您可以新增資料型別的例項,然後將其設定以建立必填欄位:

CAUTION
編輯現有內容片段已使用的模型可能會影響這些相依片段。
  1. 在內容片段主控台中,選取內容片段模式的面板,並導覽至儲存您的內容片段模式的資料夾。

    note note
    NOTE
    您也可以在建立模型後直接開啟模型。
  2. 開啟​ 編輯 ​所需的模型;使用快速動作,或選取模型,然後從工具列選取動作。

    開啟模型編輯器後,會顯示:

    • 左:欄位已定義
    • 右:資 料類型 ,可用於建立欄位( 和屬性 ,以供建立欄位後使用)
    note note
    NOTE
    當欄位定義為​ 必要 ​時,左窗格中指示的​ 標籤 ​會標示為字元(*)。

    屬性

  3. 新增欄位

    • 將欄位所需的資料型別拖曳到所需位置:

      拖曳資料型別以建立欄位

    • 將欄位新增至模型後,右側面板會顯示可針對該特定資料型別定義的​ 屬性。 您可以在此處定義該欄位的必要條件。

      • 許多屬性不言自明,如需詳細資訊,請參閱屬性(資料型別)

      • 輸入​ 欄位標籤 ​會自動完成​ 屬性名稱 (如果空白),之後可以手動更新。

        note caution
        CAUTION
        手動更新資料型別的屬性​ Property Name ​時,名稱必須僅包含​ A-Z、a-z、0-9和下劃線「_」作為特殊字元。
        如果在舊版AEM中建立的模型包含非法字元,請移除或更新這些字元。

      例如:

      欄位屬性

  4. 移除欄位

    選取必填欄位,然後選取垃圾桶圖示。 系統會要求您確認動作。

    移除

  5. 新增所有必要欄位,並視需要定義相關屬性。 例如:

    儲存

  6. 選取​ 儲存 ​以保留定義。

資料類型 data-types

定義模型時可選用多種資料型別:

  • 單行文字

    • 為單行文字新增欄位;可以定義最大長度
    • 欄位可設定為允許片段作者建立欄位的新執行個體
  • 多行文字

    • 可能是RTF、純文字或Markdown的文字區域
    • 欄位可設定為允許片段作者建立欄位的新執行個體
    note note
    NOTE
    文字區域是否為RTF、純文字或Markdown,是由屬性​ 預設型別 ​在模型中定義。
    此格式無法從內容片段編輯器變更,只能從模型變更。
  • 數字

    • 新增數值欄位
    • 欄位可設定為允許片段作者建立欄位的新執行個體
  • 布林值

    • 新增布林值核取方塊
  • 日期和時間

    • 新增日期和/或時間欄位
  • 分項清單

    • 新增一組核取方塊、選項按鈕或下拉式清單欄位
      • 您可以指定片段作者可用的選項
  • 標籤

    • 允許片段作者存取及選取標籤區域
  • 片段參考

    • 參考其他內容片段;可用於建立巢狀內容

    • 可以設定此資料類型以允許片段作者:

      • 直接編輯參考的片段。
      • 根據適當的模式建立新的內容片段
      • 建立欄位的新執行個體
    • 參考指定參考資源的路徑;例如/content/dam/path/to/resource

  • 片段參考(UUID)

    • 參考其他內容片段;可用於建立巢狀內容

    • 可以設定此資料類型以允許片段作者:

      • 直接編輯參考的片段。
      • 根據適當的模式建立新的內容片段
      • 建立欄位的新執行個體
    • 在編輯器中,參考會指定參考資源的路徑;在內部參考會儲存為參考資源的通用唯一ID (UUID)

      • 您不需要知道UUID;在片段編輯器中,您可以瀏覽到所需的片段
  • 內容參考

    • 參考任何型別的其他內容;可用於建立巢狀內容
    • 如果參照了影像,您可以選擇顯示縮圖
    • 欄位可設定為允許片段作者建立欄位的新執行個體
    • 參考指定參考資源的路徑;例如/content/dam/path/to/resource
  • 內容參考(UUID)

    • 參考任何型別的其他內容;可用於建立巢狀內容
    • 如果參照了影像,您可以選擇顯示縮圖
    • 欄位可設定為允許片段作者建立欄位的新執行個體
    • 在編輯器中,參考會指定參考資源的路徑;在內部參考會儲存為參考資源的通用唯一ID (UUID)
      • 您不需要知道UUID;在片段編輯器中,您可以瀏覽到所需的資產資源
  • JSON物件

    • 允許內容片段作者在片段的對應元素中輸入JSON語法。

      • 允許AEM儲存您從其他服務複製/貼上的直接JSON。
      • JSON會傳遞,並在GraphQL中輸出為JSON。
      • 在內容片段編輯器中包括JSON語法醒目提示、自動完成和錯誤醒目提示。
  • 索引標籤預留位置

    • 允許引進索引標籤,以在編輯內容片段內容時使用。

      • 這些在模型編輯器中顯示為分隔線,分隔內容資料型別清單的區段。 每個例項代表新索引標籤的開始。
      • 在片段編輯器中,每個例項都會顯示為一個索引標籤。
      note note
      NOTE
      此資料型別僅用於格式設定,AEM GraphQL結構描述會忽略此資料型別。

屬性(資料型別) properties

許多屬性的含義一目瞭然,對於某些屬性,其他詳細資訊如下:

  • 屬性名稱

    手動更新資料型別的這個屬性時,名稱​ 必須 ​僅包含​ A-Z、a-z、0-9和下劃線「_」作為特殊字元。

    note caution
    CAUTION
    如果在舊版AEM中建立的模型包含非法字元,請移除或更新這些字元。
  • 呈現為

    在片段中實現/轉譯欄位的各種選項。 這通常可讓您定義作者將看到欄位的單一例項,還是允許建立多個例項。 使用​ 多個欄位 ​時,您可以定義專案的最小和最大數量 — 如需詳細資訊,請參閱驗證

  • 欄位標籤
    輸入​ 欄位標籤 ​會自動產生​ 屬性名稱,然後可視需要手動更新。

  • 驗證
    基本驗證可由機制使用,例如​ Required ​屬性。 有些資料型別有額外的驗證欄位。 如需詳細資訊,請參閱驗證

  • 對於「多行」 資料類型 ,可將「預設類型 ​」定義為:

    • RTF格式
    • Markdown
    • 純文字

    如果未指定,此欄位會使用預設值​ RTF

    在內容片段模型中變更​ 預設型別,只會在編輯器中開啟並儲存該片段後,對現有、相關的內容片段生效。

  • 唯一
    從目前模型建立的所有內容片段內容(適用於特定欄位)必須是唯一的。

    這是為了確保內容作者無法重複已新增至相同模型其他片段中的內容。

    例如,內容片段模型中名為Country的​ 單行文字 ​欄位在兩個相依的內容片段中不能有值Japan。 嘗試第二個執行個體時會發出警告。

    note note
    NOTE
    確保每個語言根的唯一性。
    note note
    NOTE
    變數可以有與相同片段變數相同的​ 唯一 ​值,但與其他片段變數中使用的值不同。
  • 如需特定資料型別及其屬性的詳細資訊,請參閱​ 內容參考

  • 如需特定資料型別及其屬性的詳細資訊,請參閱​ 片段參考(巢狀片段)

  • 可翻譯

    核取內容片段模型編輯器中欄位上的​ 可翻譯 ​核取方塊將:

    • 確認欄位的屬性名稱已新增至翻譯組態,內容/content/dam/<sites-configuration> (如果尚未存在)。
    • 對於GraphQL:將內容片段欄位上的<translatable>屬性設定為yes,以允許GraphQL查詢篩選僅包含可翻譯內容的JSON輸出。

驗證 validation

各種資料型別現在包含定義在結果片段中輸入內容時適用的驗證需求的可能性:

  • 單行文字

    • 與預先定義的規則運算式比較。
  • 數字

    • 檢查特定值。
  • 內容參考

    • 測試特定型別的內容。
    • 只能參考指定檔案大小或更小的資產。
    • 只能參考預先定義的寬度和/或高度範圍(以畫素為單位)內的影像。
  • 片段參考

    • 測試特定內容片段模型。
  • 最小專案數 / 最大專案數

    已定義為​ 多個欄位 (以​ Render As ​設定)的欄位具有選項:

    • 最小專案數
    • 最大專案數

    已在內容片段編輯器中驗證這些專案。

使用參照來形成巢狀內容 using-references-to-form-nested-content

內容片段可使用下列任一種資料型別來形成巢狀內容:

  • 內容參考

    • 提供其他內容的簡單參照;任何型別。

    • 由資料型別提供:

      • 內容參考 — 以路徑為基礎
      • 內容參考(UUID) — 以UUID為基礎
    • 可以為一個或多個參考(在產生的片段中)設定。

  • 片段參考 (巢狀片段)

    • 根據指定的特定模型,參考其他片段。

    • 由資料型別提供:

      • 片段參考 — 以路徑為基礎
      • 片段參考(UUID) — 以UUID為基礎
    • 可讓您包含/擷取結構化資料。

      note note
      NOTE
      當您透過GraphQL🔗使用內容片段的Headless內容傳遞時,此方法特別令人感興趣。

      * 可以為一個或多個參考(在產生的片段中)設定。

NOTE
請參閱升級您的UUID參考內容片段,以取得有關內容/片段參考和內容/片段參考(UUID)以及升級為UUID型資料型別的進一步資訊。
NOTE
AEM針對下列專案提供週期性保護:
  • 內容參照
    這可防止使用者新增對目前片段的引用,並可能導致空白的片段引用選取器對話方塊。

  • GraphQL中的片段參考
    如果您建立深層查詢,且該查詢傳回多個互相參照的內容片段,則它會在第一次出現時傳回null。

CAUTION
如果要查詢多個引用的片段,則建議不要讓各種片段模式具有名稱相同,但型別不同的欄位名稱。
如需詳細資訊,請參閱搭配內容片段使用的AEM GraphQL API — 限制

內容參考 content-reference

內容參考 ​和​ 內容參考(UUID) ​資料型別可讓您轉譯來自其他來源的內容;例如,影像、頁面或體驗片段。

除了標準屬性之外,您還可以指定:

  • 根路徑,指定或代表要儲存任何參考內容的位置

    note note
    NOTE
    如果您想在使用內容片段編輯器時直接在此欄位上傳和參考影像,則必須使用此選項。
    如需詳細資訊,請參閱參考影像
  • 可參考的內容型別

    note note
    NOTE
    如果您想要在使用內容片段編輯器時直接上傳和參考此欄位中的影像,這些必須包含​ 影像
    如需詳細資訊,請參閱參考影像
  • 檔案大小限制

  • 如果參照影像:

    • 顯示縮圖
    • 影像高度和寬度的限制

內容參考

片段參考(巢狀片段) fragment-reference-nested-fragments

片段參考 ​和​ 片段參考(UUID) ​資料型別可以參考一或多個內容片段。 此功能可讓您擷取多個圖層的結構化資料,在擷取應用程式中使用的內容時特別感興趣。

例如:

  • 定義員工詳細資訊的模型;包括:
    • 定義僱主(公司)的模型參考
type EmployeeModel {
    name: String
    firstName: String
    company: CompanyModel
}

type CompanyModel {
    name: String
    street: String
    city: String
}
NOTE
片段參考對搭配GraphQL🔗使用內容片段的Headless內容傳遞特別感興趣。

除了標準屬性之外,您還可以定義:

  • 呈現為

    • multifield — 片段作者可以建立多個個別參考

    • fragmentreference — 允許片段作者選取片段的單一參考

  • 模型型別
    可選取多個模型。 將參照新增至內容片段時,任何參照的片段都必須使用這些模型建立。

  • 根路徑
    這會指定或表示任何參考片段的根路徑。

  • 允許建立片段

    如此可讓片段作者根據適當的模型建立片段。

    • fragmentreferencecomposite — 允許片段作者藉由選取多個片段來建置複合

    片段參考

NOTE
已建立重複保護機制。 它禁止使用者在片段參考中選取目前的內容片段,並可能導致空白的片段參考選擇器對話方塊。
GraphQL中也有片段參考的週期性保護。 如果您在兩個互相參照的內容片段間建立深層查詢,則會傳回null。
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab