我在獲取CGI.pm輸出到HTML5而不是XHTML 1.0或HTML 4.01時遇到了一些麻煩。當我在start_html()
中嘗試使用"HTML5"
或"HTML 5"
作爲-dtd
參數時,我在HTML 4中獲得一個文檔。我也嘗試導入:HTML5
,但這似乎也不起作用。有什麼建議?如何獲取CGI.pm以輸出HTML5而不是XHTML 1.0?
回答
對HTML 5的正確的doctype只是「HTML」,而不是「HTML5」或「HTML 5」,並且不使用DTD。 CGI.pm只支持格式正確的DTD,不支持任意字符串。由於HTML 5 doctype不包含格式正確的DTD,CGI.pm(截至當前版本,3.49)不支持HTML 5文檔類型。
使用CGI.pm的HTML生成函數在這些日子裏一般是不被接受的。模板系統(如Template::Toolkit或HTML::Template)能夠將您的代碼的邏輯與其輸出的格式完全分開,因此是首選。順便說一下,它們還允許您指定任何類型和代碼,以適用於您選擇的(X)HTML版本。
謝謝。我已經使用Template :: Toolkit實現了一個新版本。你有任何關於HTTP處理模塊的建議嗎? – CyberSkull 2010-06-11 04:57:45
就我個人而言,除了發送Content-Type和一些cookie之外,我從來沒有必須自己做任何低級HTTP的東西,這很簡單,您可以用CGI :: Cookie生成cookie,然後使用'打印'發送一切。如果你發佈另一個問題,解釋你想要做什麼樣的HTTP處理,我相信你會得到一些很好的建議,但。 – 2010-06-11 08:13:26
這裏是一些代碼片段,我用蠻力解決了這個問題。
# $html is accumulator for HTML string
my $html;
# <html> tag and <head> section
my $dtd = '<!DOCTYPE html>'; # HTML5 DTD
my $title = "Storage analysis of $HOSTNAME as of $TODAY";
$html .= start_html(
-title => $title,
-style => {
-code => $css,
}
);
# KLUDGE: CGI.pm doesn't support HTML5 DTD; replace the one it puts in.
$html =~ s{<!DOCTYPE.*?>}{$dtd}s;
下面介紹了HTML5友善一些Perl5的框架:
催化劑http://www.catalystframework.org/ 舞者http://perldancer.org/documentation Mojolicious http://mojolicio.us/
我傾向於使用Mojolicious我最新的Perl項目傾斜。
所有這些與健壯的HTML5應用程序比CGI模塊更相關。 CGI仍然佔據着自己的位置,並且仍然是開發/支持的,但它並不涉及健壯的HTML5應用程序以及那裏的一些框架。
感謝您的提示! :d – CyberSkull 2011-11-25 22:51:18
- 1. 如何配置spring mvc/jsp來輸出xhtml而不是html?
- 2. 配置的Rails輸出HTML輸出,而不是XHTML
- 3. XHTML 1.0 Transitional vs XHTML 1.0 Strict?
- 4. 「轉換」XHTML 1.0嚴格到HTML5
- 5. 以下是有效的XHTML 1.0 Transitional嗎?
- 6. 如何捕獲Zend視圖輸出而不是實際輸出
- 7. 我該如何讓Visual Studio驗證我的MVC3代碼爲HTML5而不是XHTML 1.0 Transitional?
- 8. Xhtml而不是Php?
- 9. 有沒有辦法讓codeIgniter輸出html而不是xhtml?
- 10. 任何輸出xhtml?
- 11. 獲取在輸出中的DiffGram,而不是他們的索引
- 12. Eclipse BIRT - XHTML輸出
- 13. 如何輸出名稱而不是ID?
- 14. XHTML嚴格1.0表
- 15. 獲取殼輸入的字符串,而不是列出
- 16. 在輸出到文件中獲取方格而不是新行
- 17. 獲取輸出爲json而不是陣列
- 18. Python:使用subprocess.call獲取輸出,而不是Popen
- 19. Doctype聲明:XHTML 1.0與XHTML 1.1
- 20. 什麼是XHTML 1.0的xml:lang attibute?
- 21. xhtml在Html5中的作用是什麼?
- 22. php輸出 而不是 -
- 23. 如何使用gulp-data以不同語言獲取輸出html?
- 24. 如何通過CGI.pm
- 25. 是否可以在XHTML Strict 1.0中按鈕調用JavaScript函數?
- 26. 從CGI.pm獲取自定義代碼
- 27. Python:如何在每次輸出時獲取子進程的輸出,而不是終止?
- 28. XSLT生成XHTML 1.0嚴格
- 29. Matlab以多種形式輸出數字,而不是以浮點形式輸出
- 30. MIPS輸出0.0而不是輸入
請勿使用CGI.pm創建HTML。 :) – 2010-05-14 23:23:27