2013-01-17 44 views
3

我正在使用DITA生成用戶文檔並生成PDF和XHTML可交付成果。我可以使用哪個DITA元素嵌入YouTube視頻?哪個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元素之一,以實現這一目標。

回答

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和描述文本的印刷媒體創建替代輸出。

6

你的建議覆蓋是完全沒錯,Lea。你顯示的屬性映射適合於它們通過的數據類型。您可以通過專門匹配當前的YouTube界面來過度設計它,但由於它們可能會再次發生變化,所以這種方法的簡單文檔記錄很好。實際上,您可以在XML Mind編輯器之前使用以下CSS:僞元素(例如,請參閱Insert special character using :before pseudo class in css)以通知用戶要放置哪些數據(這些行爲類似於表單的字段標籤,實際上)。您在Ditac中重寫此用法的示例緊密模擬了某人可以適應DITA OT轉換的方式。

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

下面的標記工作正常在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 & @height屬性定義顯示視頻的框的大小。
  • @data屬性和前兩個<param>元素指定到視頻的鏈接。爲了實現跨瀏覽器兼容性,請包含全部三種。
  • 最後兩個<param>元素指定您希望允許視頻的可選行爲。你可能不需要它們。

這將有可能創建一個專業化,以減少所需的標記,但在我們的情況下,我們沒有包含足夠的視頻來證明這一努力。

0

Lea - 只需一張紙條,您還可以在Flash中嵌入Flash內容(例如,用Flash編寫的YouTube視頻播放器,並鏈接到視頻)。我沒有找過一個候選人,但我確定他們存在。如果您使用的PDF呈現引擎支持將RichMedia註釋嵌入PDF中,則可以將交互式Flash直接放入PDF中。