Sto riscontrando qualche problema nell'ottenere CGI.pm per l'output in HTML5 anziché XHTML 1.0 o HTML 4.01. Quando provo "HTML5"
o "HTML 5"
come argomento -dtd
in start_html()
ottengo un documento in HTML 4. Ho anche provato a importare :HTML5
, ma non sembra funzionare. Qualche consiglio?Come posso ottenere CGI.pm per l'output di HTML5 anziché XHTML 1.0?
risposta
Il doctype corretto per HTML 5 è solo "html", non "HTML5" o "HTML 5", e non utilizzare un DTD. CGI.pm supporta solo DTD ben formati, non stringhe arbitrarie. Poiché il doctype HTML 5 non include un DTD ben formato, CGI.pm (a partire dalla versione corrente, 3.49) non supporta il doctype HTML 5.
L'utilizzo delle funzioni di generazione HTML di CGI.pm è generalmente disapprovato in questi giorni. I sistemi di templatura come Template::Toolkit o HTML::Template sono preferiti per la loro capacità di separare in modo pulito la logica del codice dalla formattazione del suo output. Inoltre, ti permettono di specificare qualsiasi doctype e codice per qualsiasi versione di (X) HTML che scegli.
Grazie. Ho implementato una nuova versione utilizzando Template :: Toolkit. Avete suggerimenti per i moduli di gestione HTTP? – CyberSkull
Personalmente, non ho mai dovuto fare alcuna roba HTTP di basso livello oltre all'invio di un Content-Type e alcuni cookie, che è abbastanza semplice da poter farla franca avendo CGI :: Cookie generare i cookie, quindi semplicemente usando ' print' per inviare tutto. Se pubblichi un'altra domanda che spiega esattamente che tipo di gestione HTTP vuoi fare, sono sicuro che otterrai alcuni buoni suggerimenti, comunque. –
Patch il modulo per aggiungere supporto per HTML5 ... o semplicemente emettere un Doctype manualmente, quindi usarlo normalmente. Se è validato XHTML 1.0 o HTML 4.01, allora è valida HTML 5.
Impressionante, fino a quattro persone che pensano che valga la pena di votare ... ma non ancora nessuno disposto a dire perché. – Quentin
sì, non è bello – Galen
Penso che la gente stia votando perché "rattoppare" un modulo CPAN è generalmente una cattiva idea. Patching è probabilmente un cattivo consiglio. L'ereditarietà o almeno una patch di scimmia suona meglio. – codeholic
Ecco un frammento di un codice in cui ho 'risolto' questo problema usando la forza 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;
Ecco alcuni quadri Perl5 che sono HTML5 amichevole:
Catalyst http://www.catalystframework.org/ ballerino http://perldancer.org/documentation Mojolicious http://mojolicio.us/
sto sporgendosi verso usando Mojolicious per il mio progetto più recente Perl.
Tutti questi sono più rilevanti per le app HTML5 robuste rispetto al modulo CGI. CGI ha ancora il suo posto ed è ancora sviluppato/supportato ma non affronta robuste app HTML5 così come alcune delle strutture che sono là fuori.
Grazie per il suggerimento! : D – CyberSkull
- 1. "Conversione" XHTML 1.0 Strict a HTML5
- 2. Come posso fare in modo che Visual Studio convalidi il mio codice MVC3 come HTML5 anziché XHTML 1.0 Transitional?
- 3. xHTML 1.0 strict - Validate iFrames
- 4. Quali sono i vantaggi dell'uso di doctype DTD XHTML + RDFa 1.0 // IT su XHTML 1.0 Strict?
- 5. Come posso ottenere l'intero corpo della richiesta con CGI.pm?
- 6. Come posso utilizzare gli attributi dei dati HTML5 in XHTML?
- 7. Perché la transizione XHTML 1.0 è così popolare?
- 8. Incorpora video di YouTube rimanendo XHTML 1.0 Strict?
- 9. Confronto/contrasto HTML, XHTML, XML e HTML5
- 10. DTD con RFDa e XHTML 1.0 Supporto transitorio
- 11. Come untaint chiamata di sistema in CGI.pm
- 12. Come posso ottenere il tempo di durata del file html5
- 13. Come posso ottenere l'ora locale dell'utente anziché l'ora del server?
- 14. Qualcuno ha uno schema di convalida per Visual Studio 2010 per XHTML + RDFa?
- 15. In org-mode, come faccio a rimuovere il messaggio "Convalida XHTML 1.0" dall'esportazione HTML?
- 16. Come posso ottenere callback vsync su canvas HTML5?
- 17. HTML5 ingresso numero - display come percentuale anziché decimale
- 18. doctype XHTML nell'intestazione
- 19. XSLT 1.0 Raggruppa per
- 20. Come posso ottenere VS2010 per utilizzare il compilatore 3.0 C# anziché 4.0?
- 21. Come posso ottenere un generatore Python per restituire None anziché StopIteration?
- 22. XHTML Strict Validation
- 23. HTML5 - come ottenere la dimensione dell'immagine
- 24. Come ottenere XML con intestazione (<? Xml version = "1.0" ...)?
- 25. Come inserire XUL in un documento XHTML
- 26. Posso creare un gioco HTML5 per Android?
- 27. Come convalido XHTML con nokogiri?
- 28. Come utilizzare Globalize 1.0 e ottenere informazioni sulla cultura specificate
- 29. Come ottenere la cartella bin in ASP.NET Core 1.0
- 30. Posso installare Polymer (1.0) con NPM?
Non utilizzare CGI.pm per creare HTML. :) –