自訂AEM網站輸出 id166TG0B30WR
AEM Guides支援以下列格式建立輸出:
- AEM網站
- HTML5
- ePub
- 透過DITA-OT自訂輸出
對於AEM Site輸出,您可以針對不同的輸出任務指派不同的設計範本。 這些設計範本可以不同的版面配置呈現DITA內容。 例如,您可以為內部和外部對象指定不同的設計範本。
您也可以將自訂的DITA Open Toolkit (DITA-OT)外掛程式與AEM Guides搭配使用。 您可以上傳這些自訂DITA-OT外掛程式,以特定方式產生PDF輸出。
自訂設計範本以產生輸出 customize_xml-add-on
AEM Guides使用一組預先定義的設計範本來產生AEM網站輸出。 您可以自訂AEM Guides設計範本,以產生符合您公司品牌規範的輸出。 設計範本是各種樣式(CSS)、指令碼\(伺服器端和使用者端\)、資源\(影像、標誌和其他資產\)以及將所有這些資源繫結在一起的JCR節點的集合。 設計範本可以像單一伺服器端指令碼一樣簡單,只包含幾個JCR節點,或樣式、資源和JCR節點的複雜組合。 AEM Guides發佈子系統會在產生AEM Site輸出時使用設計範本,這些範本可控制所產生輸出的結構、外觀和風格。
設計範本資源在伺服器上的放置位置沒有限制,但通常會根據其功能進行邏輯組織。 例如,預設範本的所有JavaScript和CSS檔案都儲存在/etc/designs/fmdita/clientlibs/siteoutput/default資料夾下。 無論這些檔案位於何處,都會由JCR節點集合連結在一起。 這些JCR節點和檔案共同構成了整個設計範本。
AEM Guides隨附的預設設計範本可讓您自訂登入、主題和搜尋頁面元件。 您可以複製預設設計和對應的參照範本,並指定不同的元件以產生所需的輸出。
下列標籤提供指示,讓您根據您的AEM設定,指定自己的設計範本以用於產生Experience Manager Guides網站輸出: Cloud Service或內部部署。
-
使用「封裝管理員」從下列位置下載預設設計範本:
/libs/fmdita/config/templates
-
在您的Cloud Manager Git存放庫中的以下位置建立已下載檔案的復本:
/apps/fmdita/config/templates
-
您也必須下載並複製從預設範本節點參照的範本。 參照的範本放置在:
/libs/fmdita/templates/default/cqtemplates
-
登入AEM並開啟CRXDE Lite模式。
-
導覽至預設的設計範本節點。 預設設計範本節點的位置為:
/libs/fmdita/config/templates/ {width="300"}
note note NOTE 將預設設計範本從 libs資料夾複製到apps資料夾,並在apps資料夾中進行變更。 您也必須變更從預設範本節點參考的範本。 參照的範本放置在/libs/fmdita/templates/default/cqtemplates節點下。 在進行任何變更之前,請先在apps資料夾中複製參照的範本。 -
按一下 範本 節點中的 預設 元件以存取其屬性。
下表說明AEM Guides設計範本屬性。
landingPageTemplate、searchPageTemplate、topicPageTemplate、shadowPageTemplatecq:Template節點\(登陸、搜尋和主題\)。 依預設,這些頁面的cq:Template節點可以在/libs/fmdita/templates/default/cqtemplates節點中找到。 此節點會定義登陸、搜尋和主題頁面的結構和屬性。shadowPageTemplate用於最佳化區塊內容。 您必須將此屬性的值設定為: fmdita/templates/default/cqtemplates/shadowpage注意:您必須指定
topicPageTemplate的值。 landingPageTemplate和searchPageTemplate為選擇性屬性。 如果您不想產生搜尋和登入頁面,請勿指定這些屬性。titletopicContentNodetopicHeadNodetocNodebasePathPropindexPathProppdfPathProppdfTypePropsearchPathPropsiteTitlePropsourcePathProptocPathProp如需詳細資訊,請參閱建立您的第一個Adobe Experience Manager網站和在AEM上開發您自己的網站的基本知識。
使用檔案標題來產生AEM網站輸出
產生AEM Site輸出時,產生URL的方式對發現您的內容而言至關重要。 如果您使用UUID型檔案名稱,根據檔案的UUID產生URL將不利於搜尋。 身為管理員或發佈者,您可以控制要如何產生AEM網站輸出的URL。 AEM Guides提供設定,您可選擇使用檔案標題而非UUID式檔案名稱來產生AEM Site輸出的URL。 對於以UUID為基礎的檔案系統,此選項預設為開啟。 這表示當您產生UUID型檔案系統的AEM Site輸出時,會使用檔案的標題來產生URL,而非檔案的UUID。
若為使用非UUID型檔案系統的內部部署設定,會使用檔案名稱而非檔案標題來產生AEM Site輸出。 依預設,此選項是關閉的。 這表示產生AEM Site輸出時,會使用檔案名稱來產生URL,而非檔案標題。 您可以啟用此選項,選擇根據檔案標題產生URL。
下列標籤提供根據您的Experience Manager Guides設定,在AEM網站輸出中設定URL產生的指示: Cloud Service或內部部署。
使用組態覆寫中提供的指示來建立組態檔。 在設定檔案中,提供下列(property)詳細資訊,以在AEM網站輸出中設定URL產生:
| table 0-row-3 1-row-3 | ||
|---|---|---|
| PID | 屬性索引鍵 | 屬性值 |
com.adobe.fmdita.config.ConfigManager |
aemsite.pagetitle |
布林值(true/false)。 如果您想使用頁面標題產生輸出,則將此屬性設定為true。 預設會設定為使用檔案名稱。 預設值: false |
-
開啟Adobe Experience Manager Web主控台設定頁面。
存取設定頁面的預設URL為:
code language-http http://<server name>:<port>/system/console/configMgr -
搜尋並按一下 com.adobe.fmdita.config.ConfigManager 套件。
-
選取 使用AEM網站頁面名稱的標題 選項。
note note NOTE 如果您要使用檔案名稱產生輸出,請取消選取此選項。 -
按一下儲存。
設定AEM網站輸出的URL以使用檔案標題(僅適用於Cloud Service)
您可以在AEM網站輸出的URL中使用檔案標題。 如果檔案名稱不存在或包含所有特殊字元,您可以設定系統在AEM Site輸出的URL中,以分隔符號取代特殊字元。 您也可以將其設定為使用第一個子主題名稱來取代。
若要設定頁面名稱,請執行下列步驟:
- 使用組態覆寫中提供的指示來建立組態檔。
- 在組態檔中,提供下列(屬性)詳細資訊,以設定主題的頁面名稱。
com.adobe.fmdita.common.SanitizeNodeNamenodename.systemDefinedPageNametrue/false)。 預設值: false例如,如果中的@navtitle<topichead>具有所有特殊字元,而您將aemsite.pagetitle屬性設定為true,則預設會使用分隔符號。 如果您將nodename.systemDefinedPageName屬性設為true,它會顯示第一個子主題的名稱。
設定檔案名稱清理規則,以AEM Sites和其他格式建立主題和發佈輸出 id2164D0KD0XA
身為管理員,您可以定義檔案名稱中允許的有效特殊字元清單,這些字元最終會形成AEM網站輸出的URL。 在舊版中,使用者可定義包含特殊字元(如@、$、>等)的檔案名稱。 這些特殊字元會在產生AEM網站頁面時產生編碼的URL。
自3.8發行版本開始,已新增設定以定義檔案名稱中允許的特殊字元清單。 依預設,有效的檔案名稱組態包含"a-z A-Z 0-9 - _"。 這表示在建立檔案時,檔案標題中可以有任何特殊字元,但在內部,檔案名稱中將會以連字型大小(-)取代。 例如,您可以將檔案的標題設為Introduction 1或Introduction@1,針對這兩種情況產生的對應檔案名稱都是Introduction-1。
定義有效字元清單時,請記住,這些字元"*/:[\]|#%{}?&<>"/+"和a space將一律以連字型大小(-)取代。
下列標籤會提供根據您的AEM設定,在檔案名稱和Experience Manager Guides網站輸出中設定有效特殊字元的指示: Cloud Service或內部部署。
使用組態覆寫中提供的指示來建立組態檔。 在設定檔案中,提供下列(property)詳細資訊,以便在檔案名稱和AEM Site輸出中設定有效的特殊字元:
| table 0-row-3 1-row-3 | ||
|---|---|---|
| PID | 屬性索引鍵 | 屬性值 |
com.adobe.fmdita.common.SanitizeNodeNameImpl |
aemsite.DisallowedFileNameChars |
確定屬性已設定為'<>`@$。 您可以在此清單中新增更多特殊字元。 |
| note note |
|---|
| NOTE |
| 上述設定適用於所有輸出格式。 這表示產生PDF、HTML或自訂輸出時,最終輸出將遵循設定的檔案名稱清理規則。 |
您也可以設定其他屬性,例如檔案名稱中的使用小寫、處理無效字元的分隔符號,以及檔案名稱中允許的最大字元數。 若要設定這些屬性,請在設定檔案中新增下列機碼值組:
| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| 屬性索引鍵 | 屬性值 |
nodename.uselower |
布林值(true/false)。 預設值: true |
nodename.separator |
任何字元。 預設值: _ \(底線\) |
nodename.maxlength |
整數值。 預設值: 50 |
-
開啟Adobe Experience Manager Web主控台設定頁面。
存取設定頁面的預設URL為:
code language-http http://<server name>:<port>/system/console/configMgr -
搜尋並按一下 com.adobe.fmdita.common.SanizeNodeNameImpl 套件。
-
在 不允許發佈至AEM Sites 屬性的字元集中,確定屬性已設為
'<>`@$。 您可以在此清單中新增更多特殊字元,但是它必須包含這些必要的特殊字元。note note NOTE 您也可以設定其他屬性,例如,檔案名稱中的使用小寫、處理無效字元的 分隔符號 以及檔案名稱中允許的字元數目上限。 -
按一下儲存。
-
搜尋並按一下 com.adobe.fmdita.config.ConfigManager 套件。
-
在 有效字元的Regex 屬性中,確定屬性已設為
[-a-zA-Z0-9_]。 您可以新增更多字元至此清單,但清單必須包含這些基本字元,且清單必須以連字型大小(-)開頭。note note NOTE 此屬性會定義用來建立新檔案的有效字元清單。 -
按一下儲存。
設定AEM網站節點結構的平面化
產生AEM Site輸出時,主題中每個元素的節點都會在內部建立。 對於包含數千個主題的DITA map,此節點結構可能會變得太深。 對於較大的網站,這種深度巢狀節點結構可能會出現效能問題。 下列快照會顯示AEM網站輸出的深度巢狀節點結構:
在上述快照中,請注意會為每個p元素及其後續子元素建立節點,並為主題中使用的其他所有元素建立類似的結構。
AEM Guides可讓您設定AEM網站輸出的節點結構在內部建立的方式。 您可以在指定元素處平面化節點結構,這表示您可以定義元素,將其視為主要元素,其內的所有子元素將與主要元素合併。 例如,如果您決定平面化p元素,則出現在p元素中的任何元素都將與主要p元素合併。 不會為p元素內的任何子元素建立個別附註。 下列快照顯示平面化於p元素的節點結構:
下列標籤會提供指示,讓您根據您的AEM設定來平面化Experience Manager Guides網站節點結構: Cloud Service或內部部署。
-
識別您要平面化節點結構的元素:
-
覆蓋
libs節點中的apps節點,並開啟elementmapping.xml檔案。 -
在您要平面化節點結構的元素定義中新增
<flatten>true</flatten>屬性。 例如,如果您想要平面化p元素的節點結構,請在p元素的定義中新增flatten屬性,如下所示:code language-xml <ditaelement> <name>p</name> <class>- topic/p</class> <componentpath>fmdita/components/dita/wrapper</componentpath> <type>COMPOSITE</type> <target>para</target> <flatten>true</flatten> <wrapelement>div</wrapelement> </ditaelement>note note NOTE 根據預設,flatten node屬性已在 p專案上設定。 -
使用組態覆寫中提供的指示來建立組態檔。
-
在設定檔中,提供下列(property)詳細資料:
table 0-row-3 1-row-3 PID 屬性索引鍵 屬性值 com.adobe.dxml.flattening.FlatteningConfigurationServiceflattening.enabled布林值(true/false)。
預設值:false
現在,當您產生AEM Site輸出時,p元素內的節點會平面化並儲存在p元素本身中。 您可以在CRXDE中找到p元素的新平面化屬性。
-
指定您要平面化節點結構的元素。
-
覆蓋
libs節點中的apps節點,並開啟elementmapping.xml檔案。 -
在您要平面化節點結構的元素定義中新增
<flatten>true</flatten>屬性。 例如,如果您想要平面化p元素的節點結構,請在p元素的定義中新增flatten屬性,如下所示:code language-xml <ditaelement> <name>p</name> <class>- topic/p</class> <componentpath>fmdita/components/dita/wrapper</componentpath> <type>COMPOSITE</type> <target>para</target> <flatten>true</flatten> <wrapelement>div</wrapelement> </ditaelement>note note NOTE 根據預設,flatten node屬性已在 p專案上設定。
-
-
在configMgr中啟用網站節點平面化設定。
-
開啟Adobe Experience Manager Web主控台設定頁面。
存取設定頁面的預設URL為:
code language-http http://<server name>:<port>/system/console/configMgr -
搜尋並按一下 com.adobe.dxml.flattening.FlatteningConfigurationService 組合。
-
選取 屬性flattening.enabled 選項。
-
按一下儲存。
-
| note important |
|---|
| IMPORTANT |
| 如果您在elementmapping.xml檔案中進行任何變更,請確定您開啟configMgr並儲存任何組合,以使變更生效。 |
現在,當您產生AEM Site輸出時,p元素內的節點會平面化並儲存在p元素本身中。 您可以在CRXDE中找到p元素的新平面化屬性。
在AEM網站輸出的內容中搜尋字串(僅適用於Cloud Service)
依預設,您只能在AEM網站輸出中搜尋標題中的字串。 您可以設定系統搜尋標題中的字串,也可以搜尋AEM Site輸出的內容或內文。
若要啟用搜尋,您應該設定AEM網站節點結構的平面化。
注意:
您最多可以搜尋1MB的平面化內容。 例如,在上一個熒幕擷圖中,您可以搜尋<p>標籤下的內容是否為<= 1Mb。
<flatten>屬性設定為true時,搜尋才會對元素生效。 依預設,AEM Guides將<p> <ul> <lI>等常用文字元素的<flatten>屬性設為true。 不過,如果您已建立某些自訂元素,則應在elementmapping.xml檔案中將<flatten>屬性設定為true。防止AEM網站節點結構平面化
與在AEM Site輸出中指定要平面化的節點類似,您也可以指定要從此設定中排除的元素。 例如,如果您想要在body專案處平面化節點,但您不希望table中的任何body專案平面化,則您可以在table專案的定義中新增排除屬性。
若要將table元素從平面化中排除,請將下列屬性新增至table元素的定義:
<preventancestorflattening>true|false</preventancestorflattening>
在AEM網站輸出中設定已刪除頁面的版本設定
當您針對現有輸出頁面設定選取了 刪除和 建立 選項來產生AEM網站輸出時,會為要刪除的頁面建立一個版本。 您可以設定系統在刪除前停止建立版本。
下列標籤會提供指示,讓您根據您的Experience Manager Guides設定,停止為正在刪除的頁面建立版本: Cloud Service或內部部署。
-
使用組態覆寫中提供的指示來建立組態檔。
-
在組態檔中,提供下列(property)詳細資訊,以設定 不要為已刪除的頁面建立版本 選項:
table 0-row-3 1-row-3 PID 屬性索引鍵 屬性值 com.adobe.fmdita.confi g.ConfigManagerno.version.creation.on.deletion布林值(true/false)。
預設值:truenote note NOTE 選取此選項後,使用者可直接刪除任何頁面,而不需為其建立任何版本。 如果未選取選項,則會在刪除頁面之前建立版本。
-
開啟Adobe Experience Manager Web主控台設定頁面。
存取設定頁面的預設URL為:
code language-http http://<server name>:<port>/system/console/configMgr -
搜尋並按一下 com.adobe.fmdita.config.ConfigManager 套件。
-
選取 不要建立已刪除頁面的版本 選項。
note note NOTE 選取此選項後,使用者可直接刪除任何頁面,而不需為其建立任何版本。 如果未選取選項,則會在刪除頁面之前建立版本。 -
按一下儲存。
使用Experience Manager Guides設定自訂重寫程式(僅適用於Cloud Service) custom-rewriter
Experience Manager Guides有自訂sling 重寫程式模組,可處理交叉對映時產生的連結(兩個不同對映之主題之間的連結)。 此重寫程式組態安裝在下列路徑:/apps/fmdita/config/rewriter/fmdita-crossmap-link-patcher。
如果您的程式碼基底中有另一個自訂Sling重寫程式,請使用大於50的'order'值,因為Experience Manager Guides Sling重寫程式使用'order' 50。 若要覆寫此值,您需要大於50的值。 如需詳細資訊,請檢視輸出重寫管道。