У меня возникли проблемы с получением CGI.pm для вывода на HTML5 вместо XHTML 1.0 или HTML 4.01. Когда я пытаюсь использовать "HTML5"
или "HTML 5"
как аргумент -dtd
в start_html()
Я получаю документ в HTML 4. Я также попытался импортировать :HTML5
, но это тоже не работает. Любой совет?Как получить CGI.pm для вывода HTML5 вместо XHTML 1.0?
ответ
Правильный доктайп для HTML 5 просто "HTML", а не "html5" или "HTML 5", и не использовать DTD. CGI.pm поддерживает только хорошо сформированные DTD, а не произвольные строки. Так как в HTML 5 doctype не содержится хорошо сформированный DTD, CGI.pm (начиная с текущей версии, 3.49) не поддерживает доктрину HTML 5.
Использование функций генерации HTML-кода CGI.pm обычно не одобряется в наши дни. Системы шаблонов, такие как Template::Toolkit или HTML::Template, являются предпочтительными для их способности четко отделять логику вашего кода от форматирования его вывода. Они также, кстати, позволяют указать любой тип и код до любой версии (X) HTML, которую вы выберете.
Спасибо. Я применил новую версию при использовании Template :: Toolkit. Есть ли у вас рекомендации по модулям обработки HTTP? – CyberSkull
Лично мне никогда не приходилось делать какие-либо низкоуровневые HTTP-материалы за пределы отправки Content-Type и некоторых файлов cookie, что достаточно просто, что вы можете избавиться от того, что CGI :: Cookie генерирует файлы cookie, а затем просто использует ' распечатать', чтобы отправить все. Если вы разместите еще один вопрос, объясняющий, какую именно обработку HTTP вы хотите сделать, я уверен, что у вас появятся хорошие предложения. –
Исправьте модуль, чтобы добавить поддержку HTML5 ... или просто выведите Doctype вручную, а затем используйте его как обычно. Если это действительно XHTML 1.0 или HTML 4.01, то это Valid HTML 5.
Впечатляет, до четырех человек думают, что это стоит голосовать вниз ... но еще не готовы сказать, почему. – Quentin
да, это не круто – Galen
Я думаю, что люди голосуют, потому что «исправление» модуля CPAN - это, как правило, плохая идея. Паттинг, скорее всего, плохой совет. Наследование или, по крайней мере, патч обезьяны лучше. – codeholic
Вот фрагмент из некоторого кода, где я «решил» эту проблему, используя грубую силу.
# $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;
Вот некоторые рамки perl5, которые HTML5 дружественная:
Catalyst http://www.catalystframework.org/ Dancer http://perldancer.org/documentation Mojolicious http://mojolicio.us/
Я склоняюсь к использованию Mojolicious для моего нового проекта Perl.
Все они более важны для надежных приложений HTML5, чем модуль CGI. CGI все еще имеет свое место и по-прежнему развивается/поддерживается, но не рассматривает надежные приложения HTML5, а также некоторые из представленных там фреймворков.
Спасибо за подсказку! : D – CyberSkull
- 1. "Преобразование" XHTML 1.0 Strict в HTML5
- 2. HTML5 vs XHTML Strict 1.0 (Metatags)
- 3. Как я могу заставить Visual Studio проверить мой код MVC3 как HTML5 вместо XHTML 1.0 Transitional?
- 4. Написание Strict XHTML 1.0
- 5. Настройка Rails для вывода выходных данных HTML вместо XHTML
- 6. Что-нибудь для вывода xhtml?
- 7. Установить TinyMCE для вывода HTML не XHTML
- 8. xHTML 1.0 strict - Проверить iFrames
- 9. Ярлык, действительный для XHTML 1.0 Transitional?
- 10. Как будет отличаться браузер от XHTML 1.0 и XHTML 5?
- 11. XSLT генерировать XHTML 1.0 Strict
- 12. Firefox не работает jQuery для вывода XHTML
- 13. Какова роль xhtml в Html5?
- 14. XHTML 1.0 Strict Ошибка проверки
- 15. Как разрешить JSF визуализировать соответствие XHTML 1.0?
- 16. mobile: html5 vs xhtml
- 17. XHTML 1.0 Строгий: проблемы с формой/javascript
- 18. Почему XHTML 1.0 Transitional так популярен?
- 19. Xhtml вместо Php?
- 20. HTML5 синтаксис - HTML vs XHTML
- 21. Каковы преимущества использования doctype DTD XHTML + RDFa 1.0 // EN over XHTML 1.0 Strict?
- 22. XHTML 1.0 DocType игнорируется во всех браузерах?
- 23. Использование роли в XHTML 1.0 строго проверено
- 24. Шрифты при использовании doctype XHTML 1.0
- 25. XHTML в браузерах HTML5 (wordpress)
- 26. HTML5 тегов в .xhtml файла расширения
- 27. DOCTYPE HTML PUBLIC DTD XHTML 1.0 Transitional
- 28. Проверка подлинности XHTML, поддерживающая элементы HTML5
- 29. Элемент «embed» undefined, XHTML 1.0 Transitional (W3C)
- 30. безопасный переход от XHTML к html5
Не используйте CGI.pm для создания HTML. :) –