我不确定这是否是正确的方法,但这似乎确实有效并且很容易使用。进一步阅读后,该元素似乎<object>
是为嵌入视频、媒体和 ActiveX 控件而设计的。
在初步检查中,嵌入 YouTube 视频的过程似乎相当复杂。一些博客/论坛提到复制(旧式)YouTube 嵌入代码并放弃与 DITA 不兼容的部分。不幸的是,据报道这种技术在某些情况下会导致播放问题。
因此,我决定尝试使用该<object>
元素,但使用自定义样式表使整个过程更容易。我不确定这种方法在技术上是否有效,在这一点上将不胜感激。
- @type - 指定值“youtube”以触发自定义 XSL 呈现。
- @data - YouTube 视频 ID 可以从嵌入代码中复制。
- @width(可选)- 浏览器中 YouTube 视频的宽度,默认为 600 像素。
- @height(可选)- 浏览器中 YouTube 视频的高度,默认为 450 像素。
以下是使用此技术嵌入视频的示例:
<!-- 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 转换器(又名 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 和描述文本。