DITA-OT プラグインが生成した出力へのAEM Assets メタデータの伝播
作成対象:
- ユーザー
この文書では、DITA-OT プラグインの変更内容を実装して、metadata.xml (一時ファイルで使用可能)を読み取り AEM Guides パブリッシュワークフローによって渡されたプロパティを DITA-OT プラグインで使用し、生成された出力に設定する方法を説明します。
大まかには、この記事で学ぶ手順を以下に示します。
- AEM Guidesでの ditamap の出力プリセットに対するメタデータの設定
- 出力生成時に、DITA-OT 一時ディレクトリのこの metadata.xml にアクセスします
- この metadata.xml を読み取り、生成された出力で使用可能なプロパティを使用するための DITA-OT プラグインの実装
- 生成された出力を確認して、伝播されたメタデータを確認
背景
AEM Guidesでは、DITA-OT プラグインを使用して、設定済みのプラグインを使用して任意の出力形式に公開できます。
また、AEM DAM で管理されるアセットのメタデータを DITA-OT プロセスに渡して、生成される出力で使用することもできます。output プリセットをメタデータを渡すための ditamap/topics の設定方法に関するドキュメントを参照してください。
前提
AEMがAEM Guides バージョン 4.4.0/2024.6以降で設定されている。
DITA-OT の動作とそのディレクトリ構造に関する予備知識がある
手順
アセットでのメタデータの設定
AEM Assets メタデータスキーマを使用すると、AEMでAssetsのカスタムプロパティフィールドを作成し、アセットにメタデータを割り当てることができます。 トピック アセットの例では、customprop という名前のメタデータを例として設定できます。以下のスクリーンショットを参照してください。
DITA-OT に渡す ditamap 出力プリセットのメタデータの設定
メタデータをエクスポートして DITA-OT に渡すには、マップ上で選択した出力プリセットを設定します
例えば、DITA-OT プラグイン(adobe.html)を使用してHTML 5 出力を生成しているとします。
マップの出力プリセットを設定してメタデータを DITA-OT プラグインに渡す方法については、以下のスクリーンショットを参照してください。
- マップを開き、このマップの「出力」タブを参照して「HTML5」プリセットを開き、「詳細」タブをクリックします。このタブで、変換名は「adobe.html」になります(このプラグインは、例として設定および使用するプラグインで、カスタムプラグインを定義することもできます)
- 一時ファイルをダウンロードして metadata.xml の形式を確認できるようにするには、「一時ファイルを保持」を設定します。これを開発に使用できます
- metadata.xml を使用して DITA-OT に渡すメタデータプロパティを選択します。 この例では、dc:title と customprop を渡すとします
- プリセットを保存し、出力を生成します
- プリセットに表示されるボタンを使用して、一時ファイルをダウンロードします
上記の手順を理解するには、以下のスクリーンショットを参照してください。
DITA-OT プラグインの実装
一時ディレクトリの metadata.xml へのアクセス
ダウンロードした一時ファイルパッケージ内に、プロパティと値の構造を見ることができる metadata.xml ファイルがあります(下のスクリーンショットを参照)
metadata.xml について
-
このファイルには、公開されるすべてのアセットのリストが含まれています。各アセットには、次の項目が含まれます。
- dita ディレクトリ内のファイルのパス [ パス要素の id 属性 ]
- メタデータプロパティの値のペアのリスト [メタデータ 要素の下 ]
<Path id="topics\about-this-document.dita">
<sourceProps>
...
</sourceProps>
<metadata>
<meta isArray="false" key="dc:title">About This Document</meta>
<meta isArray="false" key="customprop">customval</meta>
</metadata>
</Path>
DITA-OT プラグインの各アセットのメタデータへのアクセス
DITA-OT プラグインで使用可能な metadata.xml とプロパティを読み取るには、次の手順を実行する必要があります。
- plugins.xml でカスタムプラグイン設定を定義します。プラグイン生成用のパラメーターとインテグレーターを定義します。サンプルプラグインファイルは以下のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<plugin id="com.adobe.html">
<require plugin="org.dita.html5"/>
<feature extension="dita.conductor.transtype.check" value="adobe.html"/>
<feature extension="ant.import" file="integrator.xml"/>
<feature extension="dita.conductor.html5.param" file="params.xml"/>
<feature extension="package.version" value="2024.1"/>
</plugin>
-
プラグイン開始時:
- メタデータファイルのパスを定義するプロパティをプラグインの下の integrator.xml すなわち.xml ファイルを指すように変数を設定し、
- カスタム xsl 変換ルールを実行するファイル(args.xsl)を定義します。この場合、ファイル xsl/adobe-html5.xsl を指します。
以下のコードを参照してください。
<property name="adobe.html.xsl.dir" value="${dita.plugin.com.adobe.html.dir}${file.separator}xsl${file.separator}"/>
<property name="args.xsl" location="${adobe.html.xsl.dir}adobe-html5.xsl" />
<dirname property="input.dirname" file="${args.input}"/>
<makeurl file="${input.dirname}/metadata.xml" property="metadata.url"/>
- 変数 metadata.url の値をカスタム XSL に渡して、必要に応じて利用します。既存または作成済みの param.xml で パラメーターをプラグインに渡します。以下に params.xml ファイルのサンプルを示します。
<?xml version="1.0" encoding="UTF-8"?>
<params xmlns:if="ant:if">
<param name="metadata.url" expression="${metadata.url}" if:set="metadata.url"/>
</params>
- カスタム XSL 変換ファイル xsl/adobe-html5.xslでは メタデータ ファイルからメタデータ値を読み取り、必要な方法で出力に設定することができます。 この例では、メタデータ値を html head/meta タグに追加します。 以下のコードを参照してください。
<xsl:import href="plugin:org.dita.html5:xsl/dita2html5.xsl"/>
<xsl:param name="metadata.url"/>
<xsl:template name="copyright">
<xsl:if test="doc-available( $metadata.url )">
<xsl:variable name="docName" select="tokenize( base-uri(), '/' )[ last() ]"/>
<xsl:variable name="doc" select="doc( $metadata.url )"/>
<xsl:for-each select="$doc//Path[ ends-with( @id, concat( '\', $docName ) ) ]/metadata/meta">
<meta name="{ @key }" content="{ . }"/>
</xsl:for-each>
</xsl:if>
</xsl:template>
上記の手順をハイライトした以下のスクリーンショットを参照してください
プラグイン実装のテスト
次のコマンドを実行してプラグインをテストし、AEM(マップのコンテンツと metadata.xml を含んでいる)からダウンロードした一時ファイルを使用してテストできます
./dita --input=docsrc/samples/HTML5/aem_forms_documentation.ditamap --format=adobe.html
ダウンロードした一時ファイルを「DITA-OT/docsrc/samples/directory5」のHTMLにコピーしたとします。
また、以下のリソースの節で示すサンプルをダウンロードすることもできます。
上記のコマンドを実行すると、ディレクトリ「DITA-OT/bin/out」の出力を確認できます。このディレクトリでは、「about-this-document.dita」というトピック用に生成された HTML ファイルを確認できます。このトピックには、head 要素にカスタムメタデータが含まれます
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<meta name="copyright" content="(C) Copyright 2024">
<meta name="DC.format" content="HTML5">
<meta name="DC.identifier" content="GUID-f193ea85-989d-4d80-99e2-2f5dea3d5310">
<meta name="DC.language" content="en-US">
<meta name="dc:title" content="About This Document">
<meta name="customprop" content="customval">
<title>About This Document</title>
</head>
デプロイメント
DITA-OT プラグインを開発したら、DITA-OT ディレクトリの下で dita —install コマンドを使用して DITA-OT に組み込み、AEM サーバーに配備できます 詳細は、この記事を参照してください
リソース
- サンプル ditamap - このリンクを使用してダウンロードからダウンロードされたサンプル一時ファイル
- 前述の実装を持つ DITA-OT プラグイン このリンクを使用してダウンロード