ページエクスポーター

AEM を使用すると、画像ファイル、.js ファイル、.css ファイルを含む完全な web ページとして、ページをエクスポートできます。

設定が完了したら、URL の htmlexport.zip に置き換えることにより、ページのエクスポートをブラウザーからリクエストします。これにより、HTML 形式でレンダリングされたページと参照元のアセットを含む、アーカイブ(zip)ファイルが生成されます。ページ内のすべてのパス(例えば、画像へのパス)は、アーカイブに含まれるファイルまたはサーバー上のリソースを指すように書き換えられます。アーカイブ(zip)ファイルは、ブラウザーからダウンロードできます。

メモ

ブラウザーとその設定に応じて、ダウンロードは次のいずれかになります。

  • アーカイブファイル(<page-name>.export.zip
  • フォルダー(<page-name>)(アーカイブファイルを実際に展開済み)

ページのエクスポート

次の手順では、ページをエクスポートする方法を説明します。サイトにエクスポートテンプレートが存在すると仮定しています。エクスポートテンプレートは、ページをエクスポートする方法を定義したものであり、サイトに固有のものです。エクスポートテンプレートを作成するには、サイト用のページエクスポーター設定の作成セクションを参照してください。

ページをエクスポートするには:

  1. Sites コンソールで、対象のページに移動します。

  2. ページを選択して、「プロパティ」ダイアログを開きます。

  3. 詳細」タブを選択します。

  4. エクスポート」フィールドを展開して、エクスポートテンプレートを選択します。
    サイトに必要なテンプレートを選択し、「OK」で確定します。

  5. 保存して閉じる」を選択して、ページプロパティのダイアログを閉じます。

  6. ページのエクスポートをリクエストし、URL のサフィックス htmlexport.zip に置き換えます。

    次は例です。

    • localhost:4502/content/we-retail/language-masters/en.html

    次を介してアクセスします。

    • localhost:4502/content/we-retail/language-masters/en.export.zip
  7. アーカイブファイルをファイルシステムにダウンロードします。

  8. ファイルシステムで、必要に応じてそのファイルを解凍します。展開すると、選択したページと同じ名前のフォルダーが作成されます。このフォルダーには次が含まれます。

    • サブフォルダー content(リポジトリ内のページへのパスを反映した一連のサブフォルダーのルート)

      • この構造の中に、選択したページの html ファイルがあります(<page-name>.html
    • その他のリソース(.js ファイル、.css ファイル、画像など)エクスポートテンプレートの設定に従って配置

  9. ページの HTML ファイル(<unzip-dir>/<path>/<to>/<page>/<page-path>.html)をブラウザーで開き、レンダリングを確認します。

サイト用のページエクスポーター設定の作成

ページエクスポーターは、コンテンツ同期フレームワークに基づいています。「ページプロパティ」ダイアログで利用できる設定は、ページに必要な依存関係を定義するエクスポートテンプレートです。

ページのエクスポートがトリガーされると、エクスポートテンプレートが参照され、ページパスとデザインパスの両方が動的に適用されます。その後、標準のコンテンツ同期機能を使用して、zip ファイルが作成されます。

標準インストールの AEM では、/etc/contentsync/templates/default の下にデフォルトテンプレートが含まれています。

  • このテンプレートは、リポジトリ内にエクスポートテンプレートが見つからない場合のフォールバックテンプレートです。

  • default テンプレートは、ページをエクスポートするための設定方法を示していて、新しいエクスポートテンプレートのベースとして使用できます。

  • テンプレートのノード構造を JSON 形式でブラウザーに表示するには、次の URL をリクエストします。
    http://localhost:4502/etc/contentsync/templates/default.json

新しいページエクスポーターのテンプレートは、次の方法で簡単に作成できます。

  • default テンプレートをコピーします。

  • サイトに適した新しい名前を割り当て、

  • その上で、必要な更新を行います。

完全に新しいテンプレートを作成するには:

  1. CRXDE Lite で、/etc/contentsync/templates の下にノードを作成します。

    • Name:サイトに適した名前(例:<mysite>)。ページエクスポーターテンプレートを選択すると、この名前がページプロパティのダイアログボックスに表示されます。

    • Typent:unstructured

  2. テンプレートノード(ここでは mysite)の下に、次で説明する設定ノードを使用してノード構造を作成します。

ページのページエクスポーターテンプレートのアクティブ化

テンプレートを設定したら、使用できるようにする必要があります。

  1. CRXDE で /content の分岐の対象ページに移動します。これは、個々のページ、またはサブツリーのルートページにできます。

  2. ページの jcr:content ノードで、次のプロパティを作成します。

    • Namecq:exportTemplate
    • TypeString
    • Value:テンプレートへのパス(例: /etc/contentsync/templates/mysite

ページエクスポーター設定ノード

コンテンツ同期フレームワークを使用しているため、テンプレートはノード構造で構成されています。各ノードには、zip ファイルの作成プロセスで特定のアクションを定義する type プロパティが含まれています。

次のノードを使用してエクスポートテンプレートを作成することができます。

  • page
    page ノードを使用して、ページの HTML を zip ファイルにコピーします。次のような特徴があります。

    • 必須ノードです。
    • /etc/contentsync/templates/<mysite> にあります。
    • プロパティ Namepage に設定して定義します。
    • ノードタイプは nt:unstructured です。

    page ノードには以下のプロパティがあります。

    • pages が設定された type プロパティ。

    • path プロパティはありません。現在のページパスが設定に動的にコピーされます。

  • rewrite
    rewrite ノードでは、エクスポートしたページでリンクを書き換える方法を定義します。書き換え後のリンクは、zip ファイルに含まれるファイルを指すか、サーバー上のリソースを指します。

  • design
    design ノードを使用して、エクスポートされるページに使用されているデザインをコピーします。次のような特徴があります。

    • オプションです。
    • /etc/contentsync/templates/<mysite> にあります。
    • プロパティ Namedesign に設定して定義します。
    • ノードタイプは nt:unstructured です。

    design ノードには次のプロパティがあります。

    • copy に設定された type プロパティ。

    • path プロパティはありません。現在のページパスが設定に動的にコピーされます。

  • generic
    汎用ノードを使用して、clientlibs などのリソースをコピーできます。
    .js ファイルまたは .css ファイルを zip ファイルへ。次のような特徴があります。

    • オプションです。
    • /etc/contentsync/templates/<mysite> にあります。
    • 特定の名前がありません。
    • ノードタイプは nt:unstructured です。
    • type プロパティと type に関連したプロパティを持ちます。

    例えば、次の設定ノードは mysite.clientlibs.js ファイルを zip ファイルにコピーします。

    "mysite.clientlibs.js": {
        "extension": "js",
        "type": "clientlib",
        "path": "/etc/designs/mysite/clientlibs",
        "jcr:primaryType": "nt:unstructured"
    }
    

カスタム設定の実装

カスタム設定も可能です。

特定の要件を満たすには、カスタム更新ハンドラーを実装する必要があります。

プログラムによるページのエクスポート

プログラムによってページを書き出すには、PageExporter OSGI サービスを使用できます。このサービスを使用すると、次のことが可能です。

  • ページを書き出して HTTP サーブレット応答に書き込む。
  • ページを書き出して zip ファイルを特定の場所に保存する。

export セレクターおよび zip 拡張子にバインドされているサーブレットは PageExporter サービスを使用します。

トラブルシューティング

Zip ファイルのダウンロードで問題が発生した場合は、リポジトリで /var/contentsync ノードを削除して、エクスポートリクエストを再度送信できます。

このページ