內容片段的元件 components-for-content-fragments
片段編寫的元件 components-for-fragment-authoring
請參閱內容片段管理API — 使用者端。
用於頁面編寫的元件 components-for-page-authoring
Adobe Experience Manager (AEM)內容片段是建立並管理為不受頁面影響的資產。 它們可讓您建立管道中性內容,連同(可能特定於管道)變數。 您接著可以在編寫內容頁面時,使用這些片段及其變數。 您也可以將現有內容片段資產從資產瀏覽器拖曳至頁面 (如同其他資產型元件,例如基礎元件影像)來使用現有內容片段資產。 現成可用的內容片段元件只會顯示參照內容片段的一個元素。 使用元件對話方塊,您可以定義要在頁面上顯示的元素、變數和片段段落的範圍。
定義 definition
內容片段 元件是用來儲存內容片段資產的參考(有效地增強文字資產)。 內容片段的資源型別為:
dam/cfm/components/contentfragment/contentfragment
參照是在屬性中定義:
fileReference
只有觸控式UI的編輯器完全支援內容片段元件,其中包括使用者端程式庫:
cq.authoring.editor.plugin.cfm
此程式庫會將內容片段的特定功能新增到編輯器中。 例如,可支援在頁面上新增和設定內容片段的功能、在資產瀏覽器中搜尋內容片段資產的功能,以及側面板中的相關內容。
中間內容 in-between-content
內容片段 t元件可讓您在顯示的元素的不同段落之間放置額外的元件。 基本上,顯示的元素由不同的段落組成(每個段落都標有歸位字元)。 在每個段落之間,您可以使用其他元件來插入內容。
從技術觀點來看,所顯示元素的每個段落都位於其自身的parsys中,您在段落之間新增的每個元件都會(在機殼下)插入到parsys中。
換言之,如果內容片段元件的例項由三個段落組成,則元件在存放庫中會有三個不同的parsys。 所有新增至內容片段的中間內容實際上都位於這些parsys內。
在存放庫中,中間內容會相對於其在整體段落結構中的位置儲存,也就是說,它不會附加至實際的段落內容。
為了說明這一點,請考量您有以下事項:
-
由三個段落組成的內容片段例項
-
而且有些內容已經插入在第二段之後
- 這表示內容會儲存在第二個parsys中。
基本上,如果此例項的段落結構有所變更(透過變更顯示的變化、元素或段落範圍),可能會影響內容片段內容時顯示的中間內容:
-
會進行編輯,並在第二段之前新增另一個段落:
- 中間內容會顯示在新建的段落之後(第二個parsys現在會儲存新建的段落)。
-
已編輯並移除第二段:
- 中間內容會顯示在先前為第三個的段落之後(第二個parsys現在會保留前一個第三個段落)。
-
設定為只顯示第一段:
- 不會顯示中間內容(由於新設定,第二個parsys不再呈現)。
自訂內容片段元件 customizing-the-content-fragment-component
若要使用現成的內容片段元件作為擴充的藍圖,您應遵守下列合約:
-
重複使用HTL演算指令碼及其關聯的POJO,以便檢視中間內容功能的實作方式。
-
重複使用內容片段節點:
cq:editConfig
轉譯前的資產重新寫入 asset-rewriting-before-rendering
內容片段管理會使用內部轉譯程式,為頁面產生最終HTML輸出。 這在內部供內容片段元件使用,同時也供在參考頁面上更新參考片段的背景程式使用。
在內部,Sling重寫程式會用於該轉譯。 在/libs/dam/config/rewriter/cfm
找到個別的設定,必要時可加以調整。 如需詳細資訊,請參閱Apache Sling重寫程式。
/libs/dam/config/rewriter/cfm
serializerType
必須 更新至:serializerType="html5-serializer"
現成可用的組態使用下列轉換器:
-
transformer-cfm-payloadfilter
— 僅用於擷取片段HTML的body
部分(<body>...</body>
) -
transformer-cfm-parfilter
— 如果指定了段落範圍,則篩選掉不需要的段落(與內容片段元件一樣) -
transformer-cfm-assetprocessor
— 內部用於擷取內嵌於片段中的資產清單
轉譯程式透過com.adobe.cq.dam.cfm.content.FragmentRenderService
公開,如有需要,可由自訂元件使用(例如)。