AEM サイト出力のカスタマイズ
AEM Guidesでは、次の形式での出力の作成がサポートされています。
- AEM サイト
- HTML5
- EPUB
- DITA-OT によるカスタム出力
AEM サイトの出力については、異なる出力タスクに異なるデザインテンプレートを割り当てることができます。 これらのデザインテンプレートは、異なるレイアウトで DITA コンテンツをレンダリングできます。 例えば、内部オーディエンスと外部オーディエンスに対して異なるデザインテンプレートを指定できます。
カスタマイズした DITA Open Toolkit \(DITA-OT\) プラグインをAEM Guidesで使用することもできます。 これらのカスタム DITA-OT プラグインをアップロードすると、特定の方法でPDF出力を生成できます。
出力を生成するためのデザインテンプレートのカスタマイズ
AEM Guidesでは、事前定義済みの一連のデザインテンプレートを使用して、AEM Site 出力を生成します。 AEM Guidesのデザインテンプレートをカスタマイズして、企業のブランディングに合った出力を生成できます。 デザインテンプレートは、様々なスタイル \(CSS\)、スクリプト \(サーバー側とクライアント側の両方\)、リソース \(画像、ロゴ、その他のアセット\)、およびこれらすべてのリソースを結び付ける JCR ノードのコレクションです。 デザインテンプレートは、単一のサーバーサイドスクリプトと複数の JCR ノードのみで構成するか、スタイル、リソース、JCR ノードの複雑な組み合わせで構成することができます。 デザインテンプレートは、AEM Guides サイト出力を生成する際にAEM パブリッシングサブシステムで使用され、生成された出力の構造、ルックアンドフィールを制御します。
デザイン テンプレート リソースをサーバ上のどこに配置するかについては制限はありませんが、通常は機能に応じて論理的に編成されます。 例えば、デフォルトのテンプレートでは、すべてのJavaScriptと CSS ファイルがフォルダーに保存 /etc/designs/fmdita/clientlibs/siteoutput/default
れています。 これらのファイルが配置されている場所では、それらのファイルは JCR ノードのコレクションによってリンクされます。 これらの JCR ノードとファイルによって、デザインテンプレート全体が構成されます。
AEM Guidesに付属しているデフォルトのデザインテンプレートを使用すると、ランディング、トピックおよび検索ページのコンポーネントをカスタマイズできます。 デフォルトのデザインと対応する参照テンプレートのコピーを作成し、異なるコンポーネントを指定して目的の出力を生成できます。
次の手順を実行して、AEM Site の出力生成に使用する独自のデザインテンプレートを指定します。
-
パッケージマネージャーを使用して、次の場所からデフォルトのデザインテンプレートをダウンロードします。
/libs/fmdita/config/templates
-
ダウンロードしたファイルのコピーをCloud Manager Git リポジトリ内の次の場所に作成します。
/apps/fmdita/config/templates
-
また、デフォルトのテンプレートノードから参照されたテンプレートをダウンロードしてコピーする必要もあります。 参照されるテンプレートは、次の場所に配置されます。
/libs/fmdita/templates/default/cqtemplates
次の表に、AEM Guides デザインテンプレートのプロパティを示します。
プロパティ 説明 landingPageTemplate
、searchPageTemplate
、topicPageTemplate
、shadowPageTemplate
これらの対応するページの cq:Template
ノード (ランディング、検索、トピック\)を指定してください。 デフォルトでは、これらのページのcq:Template
ノードは/libs/fmdita/templates/default/cqtemplates
ノードにあります。 このノードは、ランディングページ、検索ページ、トピックページの構造とプロパティを定義します。shadowPageTemplate
は、チャンクされたコンテンツの最適化に使用されます。 このプロパティの値を次に設定する必要があります。fmdita/templates/default/cqtemplates/shadowpage
メモ:topicPageTemplate
の値を指定する必要があります。landingPageTemplate
とsearchPageTemplate
はオプションのプロパティです。 検索ページとランディングページを生成しない場合は、これらのプロパティを指定しないでください。title
デザインテンプレートのわかりやすい名前。 topicContentNode
トピックページ内の DITA コンテンツを格納するノードの場所。 パスは、トピックページを基準とした相対パスです。 topicHeadNode
DITA コンテンツから派生したヘッド値\(またはメタデータ\)を含むノードの場所。 パスはトピックページを基準とした相対パスです。 tocNode
目次を含むノードの場所。 パスは、ランディングページまたは宛先パスを基準とした相対パスです。 basePathProp
公開されたサイトのルートのパスを保存するプロパティ名。 indexPathProp
公開されたサイトのランディングページまたはインデックスページのパスを保存するプロパティ名。 pdfPathProp
トピックのPDFの生成が有効な場合に、トピックのPDFのパスを保存するためのプロパティ名。 pdfTypeProp
PDF世代のタイプを格納するプロパティ名。 現在、このプロパティには常に「トピック」が含まれています。 searchPathProp
テンプレートに検索ページが含まれている場合に、検索ページのパスを保存するためのプロパティ名。 siteTitleProp
公開するサイトのタイトルを保存するためのプロパティ名。 通常、このタイトルはパブリッシュするマップのタイトルと同じです。 sourcePathProp
現在のページのソース DITA トピックのパスを保存するためのプロパティ名。 tocPathProp
公開されたサイトの目次ルートのパスを保存するプロパティ名。
詳しくは、 最初のAdobe Experience Manager Web サイトの作成および 基本「AEMでの独自 Web サイトの開発」を参照してください。
AEM サイト出力の生成にドキュメントタイトルを使用
AEM Site 出力を生成する場合、URL の生成方法は、コンテンツの検出性に重要な役割を果たします。 UUID ベースのファイル名を使用している場合、ファイルの UUID に基づいて URL を生成しても、検索しづらくなります。 管理者または公開者は、AEM サイト出力の URL の生成方法を制御できます。 AEM Guidesでは、UUID ベースのファイル名ではなくファイルのタイトルを使用して、AEM サイト出力の URL を生成できる設定を提供します。 デフォルトでは、UUID ベースのファイルシステムの場合、このオプションはオンになっています。 つまり、UUID ベースのファイルシステムに対してAEM サイト出力を生成する場合、ファイルの UUID ではなく URL の生成にファイルのタイトルが使用されます。
設定の上書きの手順に従って、設定ファイルを作成します。 設定ファイルで、次の\(property\)の詳細を指定して、AEM サイト出力での URL 生成を設定します。
PID | プロパティキー | プロパティの値 |
---|---|---|
com.adobe.fmdita.config.ConfigManager | aemsite.pagetitle | ブール \(true/false\) ページタイトルを使用して出力を生成する場合は、このプロパティを true に設定します。 デフォルトでは、ファイル名を使用するように設定されています。 デフォルト値:false |
ドキュメントのタイトルを使用するには、AEM サイト出力の URL を設定します
AEM Site 出力の URL にドキュメントタイトルを使用できます。 ファイル名が存在しないか、特殊文字がすべて含まれる場合は、AEM サイト出力の URL で特殊文字を区切り文字に置き換えるようにシステムを設定できます。 また、最初の子トピックの名前に置き換えるように設定することもできます。
ページ名を設定するには、次の手順を実行します。
- 設定の上書きの手順に従って、設定ファイルを作成します。
- 設定ファイルで、次の(プロパティ)の詳細を指定して、トピックのページ名を設定します。
PID | プロパティキー | プロパティの値 |
---|---|---|
com.adobe.fmdita.common.SanitizeNodeName | nodename.systemDefinedPageName | ブール値(true/false )。 デフォルト値: false |
たとえば、<topichead>
の @navtitle にすべての特殊文字があり、aemsite.pagetitle
プロパティを true に設定した場合、既定では区切り文字が使用されます。 nodename.systemDefinedPageName
プロパティを true に設定すると、最初の子トピックの名前が表示されます。
AEM Sitesやその他の形式でトピックを作成し、出力を公開するためのファイル名のサニタイズルールを設定します
管理者は、ファイル名に使用できる有効な特殊文字のリストを定義できます。これらの特殊文字が、最終的にAEM サイトの出力の URL になります。 以前のリリースでは、@
、$
、>
などの特殊文字を含むファイル名を定義できていました。 これらの特殊文字により、AEM サイトページの生成時に URL がエンコードされていました。
3.8 リリース以降、ファイル名で使用できる特殊文字のリストを定義する設定が追加されました。 デフォルトでは、有効なファイル名設定には「a-z A-Z 0-9 - _
」が含まれます。 つまり、ファイルを作成する際に、ファイルのタイトルに任意の特殊文字を含めることができますが、内部的には、ファイル名ではハイフン\(-
\)に置き換えられます。 例えば、ファイルのタイトルを Introduction 1 またはIntroduction@1にすることができ、これらの場合に生成される対応するファイル名は Introduction-1 になります。
有効な文字のリストを定義する場合、これらの文字「*/:[\]|#%{}?&<>"/+
」と a space
は常にハイフン \(-
\)に置き換えられることに注意してください。
設定の上書きの手順に従って、設定ファイルを作成します。 設定ファイルで、次の\(property\)の詳細を指定して、ファイル名とAEM サイト出力に有効な特殊文字を設定します。
PID | プロパティキー | プロパティの値 |
---|---|---|
com.adobe.fmdita.common.SanitizeNodeNameImpl | aemsite.DisallowedFileNameChars | プロパティが '<>`@$ に設定されていることを確認します。 このリストには、さらに特殊文字を追加できます。 |
その他のプロパティも設定できます。例えば、ファイル名で小文字を使用する、無効な文字を処理するための区切り文字、ファイル名に使用できる最大文字数などです。 これらのプロパティを設定するには、次のキーと値のペアを設定ファイルに追加します。
プロパティキー | プロパティの値 |
---|---|
nodename.uselower | ブール値\(true/false\). デフォルト値:true |
nodename.separator | 任意の文字。 デフォルト値:_ \(underscore\) |
nodename.maxlength | 整数値。 デフォルト値:50 |
AEM サイトノード構造のフラット化の設定
AEM Site 出力を生成すると、トピック内の各要素のノードが内部に作成されます。 何千ものトピックを持つ DITA マップの場合、このノード構造は深くなりすぎることがあります。 このタイプの深くネストされたノード構造は、大規模なサイトの場合にパフォーマンスの問題が発生する可能性があります。 次のスナップショットは、AEM Site 出力の深くネストされたノード構造を示しています。
上記のスナップショットでは、p
要素とその後に続くサブ要素ごとにノードが作成され、トピックで使用されるその他のすべての要素に対して同様の構造が作成されます。
AEM Guidesを使用すると、AEM サイト出力のノード構造が内部でどのように作成されるかを設定できます。 指定した要素のノード構造を統合できます。つまり、メイン要素と見なされる要素を定義し、その中のすべてのサブ要素をメイン要素と結合できます。 例えば、p
要素を統合する場合、p
要素内に表示される要素は、メインの p
要素と結合されます。 p
要素内のサブ要素に対しては、別のメモは作成されません。 次のスナップショットは、要素でフラット化されたノード構造 p
示しています。
AEMサイトのノード構造を統合するには、次の手順を実行します。
-
ノード構造をフラット化する要素を特定します。
-
apps
ノードのlibs
ノードをオーバーレイし、elementmapping.xml ファイルを開きます。 -
ノード構造を統合する要素の定義に
<flatten>true</flatten>
プロパティを追加します。 例えば、p
要素のノード構造を統合する場合は、次に示すように、要素の定義に flatten 属性p
追加します。<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
デフォルトでは、p
要素に flatten ノードプロパティが設定されています。 -
設定の上書きの手順に従って、設定ファイルを作成します。
-
設定ファイルで、次の\(property\)の詳細を指定します。
PID プロパティキー プロパティの値 com.adobe.dxml.flattening.FlatteningConfigurationService
flattening.enabled
ブール値\(true/false\).
デフォルト値:false
これで、AEM Site 出力を生成すると、p
要素内のノードが統合され、p
要素自体に保存されます。 CRXDE の p
要素の新しいフラット化プロパティを参照してください。
AEM Site 出力のコンテンツ内の文字列を検索する
デフォルトでは、AEM Site の出力内でのみ、タイトル内の文字列を検索できます。 タイトルの文字列と、AEM Site 出力の内容または本文の両方を検索するように設定できます。
検索を有効にするには、AEM サイトノード構造のフラット化を設定する必要があります。
注意 :
最大 1 MB のフラット化されたコンテンツを検索できます。 例えば、前のスクリーンショットでは、<p> タグの下のコンテンツが <= 1Mb かどうかを検索できます。
<flatten>
属性が true に設定されている場合にのみ、要素に対する検索が機能します。 デフォルトでは、AEM Guidesでは、<p> <ul> <lI> のような一般的に使用されるテキスト要素に対して、<flatten>
属性が true に設定されています。 ただし、一部のカスタム要素を作成した場合は、elementmapping.xml ファイルで <flatten>
属性を true に設定する必要があります。AEM サイトノード構造のフラット化の防止
AEM サイト出力を統合するノードを指定する場合と同様に、この設定から除外する要素を指定することもできます。 例えば、body
の要素のノードを統合しても、body
内の table
要素を統合しない場合は、table
要素の定義内に exclude プロパティを追加できます。
table
要素をフラット化から除外するには、table
要素の定義に次のプロパティを追加します。
<preventancestorflattening>true|false</preventancestorflattening>
AEM Site 出力での削除済みページのバージョン管理の設定
「既存の出力ページ」設定で 削除および 作成 オプションを選択してAEM サイト出力を生成すると、削除するページ\(s\)のバージョンが作成されます。 削除前にバージョンの作成を停止するようにシステムを設定できます。
次の手順を実行して、削除するページ\(s\)のバージョンの作成を停止します。
-
設定の上書きの手順に従って、設定ファイルを作成します。
-
設定ファイルで、「削除されたページのバージョンを作成しない」オプションを設定するために、次の\(property\)の詳細を指定します。
PID プロパティキー プロパティの値 com.adobe.fmdita.confi g.ConfigManager
no.version.creation.on.deletion
ブール値\(true/false\).
デフォルト値:true
NOTE
このオプションを選択すると、ユーザーは、バージョンを作成せずに任意のページ\を直接削除できます。 このオプションを選択しない場合は、ページが削除される前にバージョンが作成されます。
Experience Manager Guidesを使用したカスタムリライターの設定
Experience Manager Guidesには、クロスマップ(2 つの異なるマップのトピック間のリンク)の場合に生成されるリンクを処理するカスタム sling rewriter モジュールがあります。 このリライター設定は、次のパスにインストールされています:/apps/fmdita/config/rewriter/fmdita-crossmap-link-patcher
。
コードベースに別のカスタム sling rewriter がある場合は、Experience Manager Guides sling rewriter が 50 を使用するように、50 より大きい 'order'
値を使用し 'order'
す。 これを上書きするには、>50 の値が必要です。 詳しくは、 出力の書き換えパイプラインを参照してください。
DITA-OT 経由での出力の公開でのメタデータの使用
AEM Guidesには、DITA-OT を使用して出力を公開する際に、カスタムメタデータを渡す方法が用意されています。 管理者および公開者は、次のタスクを実行して、公開された出力にカスタムメタデータを設定して使用する必要があります。
-
管理者は、必要なメタデータをシステムに追加して、DITA マップの「プロパティ」 ページで使用できるようにします。
-
管理者は、カスタムメタデータをメタデータリストに追加して、DITA マップコンソールに表示されるようにします。
-
パブリッシャーとして、DITA マップを使用してカスタムメタデータを設定および追加し、必要な出力を生成します。
必要なメタデータをシステムに追加するには、次の手順を実行します。
-
Adobe Experience Managerに管理者としてログインします。
-
上部の「Adobe Experience Manager」リンクをクリックし、「ツール」を選択します。
-
ツールのリストから 0}Assets} を選択します。
-
メタデータスキーマ タイルをクリックします。
メタデータスキーマFormsページが表示されます。
-
リストから デフォルト フォームを選択します。
NOTE
DITA マップの「プロパティ」 ページに表示されるプロパティは、このフォームから取得されます。 -
「編集」をクリックします。
-
公開済みの出力で使用するカスタムメタデータを追加します。 例えば、次の手順を使用してオーディエンスメタデータを追加します。
-
フォームを作成 コンポーネントリストから、1 行のテキスト コンポーネントをフォームにドラッグ&ドロップします。
-
新しいフィールドを選択して、フィールドの 設定 を開きます。
-
フィールドラベル に、メタデータ名「オーディエンス」を入力します。
-
プロパティにマッピング 設定で、を指定します。/jcr:content/metadata/< メタデータの名前>。 この例では、をに設定します。/jcr:content/metadata/audience です。
これらの手順を使用して、必要なメタデータパラメーターをすべて追加します。
-
-
「保存」をクリックします。
すべての DITA マップの「プロパティ」 ページに新しいパラメータが表示されます。
次に、DITA マップコンソールでカスタムメタデータを使用できるようにする必要があります。 次の手順を実行して、DITA マップダッシュボードでカスタムメタデータを使用できるようにします。
-
パッケージマネージャーを使用して、Cloud Managerの Git リポジトリの次の場所にある metadataList ファイルにアクセスします。
/libs/fmdita/config/metadataList
NOTE
metadataList ファイルには、マップダッシュボードの DITA マップの プロパティ ドロップダウンリストに表示されるプロパティのリストが含まれています。 デフォルトでは、このファイルには 4 つのプロパティ(docstate、dc:language、dc:description、dc:title)がリストされています。 -
メタデータスキーマのFormsページに追加したカスタムメタデータを追加します。 この例では、デフォルトリストの末尾にオーディエンスパラメーターを追加します。
これで、DITA マップコンソールの プロパティ ドロップダウンリストにカスタムメタデータが表示されます。
最後に、パブリッシャーとして、公開出力にカスタムメタデータを含める必要があります。 出力の生成時にカスタムメタデータを処理するには、次の手順を実行します。
-
Assets UI で、公開する DITA マップに移動します。
-
DITA マップファイルを選択し、そのプロパティページを開きます。
-
プロパティ ページで、カスタムメタデータの値を指定します。 この例では、オーディエンスパラメーターに External の値を指定しました。
-
「保存して閉じる」をクリックします。
-
DITA マップファイルをクリックして、DITA マップコンソールを開きます。
-
「出力プリセット」タブで、出力の生成に使用する出力プリセットを選択します。
-
「編集」をクリックします。
-
プロパティ ドロップダウンリストから、公開プロセスに渡すプロパティを選択します。
選択したプロパティやメタデータが公開プロセスに渡され、最終的な出力で使用できるようになります。