これが正しい方法かどうかはわかりませんが、これは機能しているようで、非常に簡単に操作できます。さらに読むと、<object>
要素はビデオ、メディア、および ActiveX コントロールを埋め込むように設計されているようです。
最初の検査では、YouTube ビデオを埋め込むプロセスはかなり複雑に思えます。いくつかのブログ/フォーラムでは、(古いスタイルの) YouTube 埋め込みコードをコピーし、DITA と互換性のない部分を捨てることについて言及しています。残念ながら、この手法は状況によっては再生の問題を引き起こすことが報告されています。
その代わりに、<object>
要素を使用して実験することにしましたが、カスタマイズされたスタイルシートを使用すると、このプロセス全体が簡単になります。このアプローチが技術的に有効かどうかはわかりませんが、その点について意見をいただければ幸いです。
- @type - カスタム XSL レンダリングをトリガーするには、「youtube」の値を指定します。
- @data - YouTube 動画 ID は、埋め込みコードからコピーできます。
- @width (オプション) - ブラウザーでの YouTube 動画の幅。デフォルトは 600px です。
- @height (オプション) - ブラウザーでの YouTube 動画の高さ。デフォルトは 450px です。
この手法を使用した動画埋め込みの例を次に示します。
<!-- DITA markup -->
<fig audience="web">
<title>YouTube 101: How to Find What's Hot on YouTube</title>
<object type="youtube" data="FEyRza0rJyI">
<desc>This video explains how to tap into the cultural zeitgeist happening on YouTube right now.</desc>
</object>
</fig>
これを機能させるには、XHTML 出力の生成方法を変更する必要があります。幸いなことに、これはXML MindのDITA Converter (別名 Ditac) を使用すると非常に簡単です。XSL カスタマイズ スタイルシートに以下を追加するだけです。
<!-- Customize html output (works with DITA Converted by XML Mind) -->
<xsl:template match="*[contains(@class,' topic/object ') and @type='youtube']">
<iframe src="http://www.youtube-nocookie.com/embed/{@data}?rel=0" frameborder="0" allowfullscreen="allowfullscreen">
<xsl:attribute name="width" select="if (@width) then @width else '600'"/>
<xsl:attribute name="height" select="if (@height) then @height else '450'"/>
<xsl:call-template name="commonAttributes"/>
<xsl:call-template name="namedAnchor"/>
</iframe>
</xsl:template>
私の場合、Web ベースのコンテンツに動画を埋め込むことだけに関心があるため、この@audience
属性を追加するだけで十分です。しかし、おそらく URL と説明テキストを使用して、印刷メディア用の代替出力を簡単に作成できます。