Tengo problemas para hacer que CGI.pm emita resultados en HTML5 en lugar de XHTML 1.0 o HTML 4.01. Cuando intento "HTML5"
o "HTML 5"
como el argumento -dtd
en start_html()
obtengo un documento en HTML 4. También he intentado importar :HTML5
, pero eso tampoco parece funcionar. ¿Algún consejo?¿Cómo obtengo que CGI.pm emita HTML5 en lugar de XHTML 1.0?
Respuesta
El tipo de documento correcto para HTML 5 es simplemente "html", "no" o "HTML 5 HTML 5", y no utiliza una DTD. CGI.pm solo admite DTD bien formadas, no cadenas arbitrarias. Como el doctype HTML 5 no incluye una DTD bien formada, CGI.pm (a partir de la versión actual, 3.49) no admite el doctype HTML 5.
El uso de las funciones de generación de HTML de CGI.pm generalmente está mal visto en estos días. Los sistemas de plantilla como Template::Toolkit o HTML::Template son preferidos por su capacidad de separar limpiamente la lógica de su código del formato de su salida. También, por cierto, le permiten especificar cualquier tipo de documento y código a la versión de (X) HTML que elija.
Gracias. Implementé una nueva versión al usar Template :: Toolkit. ¿Tiene alguna recomendación para los módulos de manejo de HTTP? – CyberSkull
Personalmente, nunca he tenido que hacer ningún tipo de material HTTP de bajo nivel más allá de enviar un tipo de contenido y algunas cookies, que es lo suficientemente simple como para hacer que CGI :: Cookie genere las cookies, y luego simplemente ' print' para enviarlo todo. Si publica otra pregunta explicando exactamente qué tipo de manejo de HTTP desea hacer, estoy seguro de que obtendrá algunas buenas sugerencias. –
Parchee el módulo para agregar soporte para HTML5 ... o simplemente envíe un Doctype manualmente, luego úselo de la forma habitual. Si es válido XHTML 1.0 o HTML 4.01 entonces es válida HTML 5.
Impresionante, hasta cuatro personas piensan que vale la pena votar ... pero que aún no están dispuestos a decir por qué. – Quentin
sí, eso no es genial – Galen
Creo que la gente está votando porque "parchear" un módulo de CPAN es generalmente una mala idea. El parche es un mal consejo. La herencia o al menos un parche de mono suenan mejor. – codeholic
Aquí hay un fragmento de algún código donde 'resolví' este problema usando la fuerza bruta.
# $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;
Éstos son algunos marcos Perl5 que son HTML5 amigable:
Catalizador http://www.catalystframework.org/ bailarín http://perldancer.org/documentation Mojolicious http://mojolicio.us/
Me estoy inclinando hacia el uso de Mojolicious para mi proyecto más reciente de Perl.
Todos estos son más relevantes para aplicaciones robustas HTML5 que para el módulo CGI. CGI todavía tiene su lugar y todavía está desarrollado/admitido, pero no aborda sólidas aplicaciones HTML5, así como algunos de los marcos que existen.
¡Gracias por el consejo! :RE – CyberSkull
- 1. ¿Cómo puedo hacer que Visual Studio valide mi código MVC3 como HTML5 en lugar de XHTML 1.0 Transitional?
- 2. xHTML 1.0 strict - Validate iFrames
- 3. ¿Cuáles son los beneficios de usar doctype DTD XHTML + RDFa 1.0 // EN sobre XHTML 1.0 Strict?
- 4. ¿Es seguro simplemente cambiar la página web doctype HTML 4.01 o XHTML 1.0 a doctype HTML5?
- 5. Sintaxis HTML5 - HTML vs XHTML
- 6. XHTML 1.0 Cumplimiento estricto (o transitorio) en ASP.NET 2.0/3.5
- 7. ¿Por qué XHTML 1.0 Transitional es tan popular?
- 8. ¿Cómo puedo usar los atributos de datos HTML5 en XHTML?
- 9. DTD con RFDa y XHTML 1.0 Soporte de transición
- 10. Pregunta de atributo de rol HTML5 & XHTML
- 11. Cómo obtengo que GNU make emita los comandos que ejecuta para construir sus objetivos
- 12. XHTML Strict 1.0 - target = "_ blank" no es válido?
- 13. Comparar/contrastar HTML, XHTML, XML y HTML5
- 14. ¿Existe un framework web Java que pueda producir de manera confiable XHTML 1.0 Strict?
- 15. Cómo untaint llamada al sistema en CGI.pm
- 16. ¿Hay algún ejemplo de sitios que utilizan el atributo de rol en HTML5/XHTML?
- 17. ¿Cómo puedo hacer que Google News emita JSON?
- 18. Configure Rails para generar salida HTML en lugar de XHTML
- 19. ¿Cómo desarrollo aplicaciones web 2.0 con CGI.pm?
- 20. Drupal crear una página que emita JSON
- 21. ¿Por qué son estándares separados HTML5 y XHTML 2?
- 22. ¿Es posible escribir una función SQL que emita JSON?
- 23. ¿Cómo puedo hacer que JAXB2 emita enlaces CamelCase?
- 24. ¿Cómo obtengo el ancho y alto de un lienzo HTML5?
- 25. Actualizando el código del modo Quirks a XHTML 1.0 Strict - ¿Dónde validar?
- 26. ¿Hay alguna manera en que pueda hacer que g ++ solo emita advertencias relacionadas con mis archivos?
- 27. ¿Cómo deshacerse de "Validación (XHTML 1.0 Transicional): Atributo 'datos-bind' no es un atributo válido de elemento"
- 28. ¿Podemos forzar que XmlWriter emita <my-tag></my-tag> en lugar de <my-tag/>?
- 29. tipo de documento XHTML en la cabecera
- 30. ¿Por qué pasa Assert.AreEqual (1.0, double.NaN, 1.0)?
No use CGI.pm para crear HTML. :) –