3

DITA を使用してユーザー ドキュメントを生成し、PDF および XHTML の成果物を生成しています。YouTube 動画を埋め込むために使用できる DITA 要素はどれですか?

理想的には、スタイルシートを使用して埋め込みコードを生成し、何らかの方法でビデオ リンクをドキュメントに追加することを好みます。疑似マークアップを使用してそのような要素がどのように見えるかを私が想像する方法を次に示します。

<fig audience="web">
    <title>YouTube 101: How to Find What's Hot on YouTube</title>
    <video href="http://www.youtube.com/watch?feature=player_embedded&v=FEyRza0rJyI">
        <alt>This video explains how to tap into the cultural zeitgeist happening on YouTube right now.</alt>
    </video>
</fig>

可能であれば、標準の DITA 要素の 1 つを使用してこれを実現したいと考えています。

4

5 に答える 5

6

提案されたオーバーライドはまったく問題ありません、Lea。あなたが示した属性マッピングは、通過するデータの種類に適しています。現在の YouTube インターフェースにより近いものに特化することで過剰に設計することもできますが、それらは再び変更される可能性が高いため、アプローチの簡単なドキュメントで問題ない場合です。実際、 XML Mind エディターでCSS before: 疑似要素 (たとえば、css で :before 疑似クラスを使用して特殊文字を挿入するを参照) を使用して、どのデータをどこに配置するかをユーザーに知らせることができる場合があります (これらはフィールド ラベルのように動作します)。フォームの場合、事実上)。Ditac でのこの使用法をオーバーライドする例は、誰かが DITA OT 変換を適応させる方法を密接にモデル化しています。

于 2013-01-19T20:44:06.180 に答える
3

次のマークアップは、DITA-OT 1.5.4 と 1.7.2 (おそらくその間のすべて) で正しく機能します。

<object width="640" height="360" data="//www.youtube.com/embed/vwh93zo7_oU?rel=0">
    <param name="src" value="//www.youtube.com/embed/vwh93zo7_oU?rel=0"/>
    <param name="movie" value="//www.youtube.com/embed/vwh93zo7_oU?rel=0"/>
    <param name="allowFullScreen" value="true"/>
    <param name="allowscriptaccess" value="always"/>
</object>

明らかに、3 つの場所すべてでビデオの ID を置き換えてください。実際の例を示すために、ドキュメントの一部であるビデオを使用しました。

  • @width および @height 属性は、ビデオが表示されるボックスのサイズを定義します。
  • @data 属性と最初の 2 つの<param>要素は、ビデオへのリンクを指定します。クロスブラウザーの互換性のために、3 つすべてを含めてください。
  • 最後の 2 つの<param>要素は、ビデオに許可するオプションの動作を指定します。それらは必要ないかもしれません。

必要なマークアップを減らす特殊化を作成することは可能ですが、私たちの場合、その努力を正当化するのに十分なビデオを含めていません.

于 2013-03-07T13:32:44.387 に答える
2

これが正しい方法かどうかはわかりませんが、これは機能しているようで、非常に簡単に操作できます。さらに読むと、<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 と説明テキストを使用して、印刷メディア用の代替出力を簡単に作成できます。

于 2013-01-17T17:14:09.127 に答える