哪个DITA元素可用于嵌入YouTube视频?

时间:2013-01-17 15:20:28

标签: xml video xml-documentation dita

我正在使用DITA生成用户文档,并生成PDF和XHTML可交付成果。我可以使用哪种DITA元素嵌入YouTube视频?

理想情况下,我更喜欢使用样式表生成嵌入代码,并以某种方式在文档中添加视频链接。以下是我设想这样一个元素可能使用伪标记的方式:

<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元素来实现这一点。

5 个答案:

答案 0 :(得分:6)

你建议的覆盖完全没问题,Lea。您显示的属性映射适用于它们传递的数据类型。您可以通过专注于与当前YouTube界面更紧密的匹配来对其进行过度设计,但由于它们可能会再次更改,因此这种方法的简单文档很好。实际上,您可以在XML Mind编辑器中使用之前的CSS:pseudo-element(例如,参见Insert special character using :before pseudo class in css)来告知用户要放置哪些数据(这些行为类似于表单的字段标签,实际上)。你在Ditac中重写这种用法的例子也很好地模拟了人们可以适应DITA OT转换的方式。

答案 1 :(得分:5)

DITA for Publishers项目(http://dita4publishers.sourceforge.net)提供了一个专门的域,以便在DITA专业化的约束下尽可能地与HTML5 <video>元素平行。标记看起来像这样:

<fig
  outputclass="image">
  <d4p_video
    id="E5123_026.mp4"
    width="300"
    height="300">
    <d4p_video_poster
      value="../images/E5123_026_poster.png"/>
    <d4p_video_source
      value="../images/E5123_026.mp4"
      type="video/mp4"/>
  </d4p_video>
</fig>

标记在d4p_mediaDomain中定义。 DITA for Publishers项目包括支持从此标记为基于HTML的输出(HTML,EPUB等)生成HTML5视频标记。

答案 2 :(得分:2)

我不确定这是否是正确的方法,但这似乎很有效,并且很容易使用。进一步阅读后,似乎<object>元素设计用于嵌入视频,媒体和ActiveX控件。

初步检查时,嵌入YouTube视频的过程似乎相当复杂。一些博客/论坛提到复制(旧式)YouTube嵌入代码并放弃与DITA不兼容的部分。不幸的是,据报道这种技术在某些情况下会导致播放问题。

因此,我决定尝试使用<object>元素,但使用自定义样式表,使整个过程更容易。我不确定这种方法在技术上是否有效,在这一点上可以理解输入。

  • @type - 指定“youtube”值以触发自定义XSL呈现。
  • @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输出的方式。幸运的是DITA Converter(又称Ditac)XML Mind非常容易。我只是将以下内容添加到我的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>

在我的情况下,我只对嵌入基于网络的内容的视频感兴趣,因此添加@audience属性就足够了。但是可以很容易地为打印媒体创建一个替代输出,可能包含URL和描述文本。

答案 3 :(得分:2)

以下标记在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>

显然,在所有三个地方替换视频的ID - 我使用的视频是我们文档的一部分,所以你有一个有效的例子。

  • @width&amp; @height属性定义显示视频的框的大小。
  • @data属性和前两个<param>元素指定视频的链接。对于跨浏览器兼容性,请包括所有这三个。
  • 最后两个<param>元素指定了您要为视频提供的可选行为。你可能不需要它们。

可以创建一个可以减少所需标记的专业化,但在我们的例子中,我们没有包含足够的视频来证明这一努力的合理性。

答案 4 :(得分:0)

Lea - 只需一个注释,您还可以在Flash中嵌入Flash内容(例如,使用Flash编写的YouTube视频播放器以及视频链接)。我没有寻找候选人,但我确信他们存在。如果您使用的PDF渲染引擎支持在PDF中嵌入RichMedia Annotations,则可以将交互式Flash放入PDF中。