IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Mise en page et indentation du code HTML avant envoi au client


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Par défaut Mise en page et indentation du code HTML avant envoi au client
    Bonjour à tous,

    Le titre du post peut paraître une peu obscure mais ma curiosité me pousse à me poser certaines questions.

    Lorsque l'on code un site, on ne se préoccupe pas beaucoup du résultat au niveau du code HTML (mise en page, indentation). On se retrouve au final avec un code HTML illisible. Il est donc difficile de s'y retrouver lorsque l'on veut s'occuper de la mise en page, du css etc.

    Je me demande simplement s'il n'y a pas un moyen de faire une indentation et mise en page automatique de ce code (renvoyé par PHP dans mon cas) avant de l'envoyer au navigateur du client ? Un module apache ou autre (je n'en sais rien du tout à vrai dire) ?

    Merci d'avance (si j'arrive à avoir une réponse )

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je vois deux solutions :
    • trouver effectivement un module apache (du genre de mod_tidy ?)
    • soit avec PHP, traiter le code généré, en bufferisant tout (fonctions ob_*). Par contre, il me semble que le reformatage avec l'extension DOM sur un document HTML n'est pas fonctionnelle (donc extension tidy ? - voir l'exemple)


    EDIT : tidy fournit même déjà une fonction de rappel toute prête destinée à ob_start (ob_tidyhandler) par contre il faudrait, a priori, (re)définir les options par défaut de tidy via son fichier de configuration (indiqué par tidy.default_config dans le php.ini)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Par défaut
    Je pensais plus à un module apache plutôt qu'un script PHP pour une question de rapidité.
    Je vais donc regarder mod_tidy même si je crois qu'il ne soit pas destiné à faire un simple formatage de code HTML. Mais merci, c'est un bon début.

    S'il y a d'autres avis, je suis preneur.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Jonathan.b Voir le message
    Je me demande simplement s'il n'y a pas un moyen de faire une indentation et mise en page automatique de ce code (renvoyé par PHP dans mon cas) avant de l'envoyer au navigateur du client ?
    J'avoue que j'ai un peu de mal à comprendre l'intérêt de la chose
    Une fois envoyé au navigateur, qu'est-ce que tu veux modifier dans la page
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Par défaut
    Il n'y a rien à modifier, juste à lire et comprendre.
    Je me mets simplement à la place du designer CSS ou du codeur javascript (ajax & co).
    Je pense que c'est plus facile de développer cette partie, si le code client est mis en page et indenté, plutôt qu'une suite de code html mis bout à bout avec des retours à la ligne aléatoire et une indentation parfaitement inexistante.
    Ce qui est souvent le cas, lorsque le code est généré de façon dynamique (cas de tous les sites aujourd'hui).

    Différence entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <html>
        <head>
            du texte
        </head>
        <body>
            encore du texte
            <ul>
                <li>du texte</li>
                <li>
                    <ul id="menu-qui-défile">
                        <li>du texte</li>
                        <li>du texte</li>
                    </ul>
                </li>
                <li>du texte</li>
                <li>du texte</li>
            </ul>
            et encore du texte
        </body>
    </html>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <html>
    <head>
            du texte
    </head><body>encore du texte
    <ul>
                <li>du texte</li><li>
                        <ul id="menu-qui-défile">
    <li>du texte</li>
    <li>du texte</li>
    </ul>
                </li><li>du texte</li><li>du texte</li>
    </ul>        et encore du texte
        </body>
    </html>
    Je pose simplement la question car j'ai plusieurs fois vu du code source d'une page web parfaitement mis en page et donc super lisible et je me dis qu'il doit être impossible de faire cela sans un module (ou autre) qui passe entre la génération du code html par le site dynamique et l'envoie du code au client.

    J'avoue que cela n'a que peut d'intérêt. C'est simplement une recherche pour facilité le travail sur la partie JS et CSS mais également (et surtout) par curiosité.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Par défaut
    Bonjour,

    plusieurs choses à ce sujet :

    l'indentation et la mise en forme du code source ne compte que pour le code non-interprété : en gros personne ne se base sur le code source dans le navigateur pour savoir si le code est propre ou pas. Un dev qui repasse derrière ne s'en pré-occupe pas non plus il iras voir directement les fichiers sur le serveur.

    De plus, et de plus en plus, les dev vont avoir recours à des méthodes d'optimisation du code source par compression du code, que ce soit via un script ( comme minify pour les css/js), ou via des compresseur de code, rendant le code coté client incompréhensible.

    Ce qui compte, à ce niveau là, c'est que ton code coté serveur soit propre, et pour ça chacun sa cuisine du moment que c'est lisible

  7. #7
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonsoir

    Citation Envoyé par Jonathan.b Voir le message
    on ne se préoccupe pas beaucoup du résultat au niveau du code HTML (mise en page, indentation)
    Pas tout le monde, pour mon cas par exemple je fais très attention à l'indentation du code aurant XHTML, CSS et PHP...

    Et quand le code XHTML est inclus dans du CODE PHP, je l'indente aussi moi même...

    C'est une question de pratique.

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Par défaut
    @Ethyde : Dois-je comprendre qu'il n'y a pas vraiment de solution puisque cela n'est pas vraiment utile ?

    @12monkeys : J'avais commencé à faire comme toi (faire attention à l'intendation du code HTML généré par le code PHP) mais cette solution atteint rapidement ses limites lorsque l'on se trouve avec du helper de vue qui génère donc notre code client et qui peux ensuite être inclut un peu partout. Il est alors impossible de connaître l'indentation de ce code HTML en avance.

    Je ne veux pas particulièrement me prendre la tête sur une subtilité telle que la présentation du code HTML mais je posais cette question à tout hasard. Peux être y avait-il un simple module pour faire tout ce travail.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Par défaut
    Citation Envoyé par Jonathan.b Voir le message
    @Ethyde : Dois-je comprendre qu'il n'y a pas vraiment de solution puisque cela n'est pas vraiment utile ?
    C'est pas vraiment comme ça qu'il faut voir les choses : c'est plutôt que même si il y en as une de toute façon ça ne se verras pas ou peu, et en gros seuls les personne qui feront un affichage de la source en mode bloc note le verront, et encore

    Encore une fois ce qui compte ce n'est pas que le code source produit sois indenté/mis en forme mais que le code source d'origine le soit !

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Par défaut
    Il n'y a pas de problème sur le code source, je m'efforce déjà de coté le plus proprement possible.
    Le but est bien que le mec (designeur html/css ou codeur d'ihm JS) qui affichera le code source de la page reçu puisse lire facilement ce qu'il va voir.

    L'intérêt est de toute façon très limité. On est tout à fait d'accord sur ce point. C'est pour ça que s'il n'y a pas de solution simple à mettre en place, je ne vais pas chercher plus loin.

    Je laisse le sujet ouvert même si en soit, il apporte déjà sa réponse

Discussions similaires

  1. Nettoyer et indenter le code HTML généré avant envoi page
    Par CUCARACHA dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 07/06/2012, 18h10
  2. indenter le code html produit à la volée
    Par php_de_travers dans le forum Langage
    Réponses: 7
    Dernier message: 06/01/2010, 12h24
  3. Récupérer le code HTML avant affichage
    Par paf84 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 14/09/2009, 16h09
  4. [MySQL] problème de mise en page sous forme de tableau HTML
    Par body72 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/03/2008, 20h29
  5. construire la page html avant envoi serveur
    Par viny dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2007, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo